SUMMARY

In certain embodiments, an apparatus may comprise a read channel circuit including a buffer memory, the read channel circuit configured to receive, at the read channel circuit from a controller, a read instruction to read a selected sector, obtain detected sample values for the selected sector, and determine whether the read instruction corresponds to a re-read operation for the selected sector based on determining whether there are stored samples for the selected sector already stored to a locked buffer entry of the buffer memory. When there are stored sample values stored to the locked buffer entry, the read channel circuit may determine the re-read operation is occurring, and perform read sample averaging based on the detected sample values and the stored sample values to produce averaged sample values, store the averaged sample values as the stored sample values, perform a decoding operation on the stored sample values to generate decoded data, and return the decoded data to the controller.

In certain embodiments, an apparatus may comprise a read channel including a buffer memory, the read channel configured to store sample data corresponding to a selected sector of a data storage medium to a buffer entry of the buffer memory, perform a decoding operation on the sample data, and lock the buffer entry when the selected sector fails to decode in order to retain the sample data in a locked buffer entry. The read channel may receive a read instruction to read the selected sector, and determine whether sample data for the selected sector is stored in the locked buffer entry. When sample data for the selected sector is stored in the locked buffer entry, the read channel may perform sample averaging utilizing the sample data stored in the locked buffer entry and new sample data from a current read to generate averaged sample data, and decode the selected sector using the averaged sample data.

In certain embodiments, a method may comprise receiving, at a read channel circuit from a storage controller, a read instruction to read a selected sector of a data storage medium, obtaining detected sample values for the selected sector, and determining whether the read instruction corresponds to a re-read operation for the selected sector based on determining whether there are stored samples for the selected sector already stored to a locked buffer entry of a buffer memory of the read channel circuit. When there are not stored sample values stored to the locked buffer entry, the method may include determining the read instruction does not correspond to the read-read operation, and storing the detected sample values to the buffer memory as the stored sample values. When there are stored sample values stored to the locked buffer entry, the method may include determining the re-read operation is occurring, performing read sample averaging based on the detected sample values and the stored sample values to produce averaged sample values, and storing the averaged sample values as the stored sample values. The method may include performing a decoding operation on the stored sample values to generate decoded data, and returning the decoded data to the controller.

