Abstract:
Detecting a defect on a storage device is disclosed. Detecting includes receiving a signal read from a storage device, sampling the signal to obtain a set of signal samples, wherein the sampling starts at an arbitrary time, computing a defect value for a defect type using the set of signal samples, comparing the defect value with a threshold associated with the defect type, determining whether there is a defect of the defect type based at least in part on the comparison, and in the event that a defect is detected, outputting an indication associated with the defect.

Description:
CROSS REFERENCE TO OTHER APPLICATIONS 
       [0001]    This application is a continuation of co-pending U.S. patent application Ser. No. 11/999,505 (Attorney Docket No. LINKP019), entitled STORAGE MEDIA DEFECT DETECTION filed Dec. 5, 2007 which is incorporated herein by reference for all purposes. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    Storage media, including magnetic media such as hard disk drives, include defects that result from manufacturing (e.g., present in a brand new or virgin disk drive) and/or from the environment or usage over time. At a defect location, data cannot be reliably written to the media. For example, when reading data at a defect location, an overly strong signal (e.g., that saturates a circuit), a weak signal, or no signal at all may be read. Defect scanners are used to create a map of defect locations so that these locations are not written to or read from. Typically, a defect scan is performed on a new disk drive and a map is obtained in this way. 
         [0003]    Current defect scanning techniques are inefficient. Typical defect maps have limited resolution and can only indicate defect locations down to the sector level. In other words, typical defect scanners are only able to determine in which sector a defect is located. Even though a defect region may be much smaller than a sector, the entire sector is unused, which is inefficient. In addition, typical defect scanners require peak samples (e.g., a local maximum) as input. This means that the signal timing must first be acquired (i.e., so that the location of the peaks is known), which requires a timing loop and takes additional time. In addition, defects that occur before the timing is acquired (e.g., in a preamble or beginning portion) are not detected. As such, improved defect detection techniques would be useful. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]    Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
           [0005]      FIG. 1  is a block diagram illustrating an embodiment of a system for detecting media defects. 
           [0006]      FIG. 2A  is a diagram illustrating an example of a read-back waveform and peak samples. 
           [0007]      FIG. 2B  is a diagram illustrating an example of a read-back waveform and samples with an arbitrary phase offset. 
           [0008]      FIG. 3  is a flow chart illustrating an embodiment of a process for detecting a defect associated with amplitude. 
           [0009]      FIG. 4  is a flow chart illustrating an embodiment of a process for detecting a defect associated with a DC component. 
           [0010]      FIG. 5  is a flow chart illustrating an embodiment of a process for detecting a defect associated with phase. 
           [0011]      FIG. 6  is an example of a plot of accumulated phase versus phase chunks. 
           [0012]      FIG. 7  is a flow chart illustrating an embodiment of a process for fine tuning N for a defect detection system. 
       
    
    
     DETAILED DESCRIPTION 
       [0013]    The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium 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. 
         [0014]    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. 
         [0015]      FIG. 1  is a block diagram illustrating an embodiment of a system for detecting media defects. Examples of media include storage media, such as magnetic media and hard disk drives. There are a number of different types of defects, including the following: 
         [0016]    (1) Drop in/drop out defects are associated with an amplitude boost or loss defects of greater than approximately 5% or more compared to a normal or ideal signal. 
         [0017]    (2) Shallow defects are associated with an amplitude boost or loss of approximately 5% or less compared to a normal or ideal signal. 
         [0018]    (3) Thermal asperity (TA) defects are associated with a sudden DC (direct current) jump or offset. 
         [0019]    (4) Timing defects are associated with a sudden phase jump in a signal. This includes changes in frequency, such as a pulse becoming narrower or wider. 
         [0020]    In the example shown, system  100  is shown to include computation block  102 , accumulators  104 , and detector  106 . ADC (analog to digital converter) samples are read from a storage device and provided as input to computation block  102 . Computation block  102  computes an amplitude, a DC component, and/or a phase using the ADC samples. In various embodiments, the same or a different number of samples are used to compute the amplitude, the DC component, and/or the phase. In some embodiments, 4 samples are used to compute the amplitude, the DC component, and the phase. The amplitude, the DC component, and/or the phase are output from computation block  102  and provided as input to accumulators  104 . 
         [0021]    Accumulators  104  (which may include one or more accumulators) are used to compute a moving average of the amplitude, the DC component, and the phase over N A , N D , and N P  samples, respectively. (N A , N D , and N P  are the “N&#39;s” referred to in  FIG. 1 .) In this example, accumulators  104  output an accumulated amplitude, an accumulated DC component, and an accumulated phase, which are provided as input to detector  106 . Detector  106  uses the accumulated amplitude, the accumulated DC component, and the accumulated phase and thresholds T A , T D , and T P , respectively, to detect the various types of defects. Accumulators  104  are optional and in some embodiments, one of more of the amplitude, the DC component and the phase are not averaged. 
         [0022]    In some embodiments, detector  106  compares a defect value with a threshold to determine whether a defect is present. In some embodiments, the defect values and/or thresholds are different for different defect types. For example, for a thermal asperity defect, the defect value is the accumulated DC component |D acc | and the threshold is T D . If |D acc |&gt;T D , then a thermal asperity defect is detected. More detailed examples are described below. 
         [0023]    The outputs of detector  106  are defect flags corresponding to the locations of the defects. In some embodiments, the defect flags are stored in a defect map that is used by the hard disk controller (HDC) so it knows not to read or write to the defect locations. 
         [0024]    Using the techniques described herein, defects associated with any of the defect types can be detected all in one shot, or simultaneously (i.e., in parallel) as opposed to sequentially (i.e., one at a time). Simultaneous detection is faster than sequential detection. In addition, the thresholds and/or defect scan resolutions (associated with N) for each defect type are programmable inputs. In some embodiment, system  100  is implemented entirely in digital circuitry and analog circuitry is not used. 
         [0025]      FIG. 2A  is a diagram illustrating an example of a read-back waveform and peak samples. A read-back waveform is a signal read-back from a storage device, such as a hard disk drive. In the example shown, diagram  200  shows read-back waveform  202 , circled peak ADC samples at x 2 , x 4 , x 6 , etc, and circled zero-crossing samples at x 1 , x 3 , x 5 , etc. A pattern of “1100” is repeatedly written to a hard disk in order to obtain read-back waveform  202 . In some embodiments, some other (e.g., repeated) pattern is used. The ideal amplitude of read-back waveform  202  is 16, as indicated in  FIG. 2A . An example of a drop in/drop out defect is shown between x 9  and x 17 . In this case, the amplitude loss is 50% (a drop in amplitude from 16 to 8). 
         [0026]    In some other defect scanners, the samples used to detect the defect area shown are required to be peak samples as shown at x 2 , x 4 , x 6 , etc. As used herein, “peak samples” are samples that coincide with the peaks of the signal. Peak sampling corresponds to a sampling phase offset equal to zero. This means that before a defect can even be detected, timing acquisition (which uses a timing loop) needs to be performed in order to determine the location of the peaks and be able to sample at the peaks. Defects that occur or coincide with the portions of a read back waveform used to perform timing acquisition are not detected. For example, timing acquisition may be performed between x 1  and x 12 , in which case the portion of the defect area between x 9  and x 12  would not be detected. Also, by using peak samples x 2 , x 4 , x 6 , etc. only, and skipping zero-crossing samples such as x 1 , x 3 , x 5 , etc., the detection is more vulnerable to noise than fully using all samples x 1 , x 2 , x 3 , x 4 , etc. Thus, it would be desirable to have a defect detection technique that does not require timing acquisition to first be performed and/or does not require use of a timing loop for defect detection. Such techniques are disclosed herein. 
         [0027]      FIG. 2B  is a diagram illustrating an example of a read-back waveform and samples with an arbitrary phase offset. Sampling with an arbitrary phase offset means that the sampling starts at an arbitrary time, and not necessarily at zero phase offset, which corresponds to peak sampling. Any appropriate phase offset may be used in various embodiments. In the example shown, diagram  204  shows read-back waveform  202  and circled ADC samples at y 1 , y 2 , y 3 , y 4 , y 5 , y 6 , etc. A pattern of “1100” is repeatedly written to a hard disk in order to obtain read-back waveform  202 . A drop in/drop out defect area is shown between y 8  and y 17 . Using the defect detection techniques described herein, sampling may start at an arbitrary time and samples y 1 , y 2 , y 3 , y 4 , y 5 , y 6 , etc. are not required to be peak samples. This means that a defect can be detected starting with the first sample y 1 . In other words, a defect can be detected immediately after the start of sampling. The defect detection techniques described herein do not require timing acquisition to first be performed nor do they require use of a timing loop. 
         [0028]      FIG. 3  is a flow chart illustrating an embodiment of a process for detecting a defect associated with amplitude. Examples of defects associated with amplitude include drop in/drop out defects and shallow defects. 
         [0029]    The process may be implemented by system  100 . At  302 , ADC samples are received. For example, computation block  102  receives ADC samples. If a pattern of “1100” is written to the hard disk drive (i.e., so that the read-back waveform is a sine wave), and y 1 -y 4  are four ADC samples of the read-back waveform, then: 
         [0000]        y 1 =A  sin(θ)
 
         [0000]        y 2 =A  cos(θ)
 
         [0000]        y 3 =−A  sin(θ)
 
         [0000]        y 4 =−A  cos(θ)
 
         [0030]    where A is the amplitude. 
         [0031]    At  303 , an amplitude is computed. For example, computation block  102  computes an amplitude. If the sampled signal is a sine wave, the amplitude may be computed as follows: 
         [0000]        A =(( y 1- y 3) 2 +( y 2- y 4) 2 ) 1/2    
         [0032]    where A is the amplitude. In some embodiments, a look up table is used for this computation. In various embodiments, various equations may be used to compute the amplitude. 
         [0033]    At  304 , amplitudes A i  are accumulated or averaged to remove white noise or AWGN (additive white Gaussian noise) effects. For example, accumulators  104  may accumulate the amplitudes. In some embodiments, amplitudes are accumulated as follows: 
         [0000]        A   acc =(Σ A   i )/(¼  N   A )
 
         [0034]    where: 
         [0035]    A acc  is the accumulated amplitude 
         [0036]    Σ is a summation from i=1 to ¼ N A    
         [0037]    A i  is the i th  amplitude 
         [0038]    N A  is the number of samples over which to average 
         [0039]    If A is computed using 4 samples y 1 -y 4 , then A i  can be computed in a variety of ways. For example: 
         [0000]        A   1 =(( y 1- y 3) 2 +( y 2- y 4) 2 ) 1/2    
         [0000]        A   2 =(( y 5- y 6) 2 +( y 7- y 8) 2 ) 1/2    
         [0000]        A   3 =(( y 9- y 10) 2 +( y 11- y 12) 2 ) 1/2    
         [0040]    etc. 
         [0041]    In this example, every 4 samples, one amplitude A i  is computed. Therefore, in this example, Σ is a summation from i=1 to ¼ N A . 
         [0042]    Any similar or equivalent technique for removing white noise or AWGN effects may be used. For example, just ΣA i  may be taken and N A  accounted for later. 
         [0043]    At  306 , it is determined whether the accumulated amplitude is above or below the ideal amplitude by more than a threshold. In other words, it is determined whether: 
         [0000]    
       
      
       A 
       acc 
       &gt;A 
       ideal 
       +T 
       A  
      
     
         [0000]      or 
         [0000]    
       
      
       A 
       acc 
       &lt;A 
       idea 
       −T 
       A  
      
     
         [0044]    where 
         [0045]    A ideal  is the ideal amplitude 
         [0046]    T A  is a threshold 
         [0047]    There are two types of amplitude defects: 
         [0048]    (1) Drop in/drop out defects are associated with an amplitude boost or loss defects of greater than approximately 5% compared to a normal or ideal signal. 
         [0049]    (2) Shallow defects are associated with an amplitude boost or loss of approximately 5% or less compared to a normal or ideal signal. 
         [0050]    For drop in/drop out defects, T A =5% of A ideal  In various embodiments, other percentages besides 5% may be used to compute the amplitude. For example, to detect amplitude defects of 20%, T A =20% of A ideal  may be used. 
         [0051]    In some cases, multiple thresholds can be set during amplitude defect detection. In such cases, the output of detector  106  indicates the range of percentages associated with the amplitude defect at a fine amplitude resolution (different from the defect location resolution), where the fine amplitude resolution is associated with N A . For example: T A1 =5% of A ideal  , T A2 =10% Of A ideal  , T A3 =15% of A ideal , etc. If A acc &gt;A ideal +T A1  but A acc &lt;A ideal +T A2  , the output of detector  106  indicates that the amplitude defect is between 5% to 10%. 
         [0052]    For shallow defects, T A =P shallow % Of A ideal    
         [0053]    where P shallow &lt;5% 
         [0054]    In some embodiments, N A  is different for the two types of amplitude defects. N A  for shallow defects may be larger because more white noise needs to be removed in order to detect smaller amplitude defects. 
         [0055]    If at  306 , it is determined that the accumulated amplitude is above or below the ideal amplitude by more than a threshold, then a defect is detected at  308 . For example, defect detector  106  may perform this determination. The defect location is associated with the samples used to compute the accumulated amplitude. Therefore, the defect resolution (i.e., the resolution of the defect location) is N A . In some embodiments, information about the defect, such as the location of the defect in media, is recorded or written (e.g., to a defect map). 
         [0056]    The process returns to  302  and the next set of ADC samples is analyzed. 
         [0057]    As previously described with respect to  FIG. 1 , a defect value is compared with a threshold to determine whether there is a defect. In this example, the defect value is the accumulated amplitude A acc  and the threshold is T A . 
         [0058]      FIG. 4  is a flow chart illustrating an embodiment of a process for detecting a defect associated with a DC component. Examples of defects associated with a DC component include thermal asperity (TA) defects. 
         [0059]    The process may be implemented by system  100 . At  402 , ADC samples are received. For example, computation block  102  receives ADC samples. For example, y 1 -y 4  are four ADC samples of the read-back waveform when a pattern of “1100” is written to the hard disk drive (i.e., so that the read-back waveform is a sine wave), as previously described. 
         [0060]    At  403 , a DC component is computed. For example, computation block  102  computes a DC component. If the sampled signal is a sine wave, the DC component may be computed as follows: 
         [0000]        D=y 1 +y 2 +y 3 +y 4 
         [0061]    where D is the DC component. In various embodiments, various equations may be used to compute the DC component. 
         [0062]    At  404 , DC components D i  are accumulated or averaged to remove white noise or AWGN effects. For example, accumulators  104  may accumulate the DC components. In some embodiments, DC components are accumulated as follows: 
         [0000]        D   acc =(Σ D   i )/(¼  N   D )
 
         [0063]    where: 
         [0064]    D acc  is the accumulated DC component 
         [0065]    Σ is a summation from i=1 to ¼ N D    
         [0066]    D i  is the i th  DC component 
         [0067]    N D  is the number of samples over which to average 
         [0068]    Any similar or equivalent technique for removing white noise or AWGN effects may be used, some examples of which were described above. 
         [0069]    At  406 , it is determined whether the magnitude of the accumulated DC component is above a threshold. In other words, it is determined whether: 
         [0070]    |D acc |&gt;T D    
         [0071]    where T D  is a threshold 
         [0072]    If at  406 , it is determined that the accumulated DC component is above a threshold, then a defect is detected at  408 . For example, defect detector  106  may perform this determination. The defect location is associated with the samples used to compute the accumulated DC component. Therefore, the defect resolution is N D . In some embodiments, the location of the defect or other information associated with the defect is written or stored. 
         [0073]    The process returns to  402  and the next set of ADC samples is analyzed. 
         [0074]    As previously described with respect to  FIG. 1 , a defect value is compared with a threshold to determine whether there is a defect. In this example, the defect value is the magnitude of the accumulated DC component |D acc | and the threshold is T D . 
         [0075]      FIG. 5  is a flow chart illustrating an embodiment of a process for detecting a defect associated with phase. Examples of defects associated with phase include timing defects. 
         [0076]    The process may be implemented by system  100 . At  502 , ADC samples are received. For example, computation block  102  receives ADC samples. For example, y 1 -y 4  are four ADC samples of the read-back waveform when a pattern of “1100” is written to the hard disk drive (i.e., so that the read-back waveform is a sine wave), as previously described. 
         [0077]    At  503 , a phase is computed. For example, computation block  102  computes a phase. If the sampled signal is a sine wave, the phase component may be computed as follows: 
         [0000]        P =arc tan(( y 1- y 3)/( y 2- y 4)) 
         [0078]    where P is the phase. In various embodiments, various equations may be used to compute the phase. 
         [0079]    In some embodiments, a look up table is used for this computation. In some embodiments, if there is a frequency offset, the phase is unwrapped to maintain a linear plot of phase versus sample number, as describe more fully below. 
         [0080]    At  504 , phases P i  are accumulated or averaged to remove white noise or AWGN effects. For example, accumulators  104  may accumulate the phases. In some embodiments, phases are accumulated as follows: 
         [0000]        P   acc =(ρ P   i )/(¼  N   P )
 
         [0081]    where: 
         [0082]    P acc  is the accumulated phase 
         [0083]    Σ is a summation from i=1 to ¼ N P    
         [0084]    P i  is the i th  phase 
         [0085]    N P  is the number of samples over which to average 
         [0086]    Any similar or equivalent technique for removing white noise or AWGN effects may be used, some examples of which were described above. 
         [0087]    At  505 , a current accumulated phase is set equal to the accumulated phase. In other words: 
         [0000]      P curr     —     acc =P acc    
         [0088]    where P curr     —     acc  is the current accumulated phase 
         [0089]    At  506 , it is determined whether the difference between the current accumulated phase and the previous accumulated phase is above a threshold. In other words, it is determined whether: 
         [0000]      ΔP acc &gt;T P  
 
         [0000]      where 
         [0000]      Δ P   acc   =|P   curr     —     acc   −P   prev     —     acc |
 
         [0090]    T P  is a threshold 
         [0091]    If  506  is being performed for the first time (i.e., this is the first iteration), then the comparison of ΔP acc &gt;T P  is skipped and the process proceeds to  507 , which is described below. 
         [0092]    If at  506 , it is determined that the difference is above a threshold, then a defect is detected at  508 . For example, defect detector  106  may perform this determination. The defect location is associated with the samples used to compute the difference. Therefore, the defect resolution is N P . 
         [0093]    At  507 , the previous accumulated phase is set equal to the current accumulated phase. In other words: 
         [0000]      P prev     —     acc ←P curr     —     acc  
 
         [0094]    where P prev     —     acc  is the previous accumulated phase 
         [0095]    The process returns to  502  and the next set of ADC samples is analyzed. 
         [0096]    As previously described with respect to  FIG. 1 , a defect value is compared with a threshold to determine whether there is a defect. In this example, the defect value is the difference between the current and previous accumulated phases ΔP acc  and the threshold is T P . 
         [0097]      FIG. 6  is an example of a plot of accumulated phase versus phase chunks. In this example, plot  600  shows unwrapped phase on the y-axis and chunk number on the x-axis. Each point is an accumulated phase over N P  samples. Each chunk is N P  samples. In other words, ΔP acc =|P curr     —     acc −P prev     —     acc | is the vertical between two consecutive points in plot  600 . As shown, the difference between any two consecutive points suddenly drops at or about chunk  602  and suddenly jumps at or about chunk  604 . The drop and jump are greater than the threshold T P  and therefore a timing defect is detected between and/or at chunks  602  and  604 . 
         [0098]    Each chunk corresponds to N P  samples, where N P =40 in this example. (T is the period between samples.) The slope of the line is the frequency offset. If there is no frequency offset, the slope would be 0 (i.e., the line would be horizontal). In some embodiments, if there is a frequency offset, a phase unwrap circuit is used to unwrap the phase to make the plot linear. 
         [0099]      FIG. 7  is a flow chart illustrating an embodiment of a process for fine tuning N for a defect detection system, such as system  100 . N is the number of samples over which an average is performed. This process may be used to fine tune N A , N D , or N P , for example. In this example, the goal is to obtain the minimum N that is required in order to detect a certain percentage (e.g., 100%) of the defects. The larger N, the greater the number of samples, and the more accurate the detection. The smaller N, the fewer the number of samples, and the higher the resolution of the location of the defects. If 4 samples are used to compute a defect value, then N is a multiple of 4. 
         [0100]    At  702 , an initial N is selected. In some embodiments, the initial N is 1, which corresponds to no accumulation or averaging. At  703 , a signal with known defects is received and sampled. In some embodiments, an artificial signal is constructed by starting with an ideal signal and adding defects and AWGN. For example, to determine N A  for detecting drop in/drop out defects, artificial (known) amplitude boosts and/or losses of 5% or more are added to the signal. In some embodiments, the artificial signal is pre-sampled and the artificial samples are received. 
         [0101]    At  704 , defects are detected according to the process of  FIG. 3 ,  4 , or  5 , depending on which of N A , N D , or N P , respectively, is being fine tuned. For example, in system  100 , the artificial samples are provided as input to computation block  102  and detected defects are obtained at the output of detector  106 . 
         [0102]    At  706 , it is determined whether all known defects were detected. For example, the output of detector  106  is compared with the known defects. If all defects were not detected, N is adjusted at  708 . For example, N is incremented by  1 . The process returns to  704 . If all defects were detected, then that N is output at  710 . The N that is output is the minimum N such that all defects are detected. 
         [0103]    In some embodiments, it is acceptable to have some percentage other than 100% of defects detected, e.g., 99.999%. In such embodiments, at  706 , it is determined whether that percentage (e.g., 99.999%) of the known defects were detected. 
         [0104]    In some embodiments, the process of  FIG. 7  is performed for a variety of defect types and thresholds and tables of the minimum N to obtain 100% defect detection for different combinations of defect types and thresholds can be constructed. 
         [0105]    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.