The present invention relates to a data reading method for storage devices such as a hard disk drive, and more specifically to a data reading method and a storage device suitable for reading data written when the head is deviated from the center position of a track due to external influences such as vibration or the like.
In a hard disk drive, the data transferred from a host apparatus is stored and read. The data is divided into predetermined data lengths (each called a sector), in regions of tracks formed in rings, each track having a predetermined width on a storage medium.
If external factors such as vibration, shock or the like do not occur during the write process, the data is stored in alignment with the center in the width direction of the track. However, if an external factor such as vibration is generated, data is stored in a position deviated from the center of the track (
To correctly read data recorded off-center, i.e., deviated from the center of the track as explained above, a method called offset read has been proposed. Data is read by displacing the read head in the width direction as much as the deviation of the data from the center of the track. One technique reads data by accurately obtaining the displacement (amount of offset), as proposed in Japanese Unexamined Patent Publication No. 2004-134077.
However, in recent years, hard disk drives have been utilized not only in stationary installation type servers and personal computers, but also in home electric appliances. Therefore, the operating environment of the hard disk drive is diversified and a shock which is larger than that usually applied to the stationary installation type apparatus of the prior art may sometimes be applied, particularly in a car-navigation apparatus or the like during operation thereof.
In order to write data to the center position of the track as correctly as possible, the head position is calculated using servo information (401 in
However, it takes some amount of time to detect such a failure, and data may be written until the write process is suspended. Data over-written in the retry process due to detection of an error or the subsequent write process of different data is done with no erase process. If data is written off-track in the direction from the track center opposite the preceding data write direction during a retry process or the like, the old data is sometimes not over-written and is left as it is. Accordingly, if the data width required by the read head is still left, the old data may sometimes be read erroneously, if the head is positioned on the old preceding data during the subsequent data read operation.
Therefore, even though the amount of offset is acceptable and allows for correct positioning of the head on the data, irregularity is found in the data, or a serious event such as system failure is likely generated, if erroneous old data read out by positioning the head thereto is transmitted to a host apparatus.
Accordingly, it is an object of the present invention to provide a storage device which reads the latest correct data even if a plurality of read data exists on the same sector.
In keeping with one aspect of this invention, a storage device is provided with a head for reading data from a storage medium. An offset control means offsets the head by a predetermined distance in the width direction of tracks for storing the data, and a data determining means determines whether the data read process has been completed successfully. An offset value determining means determines whether the offset value of the head has exceeded the predetermined value when the data read process has been completed successfully. The offset control means controls the head to conduct the offset operation to the opposite side of the track when the offset value determining means has determined that the offset value has exceeded the predetermined value, and the head conducts the data read process on the same sector again.
Therefore, when data is read on a certain sector, it is possible to verify whether different read data exists on the same sector and thereby reliability of the data obtained can be improved.
The present invention can also have compensating means for compensating the data read out with the head, such as automatic gain control (AGC) or the like, and selecting means for selecting data from a plurality of data read out with the head. The offset control means controls the head to conduct offset operations within a predetermined range on the track. Upon successful completion of a plurality of data read operations on the same sector, the head conducts the data read process at the predetermined offset position, and the selecting means selects data from a plurality of the data on the basis of the operation result of the compensating means.
Accordingly, even when a plurality of data is read successfully from the same sector, it is possible to select the correct data and then send the correct data to a host apparatus.
According to the present invention, only the latest correct data can be read easily even when a plurality of data are written in a readable state on the same sector of the same track. Thereby, reliability of the storage device can be further improved.
Therefore, since undesirable events due to failure generated in the data can be avoided, the present invention can improve reliability for the system as a whole where the storage device of the present invention is used.
The above mentioned and other features of this invention and the manner of obtaining them will become more apparent, and the invention itself will be best understood by reference to the following description of an embodiment of the invention taken in conjunction with the accompanying drawings, in which:
The hard disk drive of the present invention will be explained below using a block diagram (
A host interface control unit 102 controls the host interface connected to a host apparatus. A buffer memory 103 stores data, and buffer memory control unit 104 controls the buffer 103. A format control unit 105 executes ECC calculations or the like. A read/write channel 106 demodulates the read data and amplifies the data to a predetermined value. A head IC 107 controls an output from the head.
A microprocessor 108 controls the hard disk drive. A volatile memory 109 stores data used and developed by the microprocessor 108, and a control program. The processes of the present invention including those described in
A servo control unit 111 controls operations of a spindle motor (SPM) 113 and voice coil motor (VCM) 112. The voice coil motor (VCM) 112 drives a head actuator. The spindle motor (SPM) 113 rotates a storage medium 115. A head 114 executes write and read processes to and from the storage medium 115, which stores data. A common bus 116 connects the control units and memory or the like. A register 117 stores values (automatic gain control (AGC) values) used to amplify signals read by the read head to provide an acceptable signal through the read/write channel.
Read and write operations of data when a host apparatus 201 and a hard disk drive 203 (such as the drive 101 of
When the data read process is executed in response to an instruction from the host apparatus, the head 114 is positioned to a predetermined position on the storage medium 115 by the voice coil motor 112 so that data can be read. The data read from the medium is sent to the read/write channel 106 through the head IC 107 and is then demodulated. Thereafter, error detection and correction processes are executed with the ECC calculation or the like in the format control unit 105. The data, when it is the correct data, is first stored in the data buffer 103 through the buffer control unit 104. Subsequently, the data is transferred to the host apparatus via the buffer control unit 104 and host interface control unit 102.
On the other hand, when the host apparatus issues an instruction for a write operation, the data transferred from the host apparatus is first stored in the data buffer 103 via the host interface control unit 102 and buffer control unit 104. Thereafter, the data is written, via the buffer control unit 104 again, on to the storage medium 115, with a timing suitable for execution of the write process to the storage medium 115, via the format control unit 105, read/write channel 106, and head IC 107 or the like in the reverse sequence of the read operation.
Data is stored in sectors n . . . n+7 in
In
In addition, when a retry or the like is implemented, it is probable that old data and new data will be arranged such that both old and new data can be read from the same sector, as shown by sectors 501, 502 (k+2/1+2) in
Operation principles of the present invention will be explained in detail with reference to
If the write head and the read head deal with data of the same width, an AGC value showing the amount of signal amplification (i.e., compensation) in the read/write channel becomes high, because an input value is lower during the read process of the old data 602. However, in typical conventional read heads, the width of the read head is about half that of the write head width. Accordingly, when the width of the old data 602 is larger than the read width of the read head, the minimum values of the AGC values of old and new data become almost equal to each other in some cases. In that case, it is impossible to simply judge the old data from the new data using only the minimum values.
It is desirable, therefore, to execute the process for distinguishing the old from the new data based on the fact that the new data 603 is wider than the old data 602. Namely, it is possible to correctly identify the new data 603 by checking the offset of data where the AGC value becomes a minimum, or the wider offset range of data where the AGC values are distributed within a predetermined range from the minimum value.
The old and new data can be identified easily by obtaining and comparing the AGC values for the minimums in each offset range, or the distribution of AGC values from the minimum values. In other words, the new and old data can be identified by comparing the widths of the AGC graphs for the old and new data.
Operation of the present invention based on the principle explained above will be explained in detail on the basis of the flowchart of
When the data read process is executed (S901), whether the data is defective is verified (S902). When the data is defective, read conditions such as the offset value or the like are changed and the read operation is executed again for the specified number of times in step S902.
Meanwhile, when the data is normal, whether the amount of offset in the data read process has exceeded the predetermined value (for example, 10% of the track width) is determined (S903). When the data read process is completed successfully under the condition that the amount of offset has exceeded the predetermined value, the head is offset in the opposite direction to check whether data read operation is possible using the other offset value (S904).
When the data can also be read from the opposite direction, it can be recognized that a plurality of readable data exist on the same sector. It can also be recognized, based on this result, that defective data is stored in the storage medium in addition to the normal data.
Subsequently, the AGC values at each offset position are obtained by conducting the data read process through offset operations of the head within the readable range (S905).
Thereafter, the minimum AGC values corresponding to respective data and the distribution of AGC values over the range of offset amounts where the AGC values are minimized or are within predetermined distribution ranges are obtained using the relationships between the offset amounts and the AGC amounts explained above (S906).
The data resulting in the minimum read head output value (maximum AGC value), and wider distribution of relatively low values (maximum AGC values) over a range of offset amounts under the condition explained above is used to identify the newly written data (S907) and this data is sent to the host apparatus (S908).
As explained above, according to the first embodiment, the correct data can be read even when a plurality of readable data exists on the same sector of the same track and thereby various system failures resulting from defective data can be avoided.
In this embodiment, the new and old data can be judged more accurately by judging the new and old data on the basis of the first embodiment explained above, and by also conducting the determination process using the off-track state of the data on the sector 805 just preceding the sector 806 explained above.
Namely, the new data 803 can be identified more accurately by utilizing the characteristic that when a defective data write process is detected on a certain sector during a continuous data write process on the track, the just preceding data may also be written with a certain amount of track offset on the same side of the track as the new data.
Accordingly, the new data can be identified more accurately by further determining whether the offset direction of the data determined as the new data is matched with the offset direction of the just preceding data, after conducting the new and old data determining process of the first embodiment explained above.
In the first and second embodiment of the present invention, the AGC value has been used for explanation, but it is also possible to determine the new and old data by utilizing the number of times correction through Viterbi decoding is needed, instead of utilizing the AGC values.
Viterbi decoding is the process used for reading the data from the storage medium 115. The data is decoded to the value having the “distance” nearest to the read value. Therefore, the data can be determined based on whether the head output signal is stabilized, or the error generation rate is relatively low, by obtaining the number of times the “distance” has a value larger than a certain threshold value (in other words “far”). When new and old data are recorded on the same sector, the new data can be expected to be more stable and have fewer errors.
Accordingly, as in the case where the AGC value is used, which data is correct can be determined by using the relationship between the number of times of correction of the Viterbi decoding and the offset amount. In addition, the more accurate data can be obtained by using a combination of both the AGC value and the number of times correction is needed during execution of the Viterbi decoding.
In addition, it is possible to resolve a situation in which plural data can be read from the same sector by re-writing the data identified as the normal data to the sector and verifying that the data can be read within a predetermined offset range. Moreover, the situation where a plurality of data can be read from the same sector can be resolved by re-writing the data from the host apparatus and verifying that the data can be read within the predetermined range as explained above.
While the principles of the invention have been described above in connection with specific apparatus and applications, it is to be understood that this description is made only by way of example and not as a limitation on the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2006-288206 | Oct 2006 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5353170 | Fung et al. | Oct 1994 | A |
5859740 | Takeda et al. | Jan 1999 | A |
5956200 | Kohno et al. | Sep 1999 | A |
5978168 | Mathews et al. | Nov 1999 | A |
6437947 | Uno | Aug 2002 | B1 |
6643084 | Andrew et al. | Nov 2003 | B1 |
6650491 | Suzuki et al. | Nov 2003 | B2 |
6671790 | Gay Sam et al. | Dec 2003 | B2 |
6717760 | Hamaguchi et al. | Apr 2004 | B2 |
7088535 | Kim et al. | Aug 2006 | B2 |
Number | Date | Country |
---|---|---|
2001-118343 | Apr 2001 | JP |
2004-134077 | Apr 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20080094746 A1 | Apr 2008 | US |