DISK CONTROLLER, DISK DRIVE DEVICE, AND DISK CONTROL METHOD
According to one embodiment, a disk controller includes a reader, a selector, and a combining module. The reader performs, when retrying reading data from a magnetic disk, a plurality of read operations with respect to the same area on the magnetic disk while offsetting a head that reads data from the magnetic disk. The selector selects likely read data from a plurality of pieces of read data obtained as results of the read operations performed by the reader based on a predetermined index with respect to each of data lengths shorter than the data length of the area. The combining module combines pieces of read data selected for the data lengths, respectively.
1 . A disk controller comprising:
a reader configured to execute a plurality of read operations with respect to a first area on the magnetic disk while offsetting a head configured to read data from the magnetic disk, when the reader retries reading data from a magnetic disk;
a selector configured to select data from a plurality of pieces of read data from results of the read operations based on a predetermined index with respect to each data length shorter than a data length of the area; and
a combining module configured to combine pieces of read data selected for the data lengths, respectively.
2 . The disk controller of claim 1 , wherein
the selector comprises:
a decoder configured to execute maximum likelihood decoding on the pieces of read data from the results of the read operations based on a Viterbi algorithm;
a storage module configured to store the pieces of read data decoded by the decoder;
a waveform calculator configured to convolute each piece of read data decoded by the decoder in order to calculate a waveform signal representing the read data before the maximum likelihood decoding; and
a difference calculator configured to calculate a difference between the waveform signal and the read data before the maximum likelihood decoding with respect to each piece of read data, and
the selector is configured to select the data based on the difference.
3 . The disk controller of claim 2 , wherein the difference calculator is configured to calculate a noise component as the difference from the waveform signal and the read data before the maximum likelihood decoding.
4 . The disk controller of claim 2 , wherein the difference calculator is configured to calculate a signal power as the difference from the waveform signal and the read data before the maximum likelihood decoding.
5 . The disk controller of claim 2 , wherein the difference calculator is configured to calculate a signal-to-noise ratio as the difference from the waveform signal and the read data before the maximum likelihood decoding.
6 . The disk controller of claim 2 , further comprising a filter configured to execute finite impulse response filtering on each piece of read data from the results of the read operations using a predetermined parameter, wherein
the decoder is configured to execute the maximum likelihood decoding on each piece of read data after the filtering based on the Viterbi algorithm, and
the waveform calculator is configured to convolute each piece of read data decoded by the decoder using the predetermined parameter used in the filtering in order to calculate the waveform signal representing the read data before the maximum likelihood decoding.
7 . The disk controller of claim 1 , wherein
the reader is configured to execute the read operations with respect to a physical sector as the area on the magnetic disk, and
the selector is configured to select the data with respect to each section of the physical sector.
8 . A disk drive device comprising:
a magnetic disk;
a reader configured to execute a plurality of read operations with respect to a first area on the magnetic disk while offsetting a head configured to read data from the magnetic disk when the reader retries reading data from a magnetic disk;
a selector configured to select data from a plurality of pieces of read data from results of the read operations based on a predetermined index with respect to each data length shorter than a data length of the area; and
a combining module configured to combine pieces of read data selected for the data lengths, respectively.
9 . A disk control method comprising:
reading a first area on the magnetic disk a plurality of times while offsetting a head that reads data from the magnetic disk in retrying reading data from a magnetic disk;
selecting data from a plurality of pieces of read data from results of the read operations based on a predetermined index with respect to each data length shorter than a data length of the area; and
combining pieces of read data selected for the data lengths, respectively.