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. More specifically, storing data includes writing information representing data to portions of tracks on a disk. Data retrieval includes reading the information representing data from the portion of the track on which the information representing data was stored. Disk drives also include an actuator utilizing linear or rotary motion for positioning transducing head(s) over selected data tracks on the disk(s). A rotary actuator couples a slider, on which a transducing head is attached or integrally formed, to a pivot point that allows the transducing head to sweep across a surface of a rotating disk. The rotary actuator is driven by a voice coil motor.
Disk drive information storage devices employ a control system for controlling the position of the transducing head during read operations, write operations and seeks. The control system includes a servo control system or servo loop. The function of the head positioning servo control system within the disk drive information storage device is two-fold: first, to position the read/write transducing head over a data track with sufficient accuracy to enable reading and writing of that track without error; and, second, to position the write element with sufficient accuracy not to encroach upon adjacent tracks to prevent data erosion from those tracks during writing operations to the track being followed, or to stop an ongoing write operation if continued writing might encroach upon an adjacent track.
A servo control system includes a written pattern on the surface of a disk called a servo pattern. The servo pattern is read by the transducing head. Reading the servo pattern results in positioning data or a servo signal used to determine the position of the transducing head with respect to a track on the disk. In one servo scheme, positioning data can be included in servo wedges, each including servo patterns. Information included in the servo patterns can be used to generate a position error signal (PES) that indicates the deviation of the transducing head from a desired track center. The PES is also used as feedback in the control system to provide a signal to the voice coil motor of the actuator to either maintain the position of the transducing head over a desired track centerline or to reposition the transducing head to a position over the centerline of a desired track.
In an ideal disk drive, the tracks of the disk are non-perturbed circles situated about the center of the disk. As such, each of these ideal tracks includes a track centerline that is located at a known constant radius from the disk center. In an actual disk drive, however, it is difficult to write non-perturbed circular tracks to the disk. That is, due to certain problems (e.g., vibration, bearing defects, inaccuracies in the STW and disk clamp slippage), the tracks are generally written differently from the ideal non-perturbed circular shape. Positioning error created by the perturbed nature of these tracks is known as written-in repeatable runout (WRRO).
The perturbed shape of these tracks complicates the transducer positioning during read and write operations or self servowrite because the servo control system needs to continuously reposition the transducer during track-following to keep up with the constantly changing radius of the track centerline with respect to the center of the spinning disk. Furthermore, the perturbed shape of these tracks can result in track squeeze and track misregistration errors during read and write operations and self servo write.
Disk drive manufacturers have developed techniques to measure the WRRO and produce compensation values.
The invention is pointed out with particularity in the appended claims. However, a more complete understanding of the present invention may be derived by referring to the detailed description when considered in connection with the figures, wherein like reference numbers refer to similar items throughout the figures and:
The description set out herein illustrates the various embodiments of the invention and such description is not intended to be construed as limiting in any manner.
A rotary actuator 130 is pivotally mounted to the housing base 104 by a bearing 132 and sweeps an arc between an inner diameter (ID) of the disk 120 and a ramp 150 positioned near an outer diameter (OD) of the disk 120. Attached to the housing 104 are upper and lower magnet return plates 110 and at least one magnet that together form the stationary portion of a voice coil motor (VCM) 112. A voice coil 134 is mounted to the rotary actuator 130 and positioned in an air gap of the VCM 112. The rotary actuator 130 pivots about the bearing 132. The actuator accelerates in one angular direction when current is passed through the voice coil 134 and accelerates in an opposite direction when the current is reversed, allowing for control of the position of the actuator 130 and the attached transducing head 146 with respect to the disk 120. The VCM 112 is coupled with a servo system (shown in
Each side of a disk 120 can have an associated head 146, and the heads 146 are collectively coupled to the rotary actuator 130 such that the heads 146 pivot in unison. The invention described herein is equally applicable to devices wherein the individual heads separately move some small distance relative to the actuator. This technology is referred to as dual-stage actuation (DSA).
One type of servo system is an embedded, servo system in which tracks on each disk surface used to store information representing data contain small segments of servo information. The servo information, in some embodiments, is stored in radial servo sectors or servo wedges shown as several narrow, somewhat curved spokes 128 substantially equally spaced around the circumference of the disk 120. It should be noted that in actuality there may be many more servo wedges than as shown in
The disk 120 also includes a plurality of tracks on each disk surface. In
There are many different patterns for servo bursts.
In an ideal drive, one of the burst edges may be at the center of a track or at a known distance from the center of the track. In an ideal drive, the servo pattern is read and demodulated and the distance from a selected servo burst edge is determined. A position error signal (PES) indicative of the distance from the track center or the servo burst edge is generated and used to move the read head or write head to a position over the center of the desired track. In most drives, although the write head (from a servo writer, a media writer or the product) is carefully controlled during the servo writing, it is not always perfect and the servo data placed on the disk may not correspond to the tracks as in the ideal situation. It is nearly impossible to always perfectly position a head with respect to a track for each rotation of a disk. There is almost always a noticeable offset between the desired position and the actual position of the head with respect to the disk. This may result in a written servo pattern having a portion of the pattern that is slightly misplaced. This can lead to written-in runout. Written-in runout can be thought of as the offset between the “actual” centerline, or desired radial center, of a track and the centerline that would be determined by a head reading the written servo pattern. Written-in runout can lead to servo performance problems, wasted space on a disk and, in a worst case, unrecoverable or irreparably damaged data.
It is desirable to determine the distance between the desired track centerline (either a read track centerline or write track centerline) and the apparent centerline obtained from demodulating the burst pattern. Knowing this distance, all or at least a portion of the synchronous written-in runout can be removed from the servo pattern as written. This determined distance can be stored in the servo wedges for a track, or in memory associated with the disk drive. When there are values associated with each wedge, the stored distance data is referred to herein as the Wedge Offset Reduction Field (WORF) data. WORF data can be, for example, a digital number placed after a servo wedge on a given track that includes an amount that should be added to, or subtracted from, the PES value for that wedge obtained from demodulating the servo bursts. Alternatively, WORF data can also be stored in memory such as SRAM, DRAM, or flash. The WORF data can be used to compensate for the misplacement of the burst edges used to determine a track centerline. The WORF value associated with a wedge can be read and added to the value to the computed PES, and presumably follow a more accurate track. Of course, the WORF data may be a negative or positive value.
The actuator 130 is driven by an actuator driver 440. The actuator driver 440 delivers current to the voice coil motor (shown in
A summing node 428 is also included in a signal path downstream from the preamplifier 424 and denotes addition of an unknown position error component or repeatable runout (RRO) which was written into the servo wedge 428 during conventional servo writing operations at a laser-interferometer-based servo writer station. This position error RRO is added to relative amplitude values read from the fine position AB+, AB− burst and the CD+,CD− burst and recovered as a sum by a fine position recovery circuit 430. The analog signal from the fine position recovery circuit 430 is digitized and a partial response maximum likelihood digital detector is used to determine the burst locations. These relative amplitudes (corrupted by the written-in position error RRO) are then quantized by an analog to digital converter 432 and supplied to a head position controller circuit 436. In the data stream from the converter 432, a summing node 434 combines a WORF value as read from the correction value field or WORF field 410 of the present servo sector 128 with the digitized position value in order to cancel out the position error RRO. The controller circuit 436 receives head position command values from other circuitry within the disk drive 100 and combines the command values with the quantized and corrected head position values to produce a commanded actuator current value. This commanded current value calculated by node 436, converted into an analog value by a digital to analog converter 438, and applied to control an actuator driver circuit 440 which operates the rotary actuator 130 to adjust the position of the head relative to the data track 129 being followed.
The WORF value or correction value for each wedge is determined at each servo wedge on the disk for a particular track. In other words, the WORF value is determined in “real time” on a per wedge basis. The WORF value for a servo wedge is determined before the next servo wedge on the disk is encountered. The disk drive 100 (shown in
ERR(z)=WORF(z)+N(z)+RRO(z)−G(z)·ERR(z)
which may be rearranged as:
WORF(z)+N(z)+RRO(z)=ERR(z)·[1+G(z)];
The RRO signal is, by definition, periodic. Being periodic, it is discrete in the frequency domain and can be represented as a finite length z-polynomial. Since it repeats every revolution of the disk spindle, it can be expressed as a summation of the various harmonics of the spindle. In fact, the only parts of rro(t) that exist are those that occur at ωi, i=0 to M/2 where M is the number of servo position samples per revolution. Since G(z) is a linear system excited by a periodic signal rro(t), the only parts of G(z) of interest here are those at each ωi. The whole system is treated as a summation of discrete systems, each operating at ωi and solve each individually.
For a given ωi, the calculation of WORF(jωi) is straight forward, by measuring ERR(jωi) (via discrete Fourier transform (DFT) or similar method), and knowing 1+G(jωi), we calculate RRO(jωi) from:
WORF(jωi)+N(Jωi)+RRO(jωi)=ERR(jωi)−[1+G(jωi)];
The process of taking DFTs of err(t) at each ωi and scaling each by the corresponding 1+G(jωi) is the same as convolving err(t) with a kernel made from the response of 1+G(z) evaluated at each ωi. Thus, we convolve the signal err(t) with the kernel to yield:
worf(t)+n(t)+rro(t)=err(t)kernel
where represents the convolution operator.
In accordance with principles and aspects of the present invention, the impact of the zero mean noise term, n(t) is minimized by synchronously averaging, or low pass filtering with an asymptotically decreasing time constant, either err(t), or err(t)-worf(t), for multiple revolutions of the spindle. The number of revolutions necessary is dependent upon the frequency content of the n(t) term. An n(t) having significant spectra near the spindle harmonics will require more revolutions of data filtering to sufficiently differentiate the spectra of rro(t) from n(t). In the presence of sufficient filtering, n(t) becomes small and the left side of the above equation reduces to:
worf(t)+rro(t)
which is the error between our calculated WORF values and the RRO values themselves. This format lends itself to an iterative solution:
worf(t)o=O;
worf(t)k+1=worf(t)k+α·err(t)kkernel;
where α is a constant near unity selected to yield a convergence rate that is forgiving to mismatches between the actual transfer function and that used to generate the kernel. It is also possible that the value of α could vary from iteration to iteration.
In accordance with principles and aspects of the present invention, the kernel is derived for each different disk drive product, by a process of either control system simulation or by injecting identification signals into the servo control loop and measuring responses to those signals. In some embodiments, a separate kernel can be determined for each manufactured drive, during the post-assembly manufacturing process steps. It is even possible to use a separately determine kernel for each head, or to even multiple kernels for each head, one for each of a multiple of radial zones on each head.
In one embodiment, two WORF values are used in demodulating a position error signal (PES). In one example embodiment, the method would associate one offset or WORF value with the placement-error of each of the two burst-edges, such as 210, 220, or 310, 320 (shown in
During the compute WORF times, certain operations must take place in order to compute WORF values on a per wedge basis. Generally, the operations include measuring the error transfer function of a system and determining corresponding inverse impulse response (done only once, possibly during self-test and does not have to be re-done on either per-track of per-wedge basis) and correcting the PES for a given track. The inverse impulse response (inverse transfer function) may be obtained in a variety of ways. Furthermore, the inverse impulse response may be obtained for each transducer in the disk drive. The other step includes collecting PES information for at least as many wedges prior, and including to the current wedge, as there are wedges in one disk revolution. A circular convolution of those two quantities or these two arrays in time domain is performed which yields a correction value to be applied to the position so that the result is effectively circular tracks, as opposed to noncircular tracks produced by a servo writer or a self servo write process.
The method 700 also includes continuously saving the position error signal (“PES”) for each servo wedge around a track 714. These values are needed to perform the convolution of all the PES values to as part of determining the written in run out (WRRO) associated with the servo information of the servo wedge. More specifically, the PES for each wedge n using WORFi(n) is stored in a buffer. The PES values associated with the wedges in one full revolution prior to the current wedge n are stored in the buffer. The PES is determined as part of servo demodulation, during the time when a processor is processing operations in response to a servo interrupt. In one embodiment, the decoded PES is continuously saved for each servo wedge around a track into a circular buffer. Using a circular buffer, all the values for the PES associated with each of the wedges around the disk for a certain track can be retrieved from the circular buffer. In the method 700, the WORF value for an individual servo wedges n is then computed as a circular convolution (denoted as CONVi(n)) of PES for the last revolution prior to next servo wedge using the inverse impulse response of the system, as depicted by reference number 716.
The method 700 also includes multiplying the circular convolution, CONVi(n), by a variable gain G, as depicted by reference number 718. Variable gain G, in some embodiments, is a function of the number of wedges m processed from the start of current WORF computation procedure. The gain G may also be a function of the level track misregistration (“TMR”) or repeatable run out (“RRO”) achieved during the current WORF procedure. Higher current levels of TMR or RRO may justify higher gain G values while lower levels of TMR or RRO may justify lower gain G values. Finally gain G could be a function of current revolution number equal to
G=1/(Rev) or G=1/(Rev+1),
where Rev is the number of full disk revolutions from the start of the current WORF computation procedure. Other functions are possible as well. The value of the gain should be decreasing for higher processed wedge numbers m to ensure reduced effects of nonrepeatable run out (“NRRO”) and convergence of WORF values to the correct estimates of WRRO of the servo track. This variable gain iterative procedure is less sensitive to impulse response measurement and/or modeling errors and to non-linearities of the control system and PES decoding.
WORFcurrent(n)=CONVi(n)*G
The calculated WORF value for the current wedge n is then added to the existing WORF values, as depicted by reference number 720, and will be used as WORF correction next time PES for wedge n is calculated. This element is also shown by the mathematical relationship set forth below:
WORFi(n)=WORFcurrent(n)+WORFi−1(n)
Next, a decision tree is used to determine if the final conditions are met, as depicted by reference number 722. The final conditions for the proposed method 700 are revolution number independent. In one embodiment, the WORF computation method 700 is terminated after a predetermined number of servo wedges from the start of the procedure. The method 700 may also be terminated after a desired level or ratio of RRO reduction is achieved. The method 700 may be terminated or paused by a qualifying event, such as start of a seek, servo position bump detection (off-track drift) or an external disturbance. A qualifying event may be triggered by one of several incidents. For example, an indication of vibration might be another qualifying event that may be triggered by an excessive number of track crossings occurring over a selected amount of time in the absence of a seek command. In another embodiment, a vibration is sensed by an accelerometer that is attached to the housing or to a printed circuit board attached to the housing of the disk drive 100. When the accelerometer has certain output indicative of an acceleration or vibration, this serves as a vibration which is a qualifying event. Of course, it should be noted that other criteria may be termed a qualifying event. Other termination criteria are also possible. In one embodiment, the WORF computation procedure could run indefinitely and not have termination criteria. In other words, the WORF computation would run throughout the life of the drive 100, which would include during the servo writing process, or during the testing time before shipping the drive to a customer (such as during self test or burn in) as well as when the drive is installed and used by the customer. Alternatively, the WORF computation procedure or method 700 could be used at various times during the life of the drive. For example, the WORF computation procedure or method 700 could be used as part of a data recovery procedure. Generally, when information representing data can not be retrieved during the normal operation of the drive, the controller generally will implement a set of data recovery techniques. Many times these data recovery techniques are divided into techniques that are generally successful and into further techniques, generally referred to as deep data recovery techniques, that may be used to recover the data before marking the sector or sectors as bad and placing them on a defect list for skipping. The WORF computation procedure or method 700 may be used as a deep data recovery technique, for example.
If the final conditions 722 are not met, the value of m is incremented by 1, as depicted by reference number 724, and the gain value, G, is adjusted, as depicted by the reference number 726. Several of the elements of the WORF computation procedure or method 700 are then repeated, starting at the element 714.
The WORF computation procedure or method 700 provides usable WORF values for a new servo track location in a relatively short time, when compared to other WORF determination techniques. Using the WORF computation procedure or method 700, the updated WORF values are available immediately after the corresponding wedge and this reduces the time between the measurement of the PES data and the use of correction values derived from this data. The WORF computation procedure or method 700 converges quickly and can be more stable than other methods. The WORF computation procedure or method 700 also lessens the computational overhead as well as the firmware implementation complexity associated with methods of performing the convolutions for all the wedges on the track sequentially after the collection of PES data for the entire revolution or multiple revolutions. The fact that WORF determination for each servo wedge has to be finished before the start of the next servo interrupt poses extra hardware requirement: the processor has to be fast enough to finish required computations in the time between the end of the first servo interrupt and the start of second servo interrupt.
Using the WORF computation procedure or method 700, the WORF values for every servo wedge is computed using the exact same set of steps. There are no distinct data collection and distinct data processing stages using the WORF computation procedure or method 700. This allows simpler and smaller lines of code implementation and does not require a WORF processing state machine running in the background. This WORF scheme is very naturally implemented completely in real time servo interrupt routine.
Computer-readable instructions stored on a computer-readable medium are executable by the processing unit 2002 of the computer 2010. A hard drive, CD-ROM, and RAM are some examples of articles including a computer-readable medium. For example, a computer program 2025 capable of providing a generic technique to perform access control check for data access and/or for doing an operation on one of the servers in a component object model (COM) based system according to the teachings of the present invention may be included on a CD-ROM and loaded from the CD-ROM to a hard drive. The computer-readable instructions allow computer system 2000 to provide generic access controls in a COM based computer network system having multiple users and servers.
A machine-readable medium, such as discussed above, provides instructions that, when executed by a machine, cause the machine to demodulate servo information for a first servo wedge, and determine a correction factor for a written in repeatable runout for the servo information for the first servo wedge before demodulating servo information for a second servo wedge. The second servo wedge is next in time with respect to the first servo wedge. In some embodiments, the instructions, when executed by a machine, further cause the machine to add the determined correction factor for the first servo wedge to a position error signal for a first servo wedge. The position error signal results from demodulating the servo information for the first servo wedge. In some embodiments, the instructions cause the machine to store the determined correction factor for the first wedge of servo information. The machine readable medium may also cause the machine to retrieve a plurality of PES values associated with each of a plurality of servo wedges associated with a track on a disk surface of a disk drive, and perform a convolution of the retrieved PES values from each of the plurality of servo wedges as part of determining the correction value. The machine readable medium also may include instructions to cause the machine to add the determined correction factor for the first wedge of servo information to a PES value for the first wedge of servo information. The machine may then be instructed to produce a current in a voice coil motor of the disk drive to move a transducer to a position over a selected track on a disk.
A disk drive includes a disk for storing information representing data, and an actuator including an actuator motor, and a transducer attached to the actuator. The disk includes a plurality of concentric tracks, and a plurality of servo wedges. The plurality of servo wedges includes a first servo wedge and a second servo wedge. Each of the plurality of servo wedges includes servo information crossing the plurality of concentric tracks. The transducer reads the servo information from the first servo wedge and the second servo wedge. The disk drive also includes a demodulator for demodulating information at the first servo wedge. The result of demodulating the servo information includes a determination of a position error signal related to the position of the transducer with respect to a desired track of the plurality of tracks. The disk drive includes a processor for determining a correction factor to correct for written in run out of the information as written in the first servo wedge. The correction factor is determined before demodulating the position error signal for the second servo wedge on the track. The processor adds the correction factor to the position error signal and the result fed back to the actuator motor to position the transducer over a selected track. The disk drive also includes a memory device for storing a plurality of position error signal values associated with demodulating each of the plurality of servo wedges along a track. The processor of the disk drive retrieves the plurality position error signal values from the memory device, and performs a convolution with the plurality of position error signal values as part of determining the correction factor. In one embodiment, the first servo wedge and the second servo wedge are adjacent one another on the surface of the disk. In still other embodiments, the disk drive includes an event detector for detecting events. The processor interrupts the determination of the correction factor in response to an input from the event detector.
The foregoing description of the specific 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 embodiments.
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.