1. Field
The present invention relates to a method, servo channel, and tape drive for recovering servo information from a synchronous servo channel.
2. Description of the Related Art
In timing-based servo (TBS) systems, recorded servo patterns consist of magnetic transitions with two different azimuthal slopes. Head position is derived from the relative timing of pulses, or dibits, generated by a narrow head reading the servo patterns. TBS patterns also allow the encoding of additional longitudinal position (LPOS) information without affecting the generation of the transversal position error signal (PES). This is obtained by shifting transitions from their nominal pattern position using pulse-position modulation (PPM). Traditionally, the detection of LPOS information bits is based on the observation of the arrival times of the shifted dibit peaks within the servo bursts at the servo reader output. A specification for the servo format in current tape drives is provided by the linear tape-open (LTO) format. The complete format for LTO drives of generation 1 (LTO-1) was standardized by the European Computer Manufacturers Association (ECMA) in 2001 as ECMA-319. Additional information on LTO technology, in particular on LTO drives of generations 2 to 4 (LTO-2 to LTO-4), where the servo format was not modified, can be found on the World Wide Web (www) at ultrium.com.
The timing-based servo (TBS) technology, which was developed specifically for linear tape drives and is also used in all LTO tape drive products, provides the basic structure of a servo frame, consisting of four servo bursts, as shown in
The servo frame of
In order to obtain sufficient resolution of the sampled servo signal at high tape velocities using traditional asynchronous architectures, high analog-to-digital converter (ADC) sampling rates are required. For example, if the highest target velocity is 12.5 m/s, then a resolution of 0.83 μm is obtained by assuming an ADC sampling rate of 15 MHz. Clearly, such a resolution is not adequate when one wants to detect LPOS bits with a modulation width of ±0.25 μm.
In certain prior art synchronous servo channel architectures, a dynamic interpolator allows any sampling rate at the servo channel detector input, with the limitation that aliasing effects have to be avoided. Synchronous operation of the servo channel requires the generation of a time base for signal interpolation, so that interpolated signal samples are obtained at a predetermined fixed rate of 1/xint samples per micrometer, where xint denotes the nominal step interpolation distance, independent of tape velocity. For example, for xint=0.05 μm the rate 1/xint corresponds to 20 samples per micrometer.
The natural reference for the generation of the time base is provided by the servo bursts, which periodically appear at the servo reader output. The signal at the servo reader output may be regarded as a pilot signal, from which it is possible to extract timing information. The extraction of timing information from the servo reader signal, however, is not straightforward, as the servo bursts into which a servo frame is subdivided, namely A, B, C, and D bursts comprising 5, 5, 4, and 4 dibits, respectively, are not equally spaced. Moreover, the spacing between the servo bursts depends on the transversal (y)-position of the servo read head. Furthermore, the repetition period of the servo frames, as well as the time interval between consecutive dibits within a servo burst, depend on the tape velocity. Finally, it is necessary to take into account the presence of pulse position modulation for the encoding of LPOS information in the 2nd and 4th dibit of the A and B bursts.
In one prior art technique, a phase locked loop (PLL) may be used to achieve timing recovery in tracking mode during track following, which has as input the pilot signal represented by the servo bursts, as well as knowledge about the tape velocity and servo reader y-position.
Provided are a method, servo channel, and tape drive for recovering servo information from a synchronous servo channel. An interpolator reads samples of a servo signal obtained from a servo reader at a rate of one servo sample per clock interval, to produce up to M interpolated servo samples per clock interval. A first buffer buffers interpolation time instants at which the interpolator generates interpolated servo samples. The interpolated servo samples are buffered in a second buffer and the interpolated servo samples are outputted from the second buffer to a correlator to produce correlation signal samples.
a, 6b show correlator output sequences and variable and fixed search windows for a tape velocity of 1.6 m/s.
a, 7b show correlator output sequences and variable and fixed search windows for a tape velocity of 8 m/s.
A single reel magnetic tape cartridge 12 is illustrated, examples of which are those adhering to the Linear Tape Open (LTO) format. An example of a magnetic tape drive 10 is the IBM 3580 Ultrium magnetic tape drive based on LTO technology. A further example of a single reel magnetic tape drive and associated cartridge is the IBM 3592 TotalStorage Enterprise magnetic tape drive and associated magnetic tape cartridge. An example of a dual reel cartridge is the IBM 3570 magnetic tape cartridge and associated drive. In alternative embodiments, additional tape formats that may be used include Digital Linear Tape (DLT), Digital Audio Tape (DAT), etc.
The magnetic tape drive 10 comprises one or more controllers 18 of a recording system for operating the magnetic tape drive in accordance with commands received from a host system 20 received at an interface 21. A controller typically comprises logic and/or one or more microprocessors with a memory 19 for storing information and program information for operating the microprocessor(s). The program information may be supplied to the memory via the interface 21, by an input to the controller 18 such as a floppy or optical disk, or by read from a magnetic tape cartridge, or by any other suitable means. The magnetic tape drive 10 may comprise a standalone unit or comprise a part of a tape library or other subsystem. The magnetic tape drive 10 may be coupled to the host system 20 directly, through a library, or over a network, and employ at interface 21 a Small Computer Systems Interface (SCSI), an optical fiber channel interface, etc. The magnetic tape cartridge 12 may be inserted in the magnetic tape drive 10, and loaded by the magnetic tape drive so that one or more read and/or write heads 23 of the recording system read and/or write information in the form of signals with respect to the magnetic tape 14 as the tape is moved longitudinally by motors 25 which rotate the reels 15, 16. The magnetic tape typically comprises a plurality of parallel tracks, or groups of tracks. In certain tape formats, such as the LTO format, the tracks are arranged in a serpentine back and forth pattern of separate wraps, as is known to those of skill in the art. Also as known to those of skill in the art, the recording system may comprise a wrap control system 27 to electronically switch to another set of read and/or write heads, and/or to seek and move the read and/or write heads 23 laterally of the magnetic tape, to position the heads at a desired wrap or wraps, and, in some embodiments, to track follow the desired wrap or wraps. The wrap control system may also control the operation of the motors 25 through motor drivers 28, both in response to instructions by the controller 18.
Controller 18 also provides the data flow and formatter for data to be read from and written to the magnetic tape, employing a buffer 30 and a read/write channel 32, as is known to those of skill in the art.
The tape drive 10 system further includes motors 25 and reels 15, 16 to move the magnetic tape 14 with respect to the read head(s) 23 such that the read head(s) may detect magnetic signals on the magnetic tape. A read channel of the read/write channel 32 digitally samples the magnetic signals detected by the read head(s) to provide digital samples of the magnetic signals for further processing.
The servo channel 100 further includes a counter 118 that is incremented every ADC clock cycle with frequency fc and is reset at the end of every servo frame. The counter 118 value k is supplied to a comparator 120, which calculates a current time kTc. The current time kTc comprises the time that has elapsed since the counter 118 was reset, and corresponds to the time that has elapsed since the beginning of the current servo frame.
The value kTc obtained from counter 118 is compared with the value of the next interpolation instant (tn), which is stored in a first circular buffer 112. A new interpolation and correlation iteration is initiated if the current time is larger than the next interpolation time instant, kTc>tn.
If the condition kTc>tn is satisfied, as determined by comparator 120, one new interpolated signal sample, r(tn), is generated, and one new correlation value, c(tn), is computed. An interpolator 104 receives the sequence of servo samples r(k) from the ADC 102 and interpolation time instants (tn) from first circular buffer 112, and outputs a sequence of interpolated servo samples r(tn) at interpolation time instants (tn) to a second circular buffer 106, where the most recent interpolated servo samples are buffered before being output to a correlator 108. The correlator 108 receives the most recent N interpolated servo samples from the second circular buffer 106 and outputs a sequence of correlation output samples c(tn) at interpolation time instants (tn) into a correlation-peak detection and peak-time computation unit 114. The correlation at time tn may be calculated according to equation (1) below:
where {hi}i=0N−1 is the sequence of length N representing the sampled reference waveform. An example of a reference waveform for xint=300 nm and N=12 is illustrated in
The correlation-peak detection and peak-time computation unit 114 receives a sequence of correlation values c(tn) along with the interpolation time instants (tn). If a correlation peak is detected within the sequence of three consecutive correlation values {c(tn), c(tn+1), c(tn+2)}, i.e., if c(tn+1)>c(tn), c(tn+1)>c(tn+2), and c(tn+1) exceeds a threshold value that is continuously adjusted depending on the signal energy, a new peak-arrival time is computed. Preferably, a linear interpolation method is used to compute the peak-arrival time according to equation (2) below:
where the index j of the correlation peak indicates the position of the detected dibit within the [4 4 5 5] sequence of servo bursts, and Tint,l denotes the estimated step interpolation interval at the l-th servo frame, that is, the time interval needed for the tape to move by the nominal step interpolation distance xint. Note that the step interpolation interval depends on the tape velocity. Other interpolation methods can be adopted to compute the peak-arrival time.
The correlation-peak detection and peak-time computation unit 114 outputs a sequence of peak arrival times (τj) to a monitoring and estimation function unit 116.
The monitoring and estimation function unit 116 computes, at least once per frame, estimates of tape velocity vest,l, of y-position of the servo reader yest,l, and of step interpolation interval Tint,l. Furthermore, it generates search windows to limit the search range for the correlation peaks, which are fed back into the correlation-peak detection and peak-time computation unit 114, and re-initializes elements of the servo channel 100 after each servo burst. As soon as the last dibit of a servo burst has been located within the monitoring and estimation function unit 116, the circular buffers 106 and 112 are reset, and J≧M initial values of interpolation instants within the next search window are written into first circular buffer 112. The parameter M indicates the maximum number of interpolated signal samples that can be processed by the synchronous servo channel per ADC clock interval, and is discussed in detail below. For example, in the embodiment of
A search window is generated by the monitoring and estimation function 116 to reduce the probability of erroneous detection of correlation peaks in the gaps between consecutive dibit locations. This search window determines the time intervals during which a correlation peak must be detected. The window is determined in dependence of the associated dibit location within the servo burst. For the first dibit within a servo burst a variable-length window is generated, where the length depends on tape velocity and on y-position of the servo reader. Preferably, the length of the window is inversely proportional to the velocity and directly proportional to the distance between consecutive servo bursts in order to account for the uncertainty in the location of the first dibit, which arises in the presence of fast variation of the y-position of the servo reader. For each dibit following the first dibit, the generation of a fixed search window is usually sufficient because of the close dibit spacing within a servo burst. If no valid correlation peak is detected within a search window, loss of timing is declared and re-acquisition of channel parameters is started.
An interpolation time computation unit 110 generates new interpolation time instants (tn) that are output to the first circular buffer 112. As mentioned earlier, the sequence {tn} at the output of the interpolation time computation unit 110 indicates the time instants at which signal samples {r(tn)} are to be determined at the interpolator output so that they are obtained at a desired fixed rate of 1/xint samples per micrometer, independent of tape velocity. The variable xint comprises a nominal step interpolation distance, expressed in micrometers. The step interpolation interval Tint, expressed in microseconds, is the time it takes for the tape to travel over the nominal step interpolation distance xint and is determined according to equation (3) as follows:
where v denotes the tape velocity in m/s.
In certain implementations, the step interpolation interval Tint and the ADC sampling interval Tc are incommensurate. In such embodiments, linear interpolation time computation 110 is preferably employed to obtain signal samples r(tn) at the interpolation time instants {tn}, which are recursively obtained according to equation (4):
t
n+1
=t
n
+T
int,l. (4)
Using equation (3), the step interpolation interval estimate at the l-th servo frame is given by Tint,l=xint/vest,l, where vest,l denotes the tape velocity estimate. In the interpolation-time computation unit 110, the n-th interpolation instant is expressed according to equation (5) below:
where kn and μn denote the integer part and the fractional part of the n-th interpolation instant, respectively, in terms of multiples of the sampling interval Tc. Linear interpolation yields the interpolated signal sample at the output of the interpolator 104 according to equation (6) below:
r(tn)=rk
The time-base generation system provides interpolation time instants such that the interpolated servo samples reproduce the signal generated by the servo reader in correspondence to points on tape that are equally spaced by the step interpolation distance xint. During track-following servo operations, such points are on a line parallel to the servo band centerline, at a distance y from the centerline.
In the embodiment of
For example, if xint=300 nm, and fc=24 MHz, then the maximum allowed tape velocity is vmax=7.2 m/s.
In certain embodiments, if the tape velocity is required to satisfy the condition v>xint/Tc, more than one interpolation instant tn may be found within one clock interval. In order to extend the velocity range while keeping the ADC clock frequency at a fixed rate, up to M interpolation steps and up to M correlation steps may be performed within one ADC clock cycle. In this case, the maximum allowed tape velocity is calculated according to equation (8) below:
The components of
In the embodiments of
After the initialization phase, the search for the correlation peaks in correspondence of the dibits of the next servo burst starts. The counter k 118, 218 is incremented synchronously with the sampling of the servo reader waveform at block 530. Based on the counter value, the current time since last counter reset is computed (at block 530) as k·Tc. The interpolation index m is reset to 1 at block 540. A comparison block 120, 220a, 220b compares (at block 550) the current time and the next interpolation time instant tn. If (at block 550) the current time doesn't exceed the interpolation time instant, kTc≦tn+m−1, no interpolation is performed within the current clock cycle and the next clock cycle with a new servo reader sample is considered by jumping back to block 530. If, on the other hand, the current time exceeds the interpolation time instant, kTc>tn+m−1, then a sequence of servo channel operations is initiated at block 560.
In a first step at block 560, the interpolation time instant tn+m−1 is provided to the interpolator 104, 204 from the first circular buffer 112, 212 (circular buffer 1). The interpolator 104, 204 generates one interpolated sample r(tn+m−1) from the most recent servo samples, r(k) and r(k−1), and outputs it into the second circular buffer 106, 206 (circular buffer 2). N interpolated samples from the second circular buffer 106, 206 are then output into the correlator 108, 208, which generates one correlation output sample c(tn+m−1) and provides it to the correlation-peak detection and peak-time computation unit 114, 214. This correlation-peak detection unit 114, 214 searches for a peak in the sequence of correlation output samples and checks whether a valid correlation peak is observed within the current peak search window. Upon detection of a valid correlation peak, the monitoring and estimation function unit 116, 216 updates the peak search window to define the search range for the next correlation peak within the servo burst, based on the current correlation peak location and the servo frame structure. The interpolation time computation unit 110, 210 generates a new interpolation time instant (tn+m−1+D1) based on the step interpolation interval Tint,l as provided by the monitoring and estimation function unit 116, 216 and outputs the step interpolation interval Tint,l to the first circular buffer 112, 212. Finally, the read and write pointers of both circular buffers 106, 206,112, 212 are advanced by one position to prepare for the next servo channel operation.
Based on the knowledge of the previously detected correlation peaks and the servo frame structure, the monitoring and estimation function unit 116, 216 detects (at block 570) whether the end of the current servo burst has been reached. If not, the monitoring and estimation function unit 116, 216 increments by one (at block 580) the interpolation index m, and the current time is compared with the next interpolation time instant, tn+m−1 at block 550. If kTc>tn+m−1, the sequence of servo channel operations is repeated at block 560. The iterations proceed by the monitoring and estimation function unit 116, 216 incrementing the interpolation index m until one of the conditions kTc≦tn+m−1 or m>M is verified. Note that the maximum number of iterations per clock interval cannot exceed M, given the limit (8) on the maximum tape velocity. If a correlation peak is detected and the end of a servo burst is reached, the monitoring and estimation function unit 116, 216 performs a test (at block 590) to determine whether the end of a servo frame has been reached. If not, servo channel elements are initialized to search for the next servo burst by jumping back to block 510. If the end of a servo frame is reached, the monitoring and estimation function unit 116, 216 estimates the servo channel parameters tape velocity vest,l, y-position of the servo reader yest,l, and the step interpolation interval Tint,l, and resets (at block 600) the counter value k to 0. The servo channel parameters may be estimated more than once per servo frame, for example at the end of every second servo burst.
If the end of tape operation has not been reached at block 610, the monitoring and estimation function unit 116, 216 initializes the servo channel 100, 200 for the processing of the next servo frame by jumping back to block 510. Otherwise, the servo channel 100, 200 halts operations at block 620.
Described embodiments provide a correlation method using a dibit reference waveform that yields optimal detection of the peaks of the correlation function. The dibit locations, which provide the required timing information for the interpolation of servo signal samples, are obtained by estimating the time instants at which the correlation peaks occur. In certain embodiments, a fixed ADC clock is utilized for the clocking of the correlator circuitry. Consequently the number of correlator output samples that must be generated per clock period is not fixed and depends on the tape velocity. The correlator circuitry includes circular buffers for the efficient computation of a variable number of correlation samples at each clock interval.
In certain embodiments, between two consecutive servo bursts, a variable search window is defined to increase the probability of correct detection of the first correlation peak of the next servo burst, even in the presence of large uncertainty in the peak-arrival time. Fixed search windows are defined within a servo burst to detect the servo dibit locations following the first dibit. The structure of the servo bursts and the narrow dibit spacing allow a precise definition of the search windows, leading to a reduced false alarm probability.
Certain embodiments provide a variable search window, which depends on the tape velocity, for the first dibit location within a new servo burst, together with the application of correlation-based dibit detection, to improve the robustness of the time-base generation against noise and rapidly changing servo channel parameters. Certain embodiments improve the quality of timing information derived from correlation peaks over the timing obtained from individual servo signal peaks, which leads to smaller jitter in the time instants for signal interpolation. This in turn results in lower standard deviation of position-error signal for track-following servo and improved reliability of LPOS symbol detection.
The described components of the servo channel 100, 200 described with respect to
The described components of the servo channel embodiments and the operations of the servo channel components described with respect to
The components shown in
Each of the embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. The embodiments may be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
The term logic may include, by way of example, software, hardware, firmware, and/or combinations of software and hardware.
The logic of
The illustrated logic of
The foregoing description of embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the embodiments be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Since many embodiments may be made without departing from the spirit and scope of the embodiments, the embodiments reside in the claims hereinafter appended or any subsequently-filed claims, and their equivalents.