Embodiments of the present invention relate to the field of data storage, and more particularly relating to adjacent-track-erasure (ATE) refresh.
A disk drive is an information storage device. A disk drive includes one or more disks clamped to a rotating spindle and at least one head for reading information representing data from and/or writing data to the surfaces of each disk. The head is supported by a suspension coupled to an actuator that may be driven by a voice coil motor. Control electronics in the disk drive provide electrical signals to the voice coil motor to move the head to desired positions on the disks to read and write the data in tracks on the disks and to park the head in a safe area when not in use or when otherwise desired for protection of the disk drive.
One problem with disk drives is the potential of data loss experienced by tracks that are adjacent to a track that experiences a high frequency of write operations.
For some example embodiments, methods of and systems for keeping track of write operations that may affect integrity of information stored on a magnetic disk are disclosed. The tracks on the magnetic disk are divided into groups. A group counter may be used to count the number of write operations to the group, and a track counter may be used to count the number of write operations to the tracks in a selected group.
Other features will be apparent from the accompanying drawings and from the detailed description that follows. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of various embodiments. It will be evident, however, to one skilled in the art that the present description may be practiced without these specific details.
Hereinafter, example embodiments of the present invention will be described with reference to the drawings. In the following description, the term adjacent is defined to include locations immediately adjacent and within a nearby distance from an object being discussed.
Protecting the integrity of information stored on a magnetic disk is an important criterion of disk drive manufacturers. As a number of write operations on a particular track increases, the potential of these write operations affecting the integrity of the information stored on the adjacent tracks may increase. This problem is commonly referred to as Adjacent Track Erasure (ATE) problem. To avoid the ATE problem, ATE refresh is performed at the appropriate time. The ATE refresh occurs when the number of write operations reaches a certain threshold. To monitor when the threshold is reached or exceeded, a counter may be used. Since there may be hundreds of thousands of tracks on a magnetic disk, there may be many counters. The amount of memory used to implement these counters may be large (e.g., 1 megabyte or more) and may add to the cost of the disk drive. As will be described, some example embodiments of the present invention may provide techniques to monitor the number of write operations while keeping the amount of memory required and the impact on the performance relatively small
The magnetic disk 110 is mounted on and rotated by a spindle motor 112. Various digital data are recorded on the magnetic disk 110. In an example embodiment, the magnetic head incorporated in the head slider 116 is an integrated head including a write head of a single pole structure and a read head using a shielded magneto resistive (MR) read element (such as a GMR film or a TMR film). The suspension 115 is held at one end of the actuator arm 114 to support the head slider 116 to face the recording surface of the magnetic disk 110. The actuator arm 114 is attached to a pivot 113. The voice coil motor (VCM) 117, which drives the actuator, is provided at the other end of the actuator arm 114. The VCM 117 drives the head suspension assembly to position the magnetic head at an arbitrary radial position of the magnetic disk 110.
The circuit board may include a power integrated circuit (often referred to as a “combo-chip) to generate driving signals for the VCM 117 and the spindle motor 112, and a system-chip (often referred to as an “SOC” or “System-On-a-Chip”) which communicates with the host computer system, coordinates the transfer of data between the host computer system, any buffer memory of the disk drive, and the head IC. The SOC generally may contain at least one microprocessor, a read/write channel, a data-controller to facilitate the above-mentioned data-transfers. The SOC may also contain the buffer memory of the disk drive. In some example embodiments, the buffer memory of the disk drive may be contained in another IC, usually a DRAM (Dynamic Random Access Memory). For some example embodiments, the SOC will control that DRAM chip as well.
As the substrate 321, a flat glass substrate may be used. The substrate 321 is not limited to the glass substrate but an aluminum substrate (or any other suitable substrate) may be used. A magnetic material is placed onto the substrate 321 and selectively magnetized to form recording tracks. A magnetic material such as CoCrPt may be used, although example embodiments are not so limited. Although not shown, a protective film of diamond-like carbon (DLC) may be formed on the surfaces of the media. In one example, lubricant may be applied to the surface of the protective film.
With reference to
As shown in
The preamble section 441 is provided to execute a phase lock loop (PLL) process for synthesizing a clock for a servo signal read relative to deviation caused by relative motions of the heads and media, and an AGC process for maintaining appropriate signal amplitude.
The address section 442 may have servo signal recognition codes called servo-address-marks, sector data, cylinder data, and the like formed at the same pitch as that of the preamble section 441 in the circumferential direction using encoding, for example Manchester, or other types of encoding. The burst section 443 is an example of an off-track detecting region used to detect the amount of off-track with respect to the on-track state for a cylinder address. The burst section 443 includes patterns to locate a read or write head with respect to a desired track center. A pattern in
The principle of detection of a position on the basis of the burst section 443 will not be described in detail. When using the pattern shown, the off-track amount may be obtained by calculating a function of the average amplitude value of read signals from the A, B, C, and D bursts. As discussed above, other patterns may be used that do not depend on average amplitude.
As shown in
The head slider 116 may be elastically supported by a gimbal provided on the suspension 115. The suspension 115 is attached to the actuator arm 114, which is rotatably attached to the pivot 113. The VCM 117 generates a torque around the pivot 113 for the actuator arm 114 to move the head in the radial direction of the magnetic disk 110. The HIC is fixed to the actuator arm 114 to amplify input signals to and output signals from the head. The HIC is connected to the PCB 600 via a flexible cable 655. Providing the HIC on the actuator arm 114 may effectively reduce noise in the head signals. However, the HIC may be fixed to the HDA 100.
As described above, the magnetic recording layer is formed on each side of the magnetic disk 110, and the servo zones 219, each shaped like a circular arc, are formed so as to correspond to the locus of the moving head. The specifications of the magnetic disk meet outer and inner diameters and read/write characteristics adapted to a particular drive. The radius of the circular arc formed by the servo zones 219 is given as the distance from the pivot 113 to the magnet head element.
In the illustrated example embodiment, several major electronic components, so-called system LSIs, are mounted on the PCB 600. The system LSIs are a controller 610, a read/write channel IC 620, and a motor driver IC 640. The controller 610 includes a hard disk controller (HDC) and an MPU, and firmware. The MPU is a control unit of a drive system and includes ROM, RAM, CPU, and a logic processing unit that implements a head positioning control system according to the present example embodiment. The logic processing unit is an arithmetic processing unit comprised of a hardware circuit to execute high-speed calculations. Firmware for the logic processing circuit is saved to the ROM or elsewhere in the disk drive. The MPU controls the drive in accordance with firmware. The PCB 600 may include other components as described above with the example of
Some of the circuits mentioned above may be contained on the same LSI. The HDC is an interface unit in the disk drive which manages the whole drive by exchanging information with interfaces between the disk drive and a host computer 650 (for example, a personal computer) and with the MPU, read/write channel IC 620, and motor driver IC 640.
The read/write channel IC 620 is a head signal processing unit relating to read/write operations. The read/write channel IC 620 is shown as including a read/write path 612 and a servo demodulator 604. The read/write path 612, which can be used to read and write user data and servo data, may include front end circuitry useful for servo demodulation. The read/write path 612 may also be used for self-servowriting. It should be noted that the disk drive also includes other components, which are not shown because they are not necessary to explain the example embodiments.
The servo demodulator 604 is shown as including a servo phase locked loop (PLL) 626, a servo automatic gain control (AGC) 628, a servo field detector 631 and register space 632. The servo PLL 626, in general, is a control loop that is used to provide frequency and phase control for the one or more timing or clock circuits (not shown in
One or more registers (e.g., in register space 632) can be used to store appropriate servo AGC values (e.g., gain values, filter coefficients, filter accumulation paths, etc.) for when the read/write path 612 is reading servo data, and one or more registers can be used to store appropriate values (e.g., gain values, filter coefficients, filter accumulation paths, etc.) for when the read/write path 612 is reading user data. A control signal can be used to select the appropriate registers according to the current mode of the read/write path 612. The servo AGC value(s) that are stored can be dynamically updated. For example, the stored servo AGC value(s) for use when the read/write path 612 is reading servo data can be updated each time an additional servo zone 219 is read. In this manner, the servo AGC value(s) determined for a most recently read servo zone 219 can be the starting servo AGC value(s) when the next servo zone 219 is read.
The read/write path 612 includes the electronic circuits used in the process of writing and reading information to and from the magnetic disks 110. The MPU can perform servo control algorithms, and thus, may be referred to as a servo controller. Alternatively, a separate microprocessor or digital signal processor (not shown) can perform servo control functions.
In the current example, the first track 720 may include information section 722, the second track 730 may include information section 732, and the third track 740 may include information section 742. The locations of the information sections 722, 732 and 742 are shown for illustrative purposes only, and they may be located anywhere on their corresponding tracks. For example, the information sections 722, 732 and 742 may be located adjacent to one another on their corresponding tracks. Typically, the tracks on the disk 700 may be equally spaced and may be set based on number of tracks per inch (TPI). This is also referred to as track spacing. For example, the track spacing between the tracks 720 and 730 is the same as the track spacing between the tracks 730 and 740. Low TPI means there are fewer tracks per inch (or more space between two adjacent tracks) and thus may correspond to less storage capability. Normal TPI means there are more tracks per inch (or less space between two adjacent tracks) than low TPI and thus may correspond to higher storage capability.
In general, when a track experiences a high frequency of write operations (e.g., a million write operations), the information stored on the adjacent tracks may be affected. The write operations may be related to one or more files being rewritten many times. A predetermined threshold may be used to determine when the number of write operations is considered to be high for the purpose of the ATE refresh. This predetermined threshold may be referred to as an ATE threshold. A software or hardware ATE counter may be used. For example, when the number of times that the information section 732 on the track 730 is written exceeds the ATE threshold, the integrity of the information section 722 and the information section 742 on the adjacent tracks 720 and 740 may be affected. This may be due to the leakage of the magnetic field associated with the write operations. To avoid losing the information on the adjacent tracks, the ATE refresh may be necessary for these adjacent tracks. Any ATE refresh algorithms may be used.
For some example embodiments, the ATE threshold may be set by a disk drive manufacturer. For some example embodiments, the ATE threshold may be subsequently modified by software and/or hardware installed in the disk drive by the disk drive manufacturer.
Track spacing may have a large influence on whether there is a need to perform the ATE refresh. One approach is to use low TPI for all tracks to reduce the need for the ATE refresh; however, that comes with the cost of storage capacity. Another approach is to use normal TPI for all tracks and perform the ATE refresh more frequently (e.g., after each ten thousand write operations) to avoid losing the information on the adjacent tracks; however, that comes with the cost of overhead and performance. In general, when using low TPI (the track spacing is high), the susceptibility to ATE is reduced.
In order to monitor the number of write operations to a track, a counter may be used. This counter may be referred to as a track counter. Each track counter may be associated with a register or a memory address. Since there may be hundreds of thousands of tracks in a magnetic disk, having one track counter per track may be inefficient and may require a large amount of memory. For example, if the disk drive has 400,000 tracks, and each track counter requires two bytes of memory, then having a track counter for each track would require 800,000 bytes (2 times 400,000) of memory.
One known technique of monitoring the number of write operations is to use a group counter for odd-numbered tracks in a group and a different group counter for even-numbered tracks in the group. When the number of write operations to the even-numbered tracks exceeds a threshold, the ATE refresh may be applied to all of the odd-numbered tracks in the group, and vice-versa. Thus, when a disk drive has 400,000 tracks, and there are 16 tracks per group, there would be 25,000 groups (400,000 divided by 16). In the current example, since there are a group counter for odd-numbered tracks and a group counter for even numbered tracks, and since each group counter requires two bytes of memory, the total amount of memory required is 100,000 bytes (25,000 times two group counters times 2 bytes). This is less than the 800,000 bytes required when using the track counter for each individual track.
For some example embodiments, when the group counter reaches or exceeds a group threshold, a track counter may be used to monitor the number of write operations to each of the individual tracks in that group. Referring to the table 850, when the number of write operations to the tracks in the group 830 reaches the group threshold (e.g., 120), the number of write operations to each of the tracks 080-095 may be individually monitored, as illustrated by table 890. For some example embodiments, memory associated with monitoring the number of write operations to the individual tracks may be allocated after the group counter reaches or exceeds the group threshold (referred to as the first threshold in table 850). It may be noted that the number of bits required to implement the group counter may be based on the group threshold. For example, when the group threshold is 120, as in the current example, the number of bits required to implement the group counter is seven (7). Thus, since there are 8 bits in a byte, one bit is not used. For some example embodiments, an indicator may be used to indicate whether the number of write operations to the tracks in a group is being monitored as a group or on a track-by-track basis. For some example embodiments, the indicator may be implemented using the unused bit from the byte that is used to implement the group counter. It may be noted that by using one bit for the indicator (referred to herein as an indicator bit), the group threshold may be limited to a value of up to 127 (using the remaining seven (7) bits) instead of up to 255 (using all eight (8) bits). For some example embodiments, the indicator bit may be set to “1” when the tracks in a group are being individually monitored and set to “0” otherwise. When the bit is set to “1”, the remaining seven (7) bits in the byte that had previously been used to keep track of the number of write operations to the group may be replaced by a value that may be used to determine the location (or address) of a table where the number of write operations to each track are being kept track of. For example, the byte associated with the group 830 may have a value “10101110”, where the left most significant bit “1” indicates that the remaining seven bits of “0101110” may be used to determine an address associated with the table 890. For example, the seven (7) bits may be up-shifted by five (5) bits and then added to by an offset to determine an address. Using the example scheme described herein would limit the number of secondary tables (similar to the table 890) to 128. If two bytes were allocated to each of the group counters, then the first threshold would be limited to a value of 32767 (or 215-1), and up to 32768 secondary tables may be possible.
For some example embodiments, the number of tracks per group may be the same, or they may be different. It may be noted that although the current example illustrates using a byte to implement the group threshold, it may be possible to use more than one byte for a higher group threshold value.
For some example embodiments, the number of write operations to each of the tracks may be initially set to the same value when the tracks are to be individually monitored. For some example embodiments, this initial value may be the same as the value of the group threshold. As illustrated by the example tables 850 and 890, the initial number of write operations assigned to each of the tracks 080-095 in the group 830 may be 120 which is the value of the group threshold in the current example. For illustrative purposes, the track 080 in the table 890 is associated with 120 write operations which may indicate that the value was not modified since its initial setting. For some example embodiments, the initial value may be set to zero or to any number as long as the initial values are the same for all of the tracks in the group. The initial value may be used to determine when the ATE refresh is necessary.
For some example embodiments, a track threshold (referred to as a second threshold in the table 890) may be used to determine when the number of write operations is high enough that the ATE refresh is necessary. For example, the track threshold may be set to a value of 10,000 indicating that when the number of write operations to a particular track reaches or exceeds 10,000, the ATE refresh for the adjacent tracks may be performed. For some example embodiments, the value of the group threshold may be small comparing to the value of the track threshold. It may be noted that when the value of the track threshold is small, the ATE refresh may be performed long before any possibly-damaged information becomes un-readable. It may also be noted that when the value of the track threshold is small, the number of bytes required to implement the track counter may also be small. In the current example, only two bytes may be required to implement a track counter when the track threshold is 10,000.
The technique of monitoring the individual tracks in addition to monitoring the group of tracks improves over the technique that requires the ATE refresh to be performed for all of the even tracks or all of the odd tracks in a group. When the number of write operations to the tracks in a group is evenly spread-out, the ATE refresh may be performed less frequently. This is because a write operation to a track (e.g., track 080 in the table 890) will only affect the track counter for that particular track and not the group counter for the associated group (e.g., group 830). When the number of write operations to the tracks in a group is concentrated on one particular track (e.g., track 094), the ATE refresh may be performed only for the adjacent tracks (e.g., 093 and 095) and not all the odd or even tracks in the group or tracks that are not adjacent to the track has many write operations. When the number of groups that exceed the group threshold is small, the amount of memory used to monitor the write operations may be small because the number of tracks that are monitored individually is small.
Resetting the Track Counters and/or Group Counter
For some example embodiments, when the ATE refresh is performed, the track counter for the track that causes the ATE refresh may be reset. The reset value may be zero. For example, when the number of write operations to the track 094 reaches the 10,000 threshold, the ATE refresh may be performed for the adjacent tracks 093 and 095. The track counter for the track 094 may then be reset to zero. For some example embodiments, when the values of the track counters of all of the tracks in a particular group are less than the group threshold, it may not be necessary to monitor the individual tracks. In these situations, a highest value of all of the track counters in the group may be used as the group counter for that group. The indicator may be reset to a value corresponding to not monitoring the individual tracks.
For some example embodiments, when the tracks in a group are monitored on a track-by-track basis, it may be possible to refresh all the tracks in the group when one or more certain criteria are met. For example, this may occur when all of the track counters are within 50% of the track threshold. As another example, this may occur when there is a group that has a track counter having a highest value. As yet another example, this may occur when there is a group that has a highest total value of all the values of the track counters. After all the tracks are refreshed, the group counter for the associated group may be reset. For some example embodiments, refreshing all the tracks in a group may be performed when the memory is low due to memory allocated to the various track counters. Other techniques to select a group to be refreshed and to reset the group counter may also be used.
The methods and systems described herein may require allocation of memory to monitor the write operations on a group-by-group basis, and when necessary allocation of additional memory to monitor the write operations on a track-by-track basis. It may be noted that the memory allocated when monitoring a group of tracks on the track-by-track basis may be de-allocated when it is no longer necessary.
At block 920, it is determined whether the number of write operations to any of the groups exceed (or reach) the group threshold. If there is such a group, the process may continue to block 925 where the number of write operations to the individual tracks in that group is monitored. A track counter may be used for each of the tracks. An initial value may be assigned to each of the track counters. From block 920, if there is no such group, the process may continue to monitor the groups at block 915.
At block 930, it is determined whether the number of write operations to any of the tracks in the group exceed (or reach) a track threshold. If there is no such track, the process may continue at block 925. If there is such a group, then the process may continue to monitor the tracks at block 925.
From block 930, if there is such a track, the process may continue at block 935, where the ATE refresh may be performed to the tracks that are adjacent to the track located in block 930. At block 940, the track counter for the track located by the operations of block 930 may be reset. The process may stop at block 945. It may be noted that the process described above with
It is possible that the tracks in a magnetic disk of a disk drive may be associated with different track spacing or track-per-inch (TPI) regions. For example, there may be a low TPI region and a normal TPI region. It may be noted that the process described herein may be applied with a magnetic disk with tracks associated with a single TPI region or multiple TPI regions.
Computer system 1000 may include or have access to a computing environment that includes input 1016, output 1018, and a communication connection 1020. The computer system 1000 may operate in a networked environment using the communication connection 1020 to connect to one or more remote computers. The remote computer may include a personal computer (PC), server, router, network PC, a peer device or other common network node, or the like. The communication connection 1020 may include a Local Area Network (LAN), a Wide Area Network (WAN) or other networks. The controller 610 (described above in the example in
In the current example, computer program 1025 may be stored in non-volatile memory 1008. In some situations, the computer program 1025 may be stored in volatile memory 1006. The computer program 1025 may include computer-readable instructions and may be stored on a computer-readable medium and executable by the processing unit 1002 of the computer system 1000. A disk drive, CD-ROM, and RAM are some examples of articles including a computer-readable medium. As mentioned above, the computer program 1025 may also be termed firmware associated with the disk drive. In some example embodiments, a copy of the computer program 1025 can also be stored on the magnetic disk 110 of the HDA 100 (described above).
The foregoing description of the specific example embodiments reveals the general nature of the invention sufficiently that others can, by applying current knowledge, readily modify and/or adapt it for various applications without departing from the generic concept, and therefore such adaptations and modifications are intended to be comprehended within the meaning and range of equivalents of the disclosed example embodiments.
The Abstract is provided to comply with 37 C.F.R. §1.72(b) to allow the reader to quickly ascertain the nature and gist of the technical disclosure. The Abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Accordingly, the invention is intended to embrace all such alternatives, modifications, equivalents and variations as fall within the spirit and broad scope of the appended claims.