In certain embodiments, a method includes determining an error after attempting to read, via a first read transducer and a second read transducer, a data sector in a first data track. The method further includes calculating a weight ratio associated with the data sector and determining a read offset direction of the data sector based, at least in part, on the calculated weight ratio.
In certain embodiments, a hard disk drive includes a magnetic recording medium comprising data sectors along a data track, a read/write head including a first read transducer and a second read transducer, and an integrated circuit with circuitry. The circuitry is programmed to: calculate a weight ratio that is (1) associated with a first data sector and (2) based on signals generated by the first read transducer and second read transducer, and cause adjustment of a position of the read/write head based, at least in part, on the calculated weight ratio.
In certain embodiments, a system-on-a-chip (SOC) includes a read/write channel and a servo controller. The read/write channel is configured to: calculate a weight ratio for each data sector of a data track, detect an error in reading a first data sector of the data sectors, calculate an average weight ratio for the data track, and compare the calculated average weight ratio to the calculated weight ratio associated with the first data sector. The servo controller is configured to cause adjustment of a position of a read/write head in response to the comparison.
While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative embodiments of the invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
While the disclosure is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the disclosure to the particular embodiments described but instead is intended to cover all modifications, equivalents, and alternatives falling within the scope of the appended claims.
When a hard disk drive is initially unable to successfully read data from data sectors on a magnetic recording medium, the hard disk drive identifies the error and tries to read the missed data sectors again. This process of identifying the error and re-reading the missed data sectors is sometimes called error recovery. Re-reading the missed data sectors can be challenging because one common cause for missing data sectors is that the missed data sectors may be misaligned or offset from the center of the data track. As such, following the same path along the center of the data track may result in missing the same data sectors again. Certain embodiments of the present disclosure are accordingly directed to methods and devices for error recovery.
The read/write heads 104A and 1046 can each comprise a slider with one or more read transducers (e.g., readers, read head) and one or more write transducers (e.g., writers, write head). In the embodiments described in more detail below, each read/write head includes two read transducers.
The data storage device 100 includes an interface 108 (e.g., an input/output interface) for transferring data to and from the data storage device 100. For example, the interface 108, among other features, can be communicatively coupled between a host 10 (e.g., a laptop, a personal computer, or a data storage system such as a server) and the read/write heads 104A and 104B to facilitate communication, using a standardized communication protocol (e.g., SATA, SAS, SCSI), between the read/write heads 104A and 1046 and the host 10.
The data storage device 100 can include a system on a chip (“SOC”) 110 (shown in dashed lines) that includes a system controller 112, which can include a controller processor 114 (e.g., a microprocessor), a servo processor 116 (e.g., a microprocessor), and memory 118 coupled to the controller processor 114 and the servo processor 116. The SOC 110 can include multiple distinct banks of memory. For example, one bank of memory 118 can be dedicated to the controller processor 114 and its functions while another bank of memory 118 can be dedicated to the servo processor 116 and its functions (e.g., the memory 118 and the servo processor 116 together functioning as a servo controller 126). The interface 108 may also be part of the SOC 110.
The SOC 110 can also include one or more read/write channels 120A and 120B, which encode and decode data associated with write commands and with read commands. The SOC 110 may be an integrated circuit such as an application-specific integrated circuit (“ASIC”) and field-programmable gate array (“FPGA”) that includes instructions (e.g., in the form of firmware) for carrying out various functions of the data storage device 100. For example, the SOC 110 can include circuitry to control and carry out various aspects of the data storage device 100 as described in more detail below. Although the interface 108, system controller 112, etc., are shown as being part of a single SOC, the components and their functions can be distributed among several integrated circuits. The system controller 112 can be coupled to and control access to a buffer 122, which can temporarily store data associated with read commands and write commands. The buffer 122 can be a volatile memory, such as a dynamic random access memory (“DRAM”), static random access memory (“SRAM”), or other volatile memory.
During operation, the data storage device 100 receives various data transfer commands (e.g., a read command or a write command) from the host 10. Data associated with a write command may be received from the host 10 by the interface 108 and initially stored to the buffer 122. The data is encoded or otherwise processed by respective read/write channels 120A or 120B and eventually stored to the magnetic recording media 106 via one of the read/write heads 104A or 1046 coupled to the respective first actuator 102A or the second actuator 102B. Data associated with a read command may be retrieved from the magnetic recording media 106, processed by one of the read/write channels 120A or 120B, and stored in the buffer 122. Such data is then transferred to the host 10 by the interface 108. In certain embodiments, the servo processor 116 controls operations of respective pre-amplifiers 124A and 124B, which provide signals to the respective read/write heads 104A and 104B for writing magnetic transitions to the magnetic recording media 106 and for receiving signals from the respective read/write heads 104A and 104B in response to detecting magnetic transitions written to the magnetic recording media 106.
The data storage device 100 includes a servo controller 126 (schematically shown in more detail in
The actual position 128 of the read/write heads 104A and 104B is subtracted from a desired position 130 of the read/write heads 104A and 104B to determine a position error signal (PES) 132 (shown in
As shown in
The VCM assemblies 136A and 136B are used to position (e.g., rotate) the actuators 102A and 1026 to position the read/write heads 104A and 1046 over a desired data track on the magnetic recording media 106 for data reading and data writing operations. For example, in response to a command to read data from or write data to a data track located a certain distance away from where a respective read/write head 104A or 104B is currently positioned (i.e., a track-seeking operation), a current may be supplied by the power supply 138 and applied to the voice coil of the respective VCM assemblies 136A and 136B to rotate the respective actuators 102A and 102B (and therefore the respective read/write heads 104A and 104B) towards the desired data track. The applied current through the coil generates a magnetic field that interacts with magnets of the VCM assemblies 136A and 136B. The applied current may follow a current profile determined by and commanded by the servo processor 116. As the respective read/write heads 104A and 1046 near the desired data track, less current is applied to the VCM assemblies 136A and 1366 such that the read/write heads 104A and 1046 begin to settle over the desired data track (i.e., a track-settling operation). Once the respective read/write heads 104A and 104B are positioned over the desired data track, the servo controller 126 compensates for small positioning errors (i.e., a track-follow operation) to keep the desired read/write heads 104A and 104B over the desired data tracks on the magnetic recording medium 106 during a read operation or a write operation.
The tracks of the magnetic recording medium 106 can include user data regions 142 and servo data regions 144 (which are sometimes referred to as servo wedges) positioned between the user data regions 142. The servo wedges 144 extend radially between an inner diameter 146 and an outer diameter 148 of the magnetic recording medium 106. Data on the magnetic recording media 106 is stored on data tracks which extend circumferentially around the top/bottom surfaces of each magnetic recording medium 106. The portion of the data tracks in the user data regions 142 store user data, and the portion of the data tracks in the servo wedges 144 are comprised of individual servo sectors 150 (some of which are shaded in
Servo data is written to both sides of the magnetic recording medium 106 by, for example, a servo writer or disk writer before the magnetic recording medium 106 is installed in the data storage device 100 or by the data storage device 100 itself using a process referred to as self-servo track writing (SSW) or concentric SSW process. SSW may include using the electronics (e.g., the SOC 110) of the data storage device 100 to write the concentric servo sectors independent of an external servo writer.
The read/write channels 120A and 120B, the preamplifiers 124A and 124B, and various components of the system controller 112 operate so that the servo data read by the read/write heads 104A and 104B can be processed and used by the data storage device 100 to maintain proper positioning of the read/write heads 104A and 104B.
As shown in
Due to symmetry of the first read transducer 164 and the second read transducer 164B and the distance of the two transducers, there is a position—with respect to each data sector—wherein bit-error rates (BER) are minimized. Deviating from this position results in higher BER and lower signal quality.
Complicating reading and writing is the fact that the read transducers 164A and 164B and write transducer are physically separate and therefore physically offset from each other. As a result, there is some natural misalignment between data being written on one data track and the servo data being read from another data track.
If w0s and w1s represent the weights of the first read transducer 164A and second read transducer 164B, respectively, for sector s∈{1, 2, . . . , N}, then the weight ratio, ωs, of sector s is as follows:
ωs=w0s/(w0s+w1s). (1)
The weight ratio can be averaged over all sectors within a data track. The average weight ratio, ωtrack, of a given data track can be defined as follows:
The ωtrack value can be obtained by averaging the weight ratio of individual sectors, i.e., ωs. For each sector, ωs is calculated by Equation (1) and then averaged or adapted throughout the data track. In certain embodiments, the ωtrack value is based on a subset of all data sectors of a given data track.
An alternative approach is to individually calculate/adapt
The ωtrack is then calculated as ωtrack=w0,track/(w0,track+w1,track)
In certain embodiments, instead of immediately stopping a read operation upon detecting an error, an entire data track can be read continuously regardless of whether a failed data sector is detected. As the data track is read, the ωtrack value can be calculated—regardless of whether a failed data sector is detected.
Using one approach, the ωtrack value can be continuous updated/adapted while the read transducers are sensing (e.g., reading) data from data sectors along the data track. This approach is outlined in
The line 262 connects the ωtrackr values. The monotonicity between ωtrackr and the read offset shown in
As shown in
The average weight ratio for a data track, ωtrack defined in Equation (2) can represent the weight ratio when a given read/write head is located at zero offset. After reading a data track, or a portion of it, if one or more data sectors fail to decode (e.g., cause a read error), an error recovery process can be initiated data sector by data sector. The weight ratio of a failed sector ωf is calculated and saved during the initial read, and a reference value ωtrack can be calculated for the data track. A comparison between ωf and ωtrack can be used to detect the direction the read/write head should be adjusted toward. Once the direction is determined, the servo control system can apply a predetermined universal offset value (e.g., ±5-15% such as ±10%) and adjust the read/write head accordingly before re-reading the data track.
In certain embodiments, the offset direction and value are estimated based on weight ratios and beta values.
PES can be generated by utilizing finite length Volterra series representation of the read signals.
Assuming a system with memory length of K, the coefficients of the 1st order kernel h1 can be represented by s11, s21, s31, . . . , sK1, and the coefficients of the 2nd order kernels h12 and h22 can be represented by s112, s212, s312, . . . , sK12 and s122, s222, s322, . . . , sK22, respectively, for each of first and second read transducers 164A and 164B. The amplitude of the PES of each read transducer generated from these kernel coefficients contains information about the read offset for each read transducer. More specifically, the sum of the 2nd order coefficients, beta β, defined as follows is proportional to the read offset value for a given read transducer:
Beta β values can be calculated for each individual read transducer. Because of skew angles of the read transducers in dual-transducer embodiments, one or both read transducers can be positioned far off-track, at least in certain zones. To help address the varying skew angles across the magnetic recording media, the signals generated by the read transducers can be weighted and combined.
The two read transducers are usually located on opposite sides of the zero offset (e.g., center) where the read/write head would be optimally located. If only looking at the positive (r>0%) or the negative (r<0%) region, there is a linear relationship between beta β and read offset, r, for individual read transducers. These two linear relationships are shown in
For each negative or positive side, a linear regression model can be derived between the corresponding βtrack (equation (4) below) and read offset values.
For example, for r≥0%, a linear regression model is derived by using (r+, βtrack,+0), where r+ represents the non-negative read offset values and βtrack,+0 represents the corresponding β value from the first read transducer. The first linear model is then given by:
r=a+*β+b+ (5)
where a+ and b+ are the slope and intercept respectively. Similarly for r<0%, a linear regression model can be derived using (r−,βtrack,−1), where r− represents the non-negative read offset values and βtrack,−1 represents the corresponding β value from the second read transducer. The second linear model is defined by:
r=a−*β+b− (6)
Both (a+, b+) and (a−, b−) can be calibrated during manufacturing of the data storage device and stored on memory of the data storage device.
In block 302, the difference between the weight ratio of a failed data sector, ωf, and the average weight ratio of the data track, ωtrack is determined and compared to a threshold value (denoted as δ in
If the difference between the weight ratio of a failed data sector, ωf, and the average weight ratio of the data track, ωtrack, is greater than the threshold value, it can be determined whether the weight ratio if greater or less than the average weight ratio of the data track (block 306 in
The selected calibration values can then be used—along with the beta values of one of the read transducers—to determine the read offset value, r, (block 312 in
If the determined read offset value, r, is neither greater nor less than the respective maximums and minimums, the read/write head is adjusted by the determined read offset value, r, for re-reading the data track with the failed data sector (block 322 in
r=a0*ω+b0 (7)
where σ>0 defines a range near an optimal head location. In short, if ωf of a failed data sector is within this range but also significant (|ω−ωtrack|≥δ), the linear regression model in equation (7) is used to estimate the read offset. Otherwise, the process 300 of
As further background for the process 400 of
Referring back to
Next, in block 405, the difference between the weight ratio of a failed data sector, ωf, and the average weight ratio of the data track, ωtrack is determined and compared to a second threshold value (denoted as σ in
If the difference between the weight ratio of a failed data sector, ωf, and the average weight ratio of the data track, ωtrack, is greater than the threshold value, it can be determined whether the weight ratio if greater or less than the average weight ratio of the data track (block 406 in
The selected calibration values can then be used—along with the beta values of one of the read transducers—to determine the read offset value, r, (block 412 in
The determined read offset value—whether using the equation of block 412 or block 413—can be then compared to maximum and minimum read offset values. For example, in block 414, the read offset value, r, is compared to a maximum read offset value, R. If the read offset value is greater than the maximum read offset value, then the read/write head is adjusted by the maximum read offset value for re-reading the data track with the failed data sector (block 416 in
If the determined read offset value, r, is neither greater nor less than the respective maximums and minimums, the read/write head is adjusted by the determined read offset value, r, for re-reading the data track with the failed data sector (block 422 in
The various processes described above can be carried out by the SOC 110 (shown in
Various modifications and additions can be made to the embodiments disclosed without departing from the scope of this disclosure. For example, while the embodiments described above refer to particular features, the scope of this disclosure also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present disclosure is intended to include all such alternatives, modifications, and variations as falling within the scope of the claims, together with all equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
45890307 | Jen et al. | May 1986 | |
5055951 | Behr | Oct 1991 | A |
5383071 | Sato | Jan 1995 | A |
5450257 | Tran et al. | Sep 1995 | A |
5831888 | Glover | Nov 1998 | A |
5930211 | Sasaki | Jul 1999 | A |
5949602 | Ishioka | Sep 1999 | A |
6108153 | Glover | Aug 2000 | A |
6154335 | Smith et al. | Nov 2000 | A |
6317285 | Bi | Nov 2001 | B1 |
6429994 | Le | Aug 2002 | B1 |
6430008 | Trabert et al. | Aug 2002 | B1 |
6515818 | Harmer | Feb 2003 | B1 |
6567489 | Glover | May 2003 | B1 |
6657809 | Ottesen et al. | Dec 2003 | B2 |
6657810 | Kupferman | Dec 2003 | B1 |
7245449 | Stein et al. | Jul 2007 | B2 |
7307808 | Kaizu et al. | Dec 2007 | B2 |
7885025 | Eppler et al. | Feb 2011 | B2 |
8149529 | Mathew et al. | Apr 2012 | B2 |
8917475 | Zhao et al. | Dec 2014 | B1 |
8964325 | Yamada | Feb 2015 | B1 |
9001452 | Daugela et al. | Apr 2015 | B2 |
9019642 | Xia | Apr 2015 | B1 |
9190078 | Sapozhnikov et al. | Nov 2015 | B2 |
9819456 | Bellorado | Nov 2017 | B1 |
9953673 | Daugela et al. | Apr 2018 | B2 |
10008229 | Galbraith et al. | Jun 2018 | B2 |
10020017 | Furuhashi | Jul 2018 | B2 |
10255943 | Schick et al. | Apr 2019 | B1 |
20020181347 | Ikeda et al. | Dec 2002 | A1 |
20060126460 | Kobayashi | Jun 2006 | A1 |
20090168224 | Sakai | Jul 2009 | A1 |
20090257333 | Kikuchi | Oct 2009 | A1 |
20100097714 | Eppler et al. | Apr 2010 | A1 |
20170061997 | Furuhashi | Mar 2017 | A1 |
20170194024 | Galbraith et al. | Jul 2017 | A1 |
Entry |
---|
“Volterra series,” Wikipedia, retrieved from “https://en.wikipedia.org/w/iridex.php?title=Volterra_series&oldid=1022344532,” edited on May 10, 2021. |