In certain embodiments, a method includes determining an error in reading a data sector in a data track, calculating a position error signal, and determining an estimated read offset value of the data sector based, at least in part, on the calculated position error signal.
In certain embodiments, a hard disk drive includes a magnetic recording medium comprising data sectors along a data track, a read head arranged to read data from the data sectors, and an integrated circuit. The integrated circuit includes circuitry programmed to: detect a read error associated with a first of the data sectors and, after the detection of the read error, continue to read data from the data sectors.
In certain embodiments, a system-on-a-chip includes a read/write channel configured to: calculate read offset proxy values for each data sector, detect an error is reading a first data sector of the data sectors, calculate a reference value for the data track, and compare the reference value to the read offset proxy value associated with the first data sector. The system-on-a-chip also includes a servo controller configured to cause adjustment of a position of a read 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 hard disk drives are initially unable to successfully read data from data sectors on a magnetic recording medium, hard disk drives identify the error and try to read the missed data sectors again. This process of identifying the error and then 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 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 104B 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 104B 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 control system 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, which is the difference between where the read/write heads 104A and 104B are and should be positioned. The PES 132 is fed into a feedback controller 134, which controls current to at least one of the voice coil motor (VCM) assemblies 136A, 136B and—for some operations—controls voltage to microactuators to position the read/write heads 104A and 104B over the desired track. This PES is generated from reading data in the servo sectors as opposed to reading data in the data sectors.
As shown in
The VCM assemblies 136A and 136B are used to position (e.g., rotate) the actuators 102A and 102B to position the read/write heads 104A and 104B 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 104B near the desired data track, less current is applied to the VCM assemblies 136A and 136B such that the read/write heads 104A and 104B 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 control system 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
Further complicating reading and writing is the fact that the read head and write head (e.g., writer, 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.
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. The amplitude of the PES generated from these kernel coefficients contains information about the read offset. More specifically, the sum of the 2nd order coefficients, beta β, defined as follows is proportional to the read offset value:
However, due to head-to-head variation, a reference value should be used in conjunction with the calculated β value to estimate read offset for a given missed or failed data sector. Note that each data sector can have its own β value. The reference value can be set as the β value at a nominal read location (e.g., the β value along the centerline of the data track).
The nominal read location can be calculated on-the-fly and on a per-read-head and per-data-track basis. In embodiments described below, the nominal read location (e.g., the above-noted reference value) is referred to as βtrack This βtrack value is the average value of β for the data sectors of a given data track and is represented as follows:
where rs represents the read offset deviation from an optimal location for sector s and βsector(s,r
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—such that it is ready to be used for error recovery.
Using one approach, the βtrack value can be continuous updated/adapted while the read head is sensing (e.g., reading) data from data sectors along the data track. This approach is outlined in
If one or more data sectors are missed (e.g., a data sector fails to decode), an error recovery process is initiated to attempt to recover data from the missed data sector(s). The β values of failed data sectors are stored in memory and associated with the address of the failed sectors during the read operation. Additionally, the β values of the successfully read data sectors could also be stored in memory to provide additional help in recovering the failed sectors. It has been found that, due to the relationship between β values and read offsets, comparing the β value of the failed data sector (denoted as βf) and βtrack indicates the direction where the read head should move to approach the optimal read location. More specifically, if βf>βtrack, the read head should be adjusted towards a negative direction (e.g., closer to the inner diameter of the magnetic recording medium), whereas if βf<βtrack the opposite is true.
In block 302, the difference between the βtrack value and the βf value is determined and compared to a threshold offset value (denoted as δ in
If the difference is greater than the threshold offset value, it can be determined whether the βf value is greater than or less than the βtrack value (block 306 in
Using the method 300 described above, read offset adjustments can be made without necessarily relying on data saved during manufacturing. This is because the reference values (e.g., the βtrack values) and the offset values of the failed data sectors (e.g., the βf values) are calculated on-the-fly without reference to manufacturing data. However, the method 300 uses predetermined offset values (e.g., ±5-15%) to adjust the read head during data track re-reads, and those predetermined offset values may not align with the optimal reading position of each missed data sector.
The method 400 involves determining a relationship between the β values and read offset values. In certain embodiments, the relationship is a linear relationship with a slope and an intercept. The relationship (linear or not) can be determined during the manufacturing process by calculating the β values at known read offset values. Equation 3 outlines an approach for calculating β values at given read offsets r, denoted as:
The βtrackr values can be calculated in the same way as the βtrack noted above. For linear relationships, the relationship between the β values and read offsets r can be defined by
r=a*β+b, (4)
where a and b are, respectively, a slope and intercept of the linear relationship.
During an error recovery process, once a failed data sector's βf value is available, the estimated read offset value for that failed data sector can be calculated by a*βf+b.
Because there is head-to-head variations and zone-by-zone variations, the slope and intercept, a and b, could be calculated on a per-head and a per-zone basis and stored to memory. However, it has been found that, for a given read head, the b value has a non-negligible zone-to-zone variation while a remains relatively stable. In other words, the linear regression models for different zones can be consolidated to one with an intercept offset that various from zone to zone. More specifically, the βtrackr values can be offset by βtrack0.
The linear regression model can then be derived with pairs (r, βtrackr−βtrack0) instead of (r, βtrackr). Data points (r, βtrackr,z−βtrack0,z) are collected for all r∈ and z∈Z, where Z={z1, z2, . . . , zM} denote a chosen set of zones. The linear regression model can be derived from such set of data points, and a single set of (a, b) can be used for all zones for a given read head. During error recovery, the failed sector βf also should be offset by βtrack0 before being plugged into the linear equation for the estimation. The estimated read offset is therefore given by:
(a*(βf−βtrack0)+b). (5)
In other embodiments, a universal (a, b) across zones can be derived using linear regression models individually for different zones which would yield (az, bz) for all z∈Z. The universal (a, b) can be calculated by
and
Next, the calculated read offset value is compared to R, which is a predetermined maximum read offset value permitted by the hard disk drive (block 404 in
If the calculated read offset value is less than the predetermined minimum read offset value, then the read head is adjusted by the minimum read offset value instead of the calculated read offset value (block 410 in
The various processes described above can be carried out by the SOC 110 (shown in
Although the disclosure above focuses on on-the-fly calculations of β value values, the β values can be calculated during manufacturing of hard disk drives. For example, the β values of multiple data sectors can be measured multiple times while the read head is set at an optimal or near-optimal location. The β values can then be averaged to remove noise. This calculation can be done on a per-head and per-zone basis and then stored in a system file in memory.
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 |
---|---|---|---|
4589037 | Jen et al. | May 1986 | A |
5055951 | Behr | Oct 1991 | A |
5383071 | Sato | Jan 1995 | A |
5450257 | Tran | Sep 1995 | A |
5831888 | Glover | Nov 1998 | A |
5930211 | Sasaki | Jul 1999 | A |
5949602 | Ishioka et al. | Sep 1999 | A |
6108153 | Glover | Aug 2000 | A |
6154335 | Smith et al. | Nov 2000 | A |
6317285 | Bi et al. | Nov 2001 | B1 |
6429994 | Le et al. | Aug 2002 | B1 |
6430008 | Trabert | 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 | Dec 2014 | B1 |
8964325 | Yamada | Feb 2015 | B1 |
9001452 | Daugela et al. | Apr 2015 | B2 |
9019642 | Xia et al. | Apr 2015 | B1 |
9190078 | Sapozhnikov et al. | Nov 2015 | B2 |
9819456 | Bellorado et al. | 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 | Dec 2002 | A1 |
20060126460 | Kobayashi | Jun 2006 | A1 |
20090168224 | Sakai | Jul 2009 | A1 |
20090257333 | Kikuchi | Oct 2009 | A1 |
20100097714 | Eppler | 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/index.php?title=Volterra_series&oldid=1 022344532,” edited on May 10, 2021. |