Method and apparatus for calibrating read-head off-track detector
10475482 ยท 2019-11-12
Assignee
Inventors
Cpc classification
G11B5/012
PHYSICS
G11B20/10388
PHYSICS
International classification
G11B5/012
PHYSICS
Abstract
In a data storage device having a storage medium, wherein data is written to tracks on the storage medium, data for each track including a preamble, and wherein the preamble in any current track is orthogonal to the preamble in any track adjacent to the current track, and wherein data accumulated in a multi-dimensional space is representative of a relationship between signals from the current track and signals from at least one adjacent track, the relationship between the signals from the current track and the signals from the at least one adjacent track is calibrated by, for each respective position out of a plurality of positions in the multi-dimensional space, accumulating a plurality of data values for the respective position, and determining, from the plurality of data values for the respective position, an inverted covariance matrix without performing a matrix inversion operation, either during run-time or prior to run-time.
Claims
1. A method of operating a data storage device having a storage medium, wherein data is written to tracks on the storage medium, data for each track including a preamble, and wherein the preamble in any current track is orthogonal to the preamble in any track adjacent to the current track, and wherein data accumulated in a multi-dimensional space is representative of a relationship between signals from the current track and signals from at least one adjacent track, the method comprising: calibrating, in control circuitry of the data storage device, the relationship between the signals from the current track and the signals from the at least one adjacent track by, for each respective position out of a plurality of positions in the multi-dimensional space: accumulating, in the control circuitry, a plurality of data values for the respective position; and determining in the control circuitry, from the plurality of data values for the respective position, an inverted covariance matrix without performing a matrix inversion operation.
2. The method of claim 1, wherein the method is performed continually during run-time of the data storage device.
3. The method of claim 2 wherein the determining, in the control circuitry, an inverted covariance matrix, comprises: determining, in the control circuitry, a respective mean of each respective one of the plurality of data values; determining, in the control circuitry, a respective noise component relative to each respective mean; correlating, in the control circuitry, each respective noise component for each respective mean to each other respective noise component for each other respective mean; determining, in the control circuitry, a respective error between each respective noise component and each other respective noise component; and determining, in the control circuitry, elements of the inverted covariance matrix from respective errors and respective noise components.
4. The method of claim 3 wherein the determining a respective mean of each respective one of the plurality of data values comprises adaptively accumulating the mean.
5. The method of claim 3 wherein the correlating comprises adaptively filtering each respective noise component against each other respective noise component.
6. The method of claim 5 wherein the adaptively filtering comprises applying an adaptive least-mean-squares filter.
7. The method of claim 5 wherein the determining elements of the inverted covariance matrix from respective errors and respective noise components further comprises factoring in coefficients of the filter.
8. The method of claim 7 wherein the determining elements of the inverted covariance matrix from respective errors and respective noise components comprises taking a product of each respective error and its respective noise component.
9. The method of claim 3 wherein the determining elements of the inverted covariance matrix from respective errors and respective noise components comprises taking a product of each respective error and its respective noise component.
10. The method of claim 1 wherein the method is performed prior to run-time of the data storage device.
11. The method of claim 10 wherein the determining an inverted covariance matrix comprises: accumulating, in the control circuitry, each respective one of the plurality of data values, and determining a respective mean from each respective accumulated data value; determining, in the control circuitry, respective variance values by accumulating multiplied respective ones of the respective data values; and determining, in the control circuitry, elements of the inverted covariance matrix from predetermined relationships among the respective variance values.
12. The method of claim 11 wherein the determining respective variance values further comprises subtracting products of the respective means from multiplied respective ones of the respective data values.
13. The method of claim 10 further comprising computing a determinant of a covariance matrix from the predetermined relationships among the respective variance values.
14. A data storage device comprising: a storage medium, wherein data is written to tracks on the storage medium, data for each track including a preamble, and wherein the preamble in any current track is orthogonal to the preamble in any track adjacent to the current track, and wherein data accumulated in a multi-dimensional space is representative of a relationship between signals from the current track and signals from at least one adjacent track; and circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track by, for each respective position out of a plurality of positions in the multi-dimensional space: accumulating a plurality of data values for the respective position; and determining, from the plurality of data values for the respective position, an inverted covariance matrix without performing a matrix inversion operation.
15. The data storage device of claim 14 wherein the circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track is operable to run continually during run-time of the data storage device.
16. The data storage device of claim 15 wherein the circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track comprises adaptive filter circuitry that correlates each respective noise component in a plurality of respective noise components against each other respective noise component.
17. The data storage device of claim 16 wherein the adaptive filter circuitry comprises a respective adaptive filter circuit for each respective noise component, operable to correlate that respective noise component against each other respective noise component.
18. The data storage device of claim 17 wherein the circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track by determining an inverted covariance matrix comprises: a subtractor that determines a respective error between each respective noise component and each other respective noise component; a respective multiplier that determines a respective product of a respective noise component and error output by each respective adaptive filter circuit; and an averaging circuit to determine an expected value of the respective product.
19. The data storage device of claim 14 wherein the circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track is operable to prior to run-time of the data storage device.
20. The data storage device of claim 19 wherein the circuitry operable to calibrate the relationship between the signals from the current track and the signals from the at least one adjacent track comprises: circuitry operable to accumulate each respective one of the plurality of data values, and to determine a respective mean from each respective accumulated data value; circuitry operable to determine respective variance values by accumulating multiplied respective ones of the respective data values; and circuitry operable to determine elements of the inverted covariance matrix from predetermined relationships among the respective variance values.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further features of the disclosure, its nature and various advantages, will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
DETAILED DESCRIPTION
(19)
(20) Read/write head assembly 120 includes an actuator 121 that bears arms 122-125, one of which is disposed adjacent to each surface 111, 112 of a platter 101, 102, 103 that has a memory storage coating 110. In this example, with heads on both surfaces of each of arms 123, 124, that amounts to four arms 122-125, but in the single-sided platter example discussed above, there would be only three arms. In other examples, the number of arms would increase or decrease along with the number of platters.
(21) Each arm 122-125 bears, at or near its end furthest from actuator 121, and on both its upper and lower surfaces in the case of arms 123, 124, a plurality of read heads/sensors and write heads. In this case, two sensors 131, 132 are shown, and will be used to represent read sensors, although it would normally at least be expected that each set of one or more read sensors has a companion write head (not shown). It should be noted that
(22) A motor 126, commonly referred to as a voice-coil motor, rotates actuator 121 back and forth, for example, along the directions of arrow B (
(23) The location on surface 111 of platter 101 (the other surfaces are similar) of the aforementioned wedges is shown in
(24) As noted above, as areal densities for magnetic data storage continue to increase, data tracks are being written in an overlapping or shingled fashione.g., in two-dimensional magnetic recording (TDMR)and reading is being performed using read heads or sensors having dimensions comparable to the track width. Therefore, it is important to know whether, and by how much, a read head is deviating from its nominal position relative to a track. If an off-track condition is detected, system parameters can be optimized for better performance based on the amount by which the heads are off-track. For example, filter parameters, as well as the amount of gain for each head, can be adjusted based on the amount by which the heads are off-track.
(25) As shown in commonly-assigned U.S. Pat. No. 10,008,228, which is hereby incorporated by reference herein in its entirety, adjacent tracks may be written with orthogonal preamblesi.e., preambles that are mutually exclusive, such as those described in commonly-assigned U.S. Pat. No. 9,153,264, which is hereby incorporated by reference herein in its entirety. Specifically, the preambles may be chosen to be a pair of periodic patterns such that the inner product of the two patterns in question, when represented as sequences of write current polarities {1,1}, over a window chosen to contain an integer number of periods of both patterns, is zero. For example, a 2T pattern (110011001100 . . . ) may be written to the preambles on each even-numbered track, while a 3T pattern (111000111000111000 . . . ) may be written to the preambles on each odd-numbered track, although any pair of periods where one period is not a multiple of the other may be selected. There may be other patterns as well, such as a 4T pattern (111100001111000011110000 . . . ). Any pair of such orthogonal patterns may be used for adjacent tracks in accordance with this disclosure. These patterns may be described in terms of tones (i.e., sinusoidal signals at the fundamental frequencies of the respective patterns).
(26) A pair of tracks 301, 302 with orthogonal preambles 311, 312 as described above is shown in
(27) Read head 300 is coupled to a read channel 401 of a hard drive controller 400 (
(28) Commonly-assigned U.S. Pat. No. 9,424,880, which is hereby incorporated by reference herein in its entirety, describes using Discrete Fourier Transforms to measure the tones in the preambles of two adjacent tracks to determine a ratio representing off-track condition.
(29)
(30)
(31) As seen in
(32) Although
(33) A disk can be calibrated by purposely placing the read heads H1 (501) and H2 (502) at an on-track position and known off-track positions and taking multiple samples at each position. The samples can be plotted in a two-dimensional space representing ratios of magnitudes of preamble signal contributions from the right and left tracks (T.sub.r and T.sub.l) to the magnitude of the preamble signal contribution from the center track (T.sub.c). The ratio m.sub.Tr/m.sub.Tc of the magnitude of the preamble signal contribution from the right track (T.sub.r) to the magnitude of the preamble signal contribution from the center track (T.sub.c) would be one axis of the two-dimensional space, while the ratio m.sub.Tl/m.sub.Tc of the magnitude of the preamble signal contribution from the left track (T.sub.l) to the magnitude of the preamble signal contribution from the center track (T.sub.c) would be another axis of the two-dimensional space. Different clusters of samples would represent different off-track and on-track (i.e., 0% off-track) positions. This is performed for each track of the disk. During actual operation, a similar sample would be taken and, depending on which cluster that sample fell in in the two-dimensional plot for the track in question, would indicate the degree to which the read heads are off-track.
(34) One way of determining which cluster such an actual operational sample belonged to may be determined by finding a minimum distance from the sample, plotted in the same two-dimensional space as the calibration samples, to a representative point within each cluster, which may, for example, be the geometric center of each cluster. The determination of the minimum distance could be a simple Euclidean computation, or something more complicated, as described below.
(35) The discussion below assumes 2T/3T/4T patterns as shown in
(36) A two-dimensional plot 800 as described above, for a 2T/3T/4T case, is shown in
(37) The dashed lines 821, 822, 823, 824, 825, 826, 827 and 828 represent boundaries between clusters and therefore between degrees (in this example, from 40% to +40% in 10% increments) to which the read heads 501, 502 are on-track or off-track. An actual data point is said to indicate that the read heads are on-track or off-track to that degree based on which of representative points 811, 812, 813, 814, 815, 816, 817, 818 and 819 it is closest to. Several variants are discussed below for determining the minimum distance from a data point to one of representative points 811, 812, 813, 814, 815, 816, 817, 818 and 819.
(38)
(39) In the orientation shown in
(40) Sampled (and delayed in the case of signal 941) signals 941, 942 are filtered by, e.g., a two-dimensional finite impulse response (FIR) filter 960, including respective FIR filters 961, 962, which are added at 904 to provide a set FIR samples 905 to be decoded. The filter taps 916 for FIR filters 961, 962 are loaded from a look-up table (FIR LUT) 906 based on the off-track information 937 derived from signals 941, 942 by off-track detector circuitry 907, which includes Discrete Fourier Transform (DFT) compute engine 917 and Off-Track Estimator 927. The output 937 of off-track detector circuitry 907 is normally selected by multiplexer 908 to control selection of filter taps 916. Alternatively, by asserting control signal 918, a user can inputeither manually, or as the output of other circuitry (not shown)a particular LUT selection signal 947 to select the filter taps 916.
(41) The timing 1000 of the operation of the circuitry in
(42) Off-Track Estimator 927 operates as a maximum likelihood detector, computing the minimum distance in the two-dimensional space of
(43) In a first implementation of a maximum likelihood detector according to the subject matter of this disclosure, ratios are computed in a manner similar to that described above in connection with
(44) In order to understand the operation of such an implementation, it should be recognized that the clusters 801, 802, 803, 804, 805, 806, 807, 808, 809 of calibration data points are not identical in shape, which affects the accuracy of the boundaries 821, 822, 823, 824, 825, 826, 827 and 828. Therefore, the minimum distance determination is probabilistici.e., a determination that a measured point is closer to a first reference point than to a second reference point reflects a greater probability that the off-track position is the one associated with the first reference point than that the off-track position is the one associated with the second reference point.
(45) Referring to
p.sub.1=(2.sub.1.sup.2).sup.0.5e.sup.(r.sup.
and that the off-track probability p.sub.2 represented by second cluster 1102 is:
p.sub.2=(2.sub.1.sup.2).sup.0.5e.sup.(r.sup.
then placing the boundary at the intersection A of the two distributions .sub.1 and .sub.2 means that off-track probability p.sub.1 is more likely than off-track probability p.sub.2 if:
.sub.1.sup.2(r.sub.1).sup.2.sub.2.sup.2(r.sub.2).sup.2>2.sub.1.sup.2.sub.2.sup.2 ln(.sub.1/.sub.2)
However, an assumption that the boundary is located at B, halfway between the center points .sub.1 and .sub.2, is accurate only when .sub.1=.sub.2i.e., when the distributions are identical.
(46) Thus, in a first variant of a first implementation using ratios, the probability p(r/i) that for track r, the degree to which the heads are off-track is i (where i=1 to 9, representing off-track conditions from 40% to +40%) is:
p(r/i)=((2).sup.k|C.sub.i|)e.sup.(r.sup.
where:
(47)
and C.sub.i is the covariance matrix that accounts for the accurate shape of each distribution .sub.i:
(48)
Therefore, , the degree to which the heads are off-track, may be given by:
(49)
(50) A maximum likelihood detector circuit 1200 for determining according to this variant of a ratio-based implementation of the subject matter of this disclosure is shown in
(51) A second variant of a ratio-based implementation assumes that the clusters are identical (i.e., .sub.1=.sub.2=). It can then be shown that the covariance matrix C.sub.i reduces to:
(52)
so that reduces to:
(53)
which in matrix form is merely
(54)
(55) A maximum likelihood detector circuit 1300 for determining according to this variant of a ratio-based implementation of the subject matter of this disclosure is shown in
(56) Circuit 1300 thus includes fewer components than circuit 1200, but is less accurate for the reasons discussed in connection with
(57) In a second implementation of a maximum likelihood detector according to the subject matter of this disclosure, the minimum distance to one of the calibrated reference parameters, which determines the degree to which the read heads in question are off-track, is determined directly from the individual DFT magnitudes, rather than from ratios of those magnitudes. This requires larger matrix calculations.
(58) In such an implementation, the probability p(x/i) that for track x, the degree to which the heads are off-track is i is:
(59)
where x is a matrix of the individual magnitudes rather than the ratios of those magnitudes:
(60)
Therefore, , the degree to which the heads are off-track, may be given by:
(61)
(62) A maximum likelihood detector circuit 1400 for determining according to one variant of a magnitude-based implementation of the subject matter of this disclosure is shown in
(63) A second variant of a magnitude-based implementation of the subject matter of this disclosure has multiple modes. In a first mode, equal distributions are assumed as in the second variant of the first implementation, so that:
(64)
which reduces circuit 1400 in manner similar to the way circuit 1200 is reduced to circuit 1300.
(65) In other modes of this variant, different diagonals are assumed to be all zeroes. Thus, in a second mode, only the main diagonal has non-zero values but the values are not all the same:
(66)
In a third mode, the main diagonal and two side diagonals have non-zero values:
(67)
In a fourth mode, the main diagonal and four side diagonals have non-zero values:
(68)
In a fifth mode, alternating diagonals have non-zero values:
(69)
While the circuitry needed for the second through fifth modes is more like circuitry 1400 than circuitry 1300, the number of matrix elements to be multiplied and accumulated is smaller.
(70) It can be shown that using all of the magnitudes to compute the minimum distance, rather than taking their ratios first, results in more accurate determinations, because some information is lost in the taking of the ratios.
(71) Either using ratios, as described in connection with
(72) In accordance with implementations of the subject matter of this disclosure, and taking the implementations described above as a starting point, circuitry is be provided that processes the input signals x in a manner that directly outputs a matrix that is the same as C.sub.i.sup.1, without having to perform the inversion operation.
(73) Although implementations of the subject matter of this disclosure can operate on the two-input example of
(74) Thus, considering the example of
(75)
The noise can be whitened by predicting each noise term as a function of the other noise terms:
(76)
where each f.sub.ij is a filter coefficient representing the correlation of the i.sup.th and j.sup.th noise terms to each other.
(77) Various whitening filters can be used, such as a minimum-mean-square-error (MMSE) filter or a least-mean-square (LMS) filter. For purposes of this discussion a least-mean-square filter can be provided as shown in
(78) In each filter 1500, e.sub.i (i=1, . . . , j) is the error resulting from subtracting at 1501, from n.sub.1, the product of each n.sub.j (ji) and the respective filter coefficient f.sub.ij. On each iteration t (arrival of a new sample), each coefficient f.sub.ij adapts:
f.sub.ij.sup.(t+1)=f.sub.ij.sup.(t).Math.n.sub.j.Math.e.sub.i
where is the adaptation bandwidth. The filter is adaptive to minimize e.sub.i.
(79) The full set of whitened noise samples can be written as:
(80)
and the variance of each whitened noise sample can be written as:
.sub.i.sup.2=E[(n.sub.i{circumflex over (n)}.sub.i).sup.2].
Thus the covariance matrix of DFT noise can be written in terms of expected values as:
(81)
(82) The optimum prediction filter F, is the matrix of all of the f.sub.ij,
(83)
The f.sub.ij values in the i.sup.th column may be written as 13 matrix F.sub.i. Using F.sub.1 as an example:
F.sub.1=R.sub.1.sup.1P.sub.1
where
(84)
(85) The covariance matrix C can be rewritten in the form
(86)
in which C, a 44 matrix, is decomposed into a 11 matrix, a 31 matrix, a 13 matrix and a 33 matrix. The desired inverted covariance matrix C.sup.1 can be similarly decomposed:
(87)
(88) By definition, CC.sup.1=I, where I is the identity matrix. This yields two equations in two unknowns:
(89)
From the Second Equation:
(90)
From the First Equation:
(91)
(92) Continuing:
(93)
Substituting Yields:
(94)
(95) The same can be done for the other columns, yielding:
(96)
without having to perform a matrix inversion operation. Instead, for each column, one instance of circuit 1500 of
(97) Once C.sub.i.sup.1 has been found, |C| can be found as 1/|C.sub.i.sup.1|
(98) Although the values have been assumed to be constant in the discussion thus far, in fact the values also can be updated continually. Recalling that each value represents the mean of one of the clusters 801-809 of on-track/off-track calibration values, by brute force the mean could be updated by multiplying the former mean value by the number of previous samples, adding the new sample value, and dividing by the increased number of samples. However, such an operation is computationally intensive in hardware, particularly to perform the division operation.
(99) Therefore, in accordance with implementations of the subject matter of this disclosure, each mean is adaptively updated, recognizing that as the number of samples grows, the effect of the newest sample will be small:
.sub.ij.sup.(i+1)=(1).Math..sub.ij.sup.(t)+.Math.x.sub.j
where is the adaptation bandwidth, and may be on the order of 2.sup.9. Thus the new value .sub.ij.sup.(t+1) is nearly identical to old value .sub.ij.sup.(t), including a contribution of (12.sup.9) times the old value, and a contribution of only 2.sup.9 times the new value. These values converge after about 2,000 samples. With each sample representing one sector, and each track having 256 sectors, 2,000 samples are obtained after fewer than four revolutions. With a platter rotational speed of 7,200 RPM, four revolutions occur in about 33.3 ms.
(100) Once the parameters are calibrated, circuits 1500 also can be used to measure the actual off-track error:
(101)
This is the same calculation that is performed in each circuit 1500.
(102) A method 1600 according to this implementation is diagrammed in
(103) In accordance with another implementation of the subject matter of this disclosure, calibration parameters can be determined off-linee.g., once at the time of manufacture, in the manner described below. Such calibration can be performed with about 10,000 or fewer samples, which can be obtained in less than 167 ms.
(104) As noted above, the error to be determined is
(105)
which involve one constant, ln(|C.sub.i|), four means, .sub.i (i=1, . . . , 4), and the entries in the covariance matrix, C.sub.i. For simplicity, one can consider the aforementioned fifth mode in which alternating diagonals have non-zero values:
(106)
Because C.sub.i,13=C.sub.i,31 and C.sub.i,24=C.sub.i,42, there are only six entries to be determined.
(107) The four means, .sub.i (i=1, . . . , 4), can be determined by accumulating the samples x using the same circuit of
E[(x.sub.i.sub.i)(x.sub.j.sub.j)]=E[x.sub.ix.sub.j)].sub.i.sub.j.
(108) If the variance entries are denoted v.sub.i (i=1, . . . , 6), then the covariance matrix C is
(109)
(110) C.sup.1 can be found as follows:
(111) By definition, C.Math.C.sup.1=I:
(112)
By a series of operations, C can be transformed into I, and by performing the same operations on I, the equation continues to hold:
(113)
(114) The left side of the final equation is I.Math.C.sup.1 which, by definition, is C.sup.1. Accordingly, the matrix on the right side of the final equation also is C.sup.1. To simplify the notation, one can substitute:
P=(v.sub.1v.sub.3v.sub.5.sup.2)
Q=(v.sub.2v.sub.4v.sub.6.sup.2)
yielding:
(115)
(116) This offline calibration implementation may be performed separately for each potential on-track/off-track position. In the context of the implementations described above, calibration would be performed for each of the nine clusters 801-809 representing nine potential on-track/off-track positions.
(117) In this implementation, for each position to be calibrated, 11 values are accumulatedfour x values representing the two-dimensional position of each cluster in the two orthogonal domains, the squares of each of those x values and two cross-multiplications of the x values for deriving the diagonals of the covariance matrix as described above, and N (the number of R-Gate signals, which is the number of samples).
(118) The four x values from which the means .sub.i are derived may be referred to as M.sub.i (i=1, . . . , 4). The squared and cross-multiplied x values may be referred to as A.sub.i (i=1, . . . , 6). The means and variances may then be derived as follows:
(119)
From these, as noted above, one can determine C and C.sup.1:
(120)
The determinant of the covariance matrix C is:
|C|=(v.sub.1v.sub.3v.sub.5.sup.2)(v.sub.2v.sub.4v.sub.6.sup.2)=PQ
and therefore:
b=ln(|C|)=ln(PQ)
The final calibrated parameters for each cluster 809-809 are: 1. four means, .sub.i 2. six entries in inverse co-variance matrix C.sup.1:
(121)
and 3. one constant term b,
for a total of 11 calibrated parameters per on-track/off-track position.
(122) A method according to this implementation is diagrammed in
(123) calibrated means are determined as .sub.i=M.sub.i/N, (i=1, . . . , 4), and calibrated variances are determined as:
(124)
At 1704, the covariance matrix C and its inverse C.sup.1 are determined as:
(125)
where
P=(v.sub.1v.sub.2v.sub.5.sup.2),Q=(v.sub.2v.sub.4v.sub.6.sup.2).
At 1705, the constant b is determined as b=ln(PQ).
(126) At 1706 it is determined whether there are additional on-track/off-track conditions to be calibrated. If not, method 1700 ends. If at 1706, there are additional on-track/off-track conditions to be calibrated, then flow returns to 1701.
(127) As used herein and in the claims which follow, the construction one of A and B shall mean A or B.
(128) It will be understood that the foregoing is only illustrative of the principles of the invention, and that the invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.