Embodiments described herein relate generally to a magnetic disk device and a method of controlling a magnetic disk.
In magnetic disk devices, in order to protect data from side erasing, an adjacent track interference (ATI) countermeasure is executed. In such an ATI countermeasure, a plurality of tracks arranged inside a magnetic disk are divided into a plurality of track groups, and a plurality of tracks are configured to belong to one track group. The number of times of writing for a plurality of tracks belonging to each track group are counted, and, in response to the counted value exceeding a threshold, a refresh operation for the plurality of tracks belonging to the track group is executed. In the refresh operation, data is read from each track of a target track group, and the read data is written into the track.
In general, according to one embodiment, a magnetic disk device includes: a magnetic head; a magnetic disk; and a controller. The magnetic disk corresponds to the magnetic head. The controller manages a first value representing the number of times of writing for each track on the magnetic disk, executes a refresh process for a track having the first value exceeding a first threshold. The refresh process includes reading data from the track and rewriting the read data into the track. The controller detects a first off-track amount during writing for a first track being a writing target track. The controller calculates a second value exponentially increasing according to the detected first off-track amount and adds the calculated second value to the first values of tracks adjacent to both sides of the first track.
Exemplary embodiments of a magnetic disk device and a method of controlling a magnetic disk will be explained below in detail with reference to the accompanying drawings. The present invention is not limited to the following embodiments.
The magnetic disk device 100 includes a magnetic disk 3 that is a recording medium rotated by a spindle motor 2. The magnetic disk device 100 includes a head actuator 5 that is driven by a head driving unit 6. At a tip end of the head actuator 5, a magnetic head 4 used for writing and reading data is mounted.
The magnetic disk device 100 includes: a host interface controller (host I/F controller) 10; a random access memory (RAM) 20; a processor 30; a device interface controller (device I/F controller) 40; and a nonvolatile memory 50 as a control system.
The host I/F controller 10 communicates with the host 1 for a command, data, a status report, and the like. When a command is received from the host 1, the host I/F controller 10 notifies the processor 30 of the command. Under the control of the processor 30, the host I/F controller 10 buffers data received from the host 1 in a buffer memory 25 or transmits data buffered in the buffer memory 25 to the host 1.
The RAM 20 has a storage area as the buffer memory 25 for temporarily storing data when write data supplied from the host 1 is written into the magnetic disk 3. In addition, the buffer memory 25 temporarily stores data when data read from the magnetic disk 3 is transmitted to the host 1. The RAM 20 further has a storage area for storing management information for managing data. In addition, firmware stored in the nonvolatile memory 50 is loaded into the RAM 20. The management information managed in the RAM 20 is backed up in the nonvolatile memory 50 or the magnetic disk 3. As the RAM 20, a static random access memory (SRAM) or a dynamic random access memory (DRAM) is used.
The nonvolatile memory 50 is configured by a flash memory, an EEPROM, or the like, and firmware executed by the processor 30 is stored therein. The firmware may be stored in the magnetic disk 3.
By controlling the driving of the spindle motor 2, the magnetic head 4, and the head driving unit 6, the device I/F controller 40 writes data into the magnetic disk 3 and reads data from the magnetic disk 3. The device I/F controller 40 includes an off-track detecting unit 41. When a write process for the magnetic disk 3 is performed, the off-track detecting unit 41 detects an off-track in which the magnetic head 4 deviates from a target position in the track width direction. The off-track detecting unit 41 notifies the ATI processor 34 (see
The processor 30 realizes various functions by using the firmware stored in the nonvolatile memory 50. When the magnetic disk device 100 starts to be operated, the firmware stored in the nonvolatile memory 50 is loaded into the RAM 20. The processor 30 executes the firmware loaded in the RAM 20. A function executed by the processor 30 will be described later.
When a write command and write data supplied from the host 1 are received by the host I/F controller 10, the processor 30 analyzes the content of the write command and stores the write data into the buffer memory 25. Thereafter, the write data is read from the buffer memory 25 and is input to the device I/F controller 40. The device I/F controller 40 codes the input write data and drives a writing element of the magnetic head 4, thereby writing the coded write data to the magnetic disk 3. When the coded write data is written, the device I/F controller 40 writes the data into a target track specified by the command with controlling the driving of the head driving unit 6 and the spindle motor 2.
On the other hand, when a read command supplied from the host 1 is received by the host I/F controller 10, the processor 30 analyzes the read command. Thereafter, the processor 30 instructs the device I/F controller 40 based on a result of the analysis. As a result, the magnetic head 4 is driven by the device I/F controller 40, and a signal is read by a reading element of the magnetic head 4. The read signal is demodulated by the device I/F controller 40 as read data. In addition, after being decoded, the read data is buffered into the buffer memory 25. Thereafter, the read data is transmitted to the host 1 by the host I/F controller 10.
The ATI processor 34 executes an ATI countermeasure process. As described above, in a comparative example, the number of times of writing for a plurality of tracks belonging to each track group is counted, and in response to the counted value exceeding a threshold, a refreshing operation for a plurality of tracks belonging to the track group is executed. However, according to such a method, in a case where approaching writing to an adjacent track occurs, an increase in the influence of erasing is not considered. In addition, in a case where the approaching writing to an adjacent track occurs, there is a possibility that the refresh operation is delayed. Furthermore, in a case where a threshold for the refresh operation is set to be small in consideration of the approaching writing to an adjacent track, while the refreshing timing is matched, the refresh operation is frequently executed, whereby the performance is degraded.
Thus, in this embodiment, the number of times of writing is managed for each track, and, in a case where approaching writing to an adjacent track occurs, the above-described number of times of writing of the adjacent track is updated based on a weighting factor according to the off-track amount. In addition, through an experiment performed by the present inventors, it is clarified that there is an exponentially adverse effect on the writing quality of an adjacent track in accordance with an increase in the off-track amount. For this reason, the weighting factor is set as a value that exponentially increases according to the off-track amount.
In the configuration illustrated in
In a case where data writing to the magnetic disk 3 has occurred, the ATI processor 34 calculates the number of times of writing (a write count) in units of tracks. Next, the ATI processor 34 executes a process illustrated in
The ATI processor 34 determines whether or not an off-track has occurred in the track (i) based on the output of the off-track detecting unit 41 (S100). In a case where the off-track is determined not to have occurred (S100 No), the ATI processor 34 adds a write count calculated this time to the current ATI count value of the track (i) that is registered in the ATI count table 36a. The ATI processor 34 updates the ATI count value of the track (i) that is registered in the ATI count table 36a based on the result of the addition (S110).
On the other hand, in a case where the off-track is determined to have occurred (S100 Yes), the ATI processor 34 acquires a maximum off-track amount w1 (positive value) toward the inner side and a maximum off-track w2 (positive value) toward the outer side based on the off-track amount OFT of the track (i) that is acquired from the off-track detecting unit 41 (S120).
The ATI processor 34, as represented in the following Equation (1), calculates a write count Cw corresponding to the off-track amount w1 by calculating a to the power of w1 by using the maximum off-track amount w1 toward the inner side and the weighting coefficient α. In other words, the ATI processor 34 calculates the write count Cw by using an exponential function having the weighting coefficient α as the base and having the off-track amount w1 as the exponent. The ATI processor 34 adds the calculated write count Cw to the current ATI count value of the track (i+1) that is registered in the ATI count table 36a. The ATI processor 34 updates the ATI count value of the track (i+1) that is registered in the ATI count table 36a based on a result of the addition.
Cw=α̂w1 (1)
The ATI processor 34, as represented in the following Equation (2), calculates a write count Cw corresponding to the off-track amount w2 by calculating a to the power of w2 by using the maximum off-track amount w2 toward the outer side and the weighting coefficient α. The ATI processor 34 adds the calculated write count Cw to the current ATI count value of the track (i−1) that is registered in the ATI count table 36a. The ATI processor 34 updates the ATI count value of the track (i−1) that is registered in the ATI count table 36a based on a result of the addition (S130).
Cw=α̂w2 (2)
In addition, the ATI processor 34 executes a process illustrated in
Referring back to
For example, in the example illustrated in
As above, in this embodiment, the ATI count value for each track is managed, a weighting factor that exponentially increases in accordance with the off-track amount is calculated, and this weighting factor is added to the weighting factor of an adjacent track. Accordingly, a refresh process that is based on the ATI count value is executed at appropriate timing, and a read error according to the write offset can be prevented.
In this embodiment, while the write count Cw for weighting is calculated based on a maximum value of the write offset amounts, the write count Cw may be calculated by using an average value of the write offset amounts of the track (i).
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
This application is based upon and claims the benefit of priority from U.S. Provisional Application No. 62/148,276, filed on Apr. 16, 2015; the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62148276 | Apr 2015 | US |