Abstract:
Removing magneto-resistive asymmetry (MRA) from a signal is disclosed. Removing MRA includes determining an estimated offset error associated with error due to offset in the signal, determining an estimated signal error associated with error due to offset and MRA in the signal, and removing at least a portion of MRA from the signal based at least in part on the estimated offset error and the estimated signal error.

Description:
CROSS REFERENCE TO OTHER APPLICATIONS 
     This application claims priority to U.S. Provisional Patent Application No. 60/901,921 entitled DECOUPLING MAGNETO-RESISTIVE ASYMMETRY AND OFFSET LOOPS filed Feb. 15, 2007 which is incorporated herein by reference for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     Recordings on a magnetic disk can be performed either longitudinally or perpendicularly. In longitudinal recording, information is stored within or parallel to the plane of the magnetic disk. In perpendicular recording, information is stored perpendicular to the plane. Longitudinal recording products have been commercially available for some time; new perpendicular recording products are being developed because of the potential for much higher storage capacity compared to longitudinal recording. 
     A signal associated with a magnetic disk read channel may have a number of defects, such as offset (e.g., a constant voltage added to the signal), gain (e.g., a constant multiplied by the signal), or magneto-resistive asymmetry (MRA). MRA refers to distortion that results from a magneto-resistive read head operating in a nonlinear region of a magnetic field. Typically, feedback loops are used to handle offset, gain, and MRA. Existing offset loops and MRA loops are coupled, in that an offset error will cause the MRA loop to diverge. Perpendicular recording signals tend to have higher offset. Therefore, improved techniques for handling MRA would be desirable. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
         FIG. 1A  is a diagram illustrating an example of an ideal signal and a signal with an offset. 
         FIG. 1B  is a diagram illustrating an example of an ideal signal and a signal with MRA. 
         FIG. 1C  is a diagram illustrating an example of an ideal signal and a signal with an offset and MRA. 
         FIG. 1D  is a diagram illustrating an example of some thresholds that may be set. 
         FIG. 2  is a block diagram illustrating an embodiment of a system for removing errors due to MRA, gain, and offset from a signal. 
         FIG. 3  is a diagram illustrating an example of offset and MRA loop trajectories obtained in some embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer program product such as a computer readable storage medium comprising computer instructions, or a computer network wherein program instructions are sent over optical or communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. 
     A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. 
       FIG. 1A  is a diagram illustrating an example of an ideal signal and a signal with an offset. In the example shown, the signals are read signals associated with magnetic disk storage. Signal  102  is an ideal signal. In some embodiments, values are stored magnetically as 0&#39;s or 1&#39;s on the recording media and are read back. Signal  104  corresponds to ideal signal  102  but includes an offset. As shown in this example, the offset shifts the entire ideal signal up (or down) by some constant (e.g., a DC voltage). 
     Signal  104  may be modeled using the following equation:
 
 y=x+o+n  
 
     where x is ideal signal  102 , o is the offset, n is the noise, and y is signal  104 . 
     Offset is a particular problem in perpendicular recording because perpendicular recording signals tend to have low frequency noise due to effects such as baseline wander. Offset is also a problem when using a tunneling magnetoresistive (TMR) head, which exhibit noise whose power is inversely proportional with frequency, so at lower frequencies (e.g., closer to DC or an offset), the noise power is higher. Low frequency noise may be considered to be a time-varying offset. 
       FIG. 1B  is a diagram illustrating an example of an ideal signal and a signal with MRA. In the example shown, the signals are read signals associated with magnetic disk storage. Signal  102  is an ideal signal. Signal  106  corresponds to ideal signal  102  but includes MRA. As shown in this example, MRA affects the signal y more at higher or larger magnitudes (i.e., |y|) than at lower magnitudes. In this example, signal  106  appears asymmetric (goes more positive than negative). In perpendicular recording, the signal |y| spends little or no time at or near 0, so MRA can cause nonlinearities in the signal in perpendicular recording. 
     Signal  106  may be modeled using the following equation:
 
 y=x+ax   2   +n  
 
     where x is ideal signal  102 , a is the MRA coefficient (ax 2  is an estimate of the MRA), n is the noise, and y is signal  106 . 
       FIG. 1C  is a diagram illustrating an example of an ideal signal and a signal with an offset and MRA. In the example shown, the signals are read signals associated with magnetic disk storage. Signal  102  is an ideal signal. Signal  108  corresponds to ideal signal  102  but includes both offset and MRA. 
     Signal  108  may be modeled using the following equation:
 
 y=x+ax   2   +o+n  
 
     where x is ideal signal  102 , a is the MRA coefficient (ax 2  is an estimate of the MRA), o is the offset, n is the noise, and y is signal  108 . 
     When |y| is small, MRA is small and the offset dominates in the signal y. When |y| is larger, both MRA and offset are present in the signal y. 
     Feedback loops may be used to compensate for defects in the system. Feedback loops compute an estimated error due to the defect and then change an appropriate circuit to compensate for the estimated error. 
     An offset (feedback) loop is used to compensate for offset in the system. An MRA (feedback) loop is used to compensate for MRA in the system. An estimated offset error e o  is used to update the offset loop, and an estimated MRA error e m  is used to update the MRA loop. An estimate of the signal error e can be made, but it is not clear how much of the estimated error e is due to offset and how much of it is due to MRA. However, some assumptions can be made based on the fact that the error due to MRA is dominant at higher signal levels (|y|&gt;threshold 1 ) and is smaller at lower signal levels (|y|&lt;threshold 2 ). 
     The estimated signal error may be modeled using the following equation:
 
 e ( i )= ax   2   +o+n  
 
     where e is the error component of y. 
     In the offset loop, the following update equation is used:
 
 o=o+K   o   e   o  
 
     where e o =0 when |y(i)|&gt;threshold 1  and e o =e(i) when |y(i)|&lt;threshold 2 . 
     where o is the offset compensation signal, K o  is the loop gain, e o  is the estimated offset error, y(i) is the signal at time i and e(i) is an estimate of the signal error at time i. e o  is set to 0 when |y(i)| is above threshold 1  because at higher values of |y(i)|, the error is due to both MRA and offset, and it is not clear how much is from offset. To avoid feeding back error due to MRA into the offset loop, e o  is set to 0 at this time. e o  is set to e(i) when |y(i)|&lt;threshold 2  because at lower values of |y(i)|, the error is dominated by the effect of offset and there is little or no contribution from MRA. Therefore, the offset loop update equation can be updated at this time. Thus, the offset loop is only updated when the signal y is less than a threshold (to decouple the offset loop from the MRA loop). 
     In a typical MRA loop, the following update equation is used:
 
 mra=mra+K   m   e   m  
 
     where e m  is set to 0 when |y(i)|&lt;threshold and 
     e m =e(i) when |y(i)|&gt;threshold. 
     where mra is the MRA compensation signal, K m  is the loop gain, e m  is the estimated MRA error. y(i) is the signal at time i and e(i) is an estimate of the signal error at time i. e m  is set to 0 when |y(i)| is below threshold because for lower values of |y(i)|, the effect of MRA is minimal and the effect of offset is dominant. Therefore, the MRA equation is not updated at this time. When |y(i)| is above threshold, both offset and MRA contribute to error. However, typical MRA loops are updated at this time. As a result, typical MRA loops are still coupled to the offset loop. If the signal contains an offset, then the error will also contain a DC offset, causing the loop to saturate. In a typical MRA loop, care must be taken to tune the bandwidth of the MRA loop to be sufficiently slower (i.e., lower bandwidth) than the bandwidth of the offset loop so that the loops will settle rather than fight each other. As such, the loop gains K o  and K m , and the threshold(s), which affect the bandwidth, need to be carefully tuned to ensure that the loops settle. Increasing the loop gain increases the speed of the loop. 
     It would be desirable to better decouple the offset loop from the MRA loop, particularly if there is offset in the signal y and/or when y contains MRA effects, such as in perpendicular recording. 
     In order to better decouple the offset loop from the MRA loop, in some embodiments, the MRA loop uses the following update equation:
 
 mra=mra+K   m   e   m  
 
     where e m  is set to 0 when |y(i)|&lt;threshold 2  and 
     e m =e(i)−e(j) when |y(i)|&gt;threshold 1 . 
     where mra is the MRA compensation signal, K m  is the loop gain, e m  is the estimated MRA error, y(i) is the signal at time i, and e(i) is an estimate of the signal error at time i. In some embodiments, e(j) is an estimate of the offset error. In some embodiments, j is the time at which the offset loop was last updated. In this case, e(j) is the most recently determined estimated offset error prior to the determination of the estimated signal error. In some embodiments, j is any time at which the offset loop was previously updated. In this case, e(j) is any previously determined estimated offset error. 
     Because the offset loop is only updated when the signal y is less than a threshold (to decouple the offset loop from the MRA loop), e(j) is approximately equal to offset+noise (o+n), so when |y(i)|&gt;threshold 1 , subtracting e(j) from e(i) removes the offset and noise, leaving an estimate of substantially the MRA error. In other words:
 
 e ( i )− e ( j )=( ax   2   +o+n )−( o+n )= ax   2  
 
     Although the noise terms may not actually be the same, they may be averaged in a filter (as more fully described below) so that they are approximately the same and cancel each other out in the above equation. 
     In some embodiments, a threshold is not used for the MRA loop. In other words, mra=mra+K m (e(i)−e(j)). This may work because e(i)−e(j) when y is low is small or close to zero so it does not substantially affect the update. 
     Although two thresholds are shown in the examples herein, in other embodiments one threshold may be used (i.e., threshold 1 =threshold 2 ). Having one threshold may speed up the loops and/or permit more samples to be used (e.g., instead of discarding information greater than threshold 1  but less than threshold 2 ). In other embodiments, any number of thresholds may be used. For example, there may be different thresholds used for the offset loop and for the MRA loop. In some embodiments, the thresholds overlap (i.e., threshold 1 &gt;threshold 2 ). 
     This technique is not as sensitive to the bandwidth of the loop, and therefore the threshold(s) and loop gains do not have to be as carefully tuned or tuned at all. 
       FIG. 1D  is a diagram illustrating an example of some thresholds that may be set. In this example, an example of a received signal y is shown along with the regions formed by the threshold values. In some embodiments, thresholds Th 1 , Th 2 , |Th 3 |, and |Th 4 | are the same, i.e., Th 1 =Th 2 =|Th 3 |=|Th 4 |. In some embodiments, Th 1 =|Th 4 | and Th 2 =|Th 3 |. For each region, the values of e o  and e m  are shown, as defined above. 
       FIG. 2  is a block diagram illustrating an embodiment of a system for removing errors due to MRA, gain, and offset from a signal. In this example, system  200  is shown to include adder  202 , variable gain amplifier (VGA)  204 , MRA corrector  206 , continuous time filter (CTF)  208 , A/D converter  210 , finite impulse response (FIR) filter  212 , detector  214 , error generator  216 , multipliers (scalers)  224 ,  230 , and  236 , loop filters (LF)  220 ,  228 , and  234 , and D/A converters (DAC)  218 ,  226 , and  232 . LFs  220 ,  228 , and  234  perform averaging and may comprise an integrator. A signal y is received from a read channel, such as a perpendicular recording channel. An offset correction voltage v o  (e.g., corresponding to o above) is added to signal y via adder  202 . The output of adder  202  is input to VGA  204  whose gain is adjustable based on VGA input v g , which is a gain correction. The output of VGA  204  is input to MRA corrector  206 , which removes MRA from the signal based on MRA corrector input v m  (mra above). The output of MRA corrector  206  is input to CTF  208 , whose output is input to A/D  210 , whose output is input to FIR  212  and error generator  216 . The output of FIR  212  is input to detector  214 , which outputs â, an estimate of y. Both the output of A/D  210  and â are input to error generator  216 . In various embodiments, detector  214  is a decision feedback equalizer (DFE), Viterbi decoder, or other detector. 
     Error generator  216  is used to determine and output e m , e g , and e o . Error generator  216  performs the threshold comparisons to output the appropriate values of e m  and e o  as defined above. Three feedback loops are shown: an MRA loop, a gain loop, and an offset loop. 
     The MRA loop includes multiplier  224 , LF  220 , DAC  218 , and MRA  206 . e m  is scaled by multiplier  224  by K m , and input to LF  220 , which performs averaging. The output of LF  220  is input to DAC  218 , whose output v m  is fed back to MRA corrector  206 . K m  is the loop gain; adjusting K m  adjusts the bandwidth of the MRA loop. The threshold(s) used in error generator  216  to determine the value of e m  also affects the bandwidth of the loop. MRA corrector  206  uses v m  to remove MRA error from signal y. In some embodiments, MRA corrector  206  performs the function Y=X+KX 2  where X is the input to MRA corrector  206 , K is v m , and Y is the output of MRA corrector  206 . In some embodiments, the KX 2  term substantially cancels out the MRA in X. 
     The gain loop includes multiplier  230 , LF  228 , DAC  226 , and VGA  204 . e g  is scaled by multiplier  230  by K g , and input to LF  228 , which performs averaging. The output of LF  228  is input to DAC  226 , whose output v g  is fed back to VGA  204 . In some embodiments, e g =sign(y)·e(i). VGA  204  uses v g  to remove the gain error from the signal y. K g  is the loop gain; adjusting K g  adjusts the bandwidth of the gain loop. 
     The offset loop includes multiplier  236 , LF  234 , DAC  232 , and adder  202 . e o  is scaled by multiplier  236  by K o , and input to LF  234 , which performs averaging. The output of LF  234  is input to DAC  232 , whose output v o  is fed back to adder  202 . Adder  202  uses v o  to remove offset error from signal y. K o  is the loop gain; adjusting K o  adjusts the bandwidth of the offset loop. The threshold(s) used in error generator  216  to determine the value of e o  also affects the bandwidth of the loop. 
       FIG. 3  is a diagram illustrating an example of offset and MRA loop trajectories obtained in some embodiments. In this example, both the offset and the MRA compensation signal are scaled to fit on the same plot. The x-axis is time and the y-axis is the offset o and MRA compensation signal m. The initial offset is located at the origin, and the correct offset and the initial and final MRA compensation signals are located at the same position on the y-axis. 
     The plots for the traditional offset loop and the traditional MRA loop result when the following MRA update equation is used:
 
 mra=mra+K   m   e   m  
 
     where e m  is set to 0 when |y(i)|&lt;threshold 2  and e m =e(i) when |y(i)|&gt;threshold 1 . 
     The plots for the offset loop with modified MRA loop and modified MRA loop result when the following MRA update equation is used:
 
 mra=mra+K   m   e   m  
 
     where e m  is set to 0 when |y(i)|&lt;threshold 2  and e m =e(i)−e(j) when |y(i)|&gt;threshold 1 . 
     As shown, the trajectory for the offset loop with modified MRA loop takes about 4000 time units (e.g., clock cycles) to reach the correct offset, whereas the trajectory for the traditional offset loop takes about 8000 time units to reach the correct offset. 
     Similarly, the trajectory for the modified MRA loop takes about does not move from the correct MRA compensation value, whereas the trajectory for the traditional MRA loop jumps up and then settles back to the correct MRA compensation value after about 6000 time units. 
     Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.