1. Field
The present invention relates to phase lock loops (PLL) and delay locked loops (DLL), and more particularly to tuning and control of such loops.
2. Description of Related Art
A PLL/DLL (a locking loop circuit) may function to match a frequency and a phase of a generated local clock signal to a frequency and a phase of a clock detected in a received signal. The output of the generated clock can then be used for a wide variety of tasks, including recovery of data from the received signal. For example, a read head of a drive for reading a storage device may generate the received signal, and the loop may be used to output the generated clock for use in recovery of data in the received signal.
In such drives, the frequency and phase of the clock detected in the received signal may vary with time, and the locking loop circuit should be able to track those variations so that the generated clock remains in synchronization with the detected clock. For a typical locking loop circuit to successfully lock onto a frequency and phase of a detected clock, the typical locking loop circuit is provided with a reference frequency that is within a range of the frequency expected to be detected in the received signal. If the reference frequency is too far from an actual frequency of the clock in the received signal, the locking loop circuit may not achieve lock.
A measure of the ability of a locking loop circuit to achieve lock onto a clock having a frequency different from the provided reference frequency may be termed a lock-in range of the loop. Lock-in range is one design parameter of a number of design parameters for such locking loop circuit. Typically, locking loop circuit designers must balance lock-in range with these other parameters, and therefore lock-in range may be smaller than desirable. It would be beneficial to be able to extend lock-in range without redesigning a given locking loop circuit, and/or adversely impacting some of these other design parameters.
Inventive aspects include a method that comprises a step of causing provision of a timing reference to a locking loop circuit. The timing reference is for updating and/or setting based on an expectation of a frequency of a clocking signal. The method further comprises estimating a current frequency of the clocking signal, and updating the expectation of the frequency of the clocking signal based on the estimated current frequency.
Further aspects include a circuit comprising logic operable to estimate a frequency of a first system clock. The first system clock is trackable by a locking loop circuit to a clock encoded in a first signal. The locking loop circuit is operable to receive a timing reference adjustable based on an expected frequency of the clock encoded in the first signal and to determine whether a first comparison value between the frequency of the first system clock and the expected frequency exceeds a predetermined threshold. The logic is operable to provide for adjustment of the expected frequency by referencing the comparison value.
Still further aspects include a drive for reading storage media. The drive comprises one or more converters clockable by a respective system clock. The converters are for receiving a respective signal and outputting a respective quantized stream of data. The drive also comprises an adjustable timing reference for each of the one or more converters; each timing reference is for adjustment based on an expectation of a frequency of a clock in the respective signal of each converter. The drive further comprises a locking loop circuit for each of the one or more converters; the locking loop circuit is for tracking the respective system clock of each converter to the clock in the respective signal. The drive further comprises logic operable to estimate a frequency of each system clock, to determine a respective comparison value between the estimated frequency of each system clock and the expectation of the frequency of the clock in the respective signal of each converter, and to provide for adjustment of each expectation if one or more of the comparison values exceeds a predetermined first threshold.
For describing aspects and examples herein, reference is made to the accompanying drawings in the following description.
a-c illustrate correction of a timing reference to differences in frequency of a clocking signal from an expected frequency of the clocking signal; and
The following description is presented to enable a person of ordinary skill in the art to make and use various aspects of the inventions. Descriptions of specific materials, techniques, and applications are provided only as examples. Various modifications to the examples described herein will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit-and scope of the inventions. For example, aspects and examples described herein may be employed in a variety of storage devices and drives. Circuits and devices incorporating aspects discussed herein may be designed and may operate in a number of ways. Exemplary subject matter provided herein is for illustrating various inventive aspects, rather than for limiting applicability of any portion of that subject matter to any illustrated device.
One of ordinary skill in the art would understand that teachings related to any single inventive aspect herein may be adapted to a variety of implementations. Also, it would be understood that certain components have been separately identified herein, but such identification does not imply that such components must be separately formed from other components. Similarly, components identified herein may be divided into sub-components in other designs.
Tape drive 10 includes a tape cartridge 12 inserted into a receiver 14. Tape drive 10 includes a motor (not shown) which drives a cartridge supply reel 16 and moves tape 20 at a particular speed (e.g., 120 inches per second or more). Tape drive 10 may also include a second motor (not shown) which drives a take-up reel 18. Tape 20 may be driven in either a forward direction or a reverse direction to write data onto or read data from the tape as controlled by a motor controller circuit (not shown in
Additionally, the tape drive 10 of
Recovery of the clock signal typically involves tracking the clocking signal through frequency and phase jitter from a variety of causes. Such causes may include variations in the rate at which the data was stored on the media caused by machining tolerances, precision of motor speed control, and other variations amongst and between drive components, temperature variations, degradation of components, or other sources of jitter. Jitter may also be added to the clock/data signal by the tape drive reading the storage media for many of the same reasons. Thus, it is important to be able to track the clocking signal through this jitter.
Some methods of tracking encoded clock signals involve use of locking loop circuits that operate by feedback mechanisms to match a frequency and phase of a generated clock to the clock encoded with the data. Such locking loop circuits include phase locked loops (PLL) and delay locked loops (DLL). Some locking loop circuits are implemented with techniques associated with both phase and delay locked loops. The term locking loop circuit is used herein to emphasize that aspects disclosed herein may be used in any of a variety of circuits that track clocking signals in mixed clock/data signals, including PLL and DLL circuits.
Turning to
Characteristics of system clock 245, such as frequency and phase, are controlled by locking loop circuit 220. Locking loop circuit 220 receives the quantized output and estimates the clocking signal. The locked loop circuit 220 tracks the system clock 245 to the estimation of the clocking signal. Usually, before the locked loop circuit 220 can track the system clock 245 to the estimation of the clocking signal, the locked loop circuit 220 must achieve a lock (i.e., detect and initially bring the system clock 245 into approximate tracking with the clocking signal). The system clock 245 is also used by data detector 230 to extract a binary output 235 timed to the system clock from the quantized digital approximations of output 250. Thus, it is often the case that both proper sampling of the analog signal and subsequent conversion of the quantized output depend on a system clock accurately tracked to the clocking signal.
The locking loop circuit 220 uses a timing reference 255, which provides the locking loop circuit 220 an indication of an expected frequency of the clocking signal to be recovered from the clock/data signal. In practice, the actual frequency of the clocking signal recovered may initially be different from this expected frequency, and the actual frequency may vary with time. The timing reference 255 may include a reference clock. In this example, timing reference 255 provides a plurality of phases of the reference clock so that the locking loop circuit 220 may use the phases as a basis for interpolation to align the system clock edges with the clocking signal being recovered.
The timing reference 255 of the present example is provided by a programmable synthesizer 210 having one or more registers that control multiplication or division ratios of a global clock input 205. The timing reference 255 may also contain other features such as an ability to control when a change in the reference frequency is to be effected. Such a feature may be useful for reasons to be discussed herein.
To allow the locking loop circuit 220 to reliably achieve a lock on the clocking signal, the timing reference 255 usually must be within a predetermined lock-in range of the clocking signal. This predetermined lock-in range is usually selected based on various design criteria that may include settling time, ability to track the clocking signal once lock has been achieved, operating ranges of various sorts, process and chip integration considerations, and the like. Often, designing a wider lock-in range into locking loop circuit 220 adversely affects other performance criteria.
Assuming that the locking loop circuit has achieved a lock on the clocking signal, and is tracking the system clock 245 to the clocking signal, logic 215 estimates the frequency of the system clock 245 (which, since system clock 245 is tracked to the clocking signal, is a way to estimate the frequency of the clocking signal itself). Logic 215 may estimate the frequency by counting detected transitions over a known time interval, or by another acceptable frequency estimating means.
The logic 215 compares the estimated frequency of the system clock 245 with the expected frequency (the frequency of timing reference 255). In this example, because logic 215 controls the expected frequency through manipulation of the one or more registers in programmable synthesizer 210, the frequency of the timing reference is “known” by logic 215 and need not be measured. If the expected frequency differs from the estimated frequency by more than predetermined thresholds, the logic identifies an appropriate correction for the expected frequency. For example, a difference greater than 5% may be enough to require correction, or a difference in 5 kHZ may be enough to correct. Such thresholds will typically be selected based on the frequency of the clocking signal, how much lock-in range is available, and how much variation is likely in the frequency of the clocking signal.
After an appropriate correction is identified, the correction is applied to programmable synthesizer 210, and propagated to timing reference 255 at an appropriate point. In the present example, the appropriate correction may be identified for aligning, as closely as possible, the expected frequency with the estimated system clock 245 frequency.
For simplicity, the above examples and related description described clock recovery from a single signal. In other examples, a clock may be recovered from each of a plurality of signals, such as signals generated based on reading a plurality of tracks from a given storage medium. In one such example, circuit 200 may be replicated for each of the plurality of signals from which a clock is to be recovered. Portions of circuit 200 may also be shared for recovering clocks from the plurality of signals, depending on implementation. The operation of each circuit 200 may be substantially in accordance with the operation described above, and further features may also be implemented as described below.
One such feature helps prevent erroneous updating of the expected frequency of one or more of the plurality of signals by determining whether the clock recovered from those signals is substantially in accordance with clocks recovered from other signal(s) of the plurality. A situation where such a feature may be useful is where a defect in storage media, or some other transient noise, causes a temporary diversion in the estimated frequency of a clock being recovered from a signal. If a correction to an expected frequency of the clock were based on this temporary diversion, an error would be propagated. Instead, a correction may be based on an estimated frequency of a clock being recovered from another signal.
For example, a system for recovering a clock from each of a first signal and a second signal may include logic 215 (which may be shared partially or entirely in clock recovery from the first signal and the second signal). Logic 215 may be adapted to compare an estimated frequency of a system clock 245 associated with each of the first signal and the second signal with a respective expected frequency of a clock in each signal. Where a comparison value between each estimated frequency of each system clock 245 and a frequency of the respective clock exceeds a first threshold, an adjustment may be made. If that comparison value also exceeds a second threshold then the adjustment may be made on a comparison value from a different system clock/expectation comparison.
For example, if a comparison value between the estimated frequency of the system clock for the first signal indicates a 5% difference between the expected frequency of the clock in the first signal, then a determination to adjust the expectation may be made. However, if the comparison value indicates a 20% difference between the estimated frequency and the expected frequency then the adjustment may be made based on a comparison value between the estimated frequency of the system clock for the second signal and the expected frequency of the clock in the second signal.
In such an example, where some transient noise causes a locking loop circuit 220 tracking the clock in one of the first signal and the second signal to diverge, the system may ignore such diversion in favor of what is apparently a less divergent estimate of the frequency of that clock. Of course, where no comparison value is substantially different from another, an update to any expectation may be based on a difference between any estimated and expected frequency, and not solely on a difference between the estimated and expected frequency of the clock in that signal.
Other exemplary systems include a system for recovering clocks from three or more signals. Such a system may use an estimated frequency closest to its respective frequency for updating all estimated frequencies, exclude an estimated frequency most different from its expected frequency and average the others, average all the estimated frequencies, any combinations of such steps, or other procedures used to establish what is likely to be a more accurate estimate than an apparently divergent measured estimated frequency. Such exemplary systems may exclude use of estimated frequencies differing by more than a threshold amount from respective estimated frequencies for updating expected frequencies. The threshold amount may be a percentage deviation from an expected frequency, an absolute deviation, or the threshold amount may be based on the deviations between the estimated and expected frequencies of the clocks in the other signals.
For some applications, the clock/data signal received at input 201 may contain data that is separated into blocks. For example, in the tape drive of
In the present example where the clock/data signal includes blocks of data, the logic 215 is operable to estimate the frequency of system clock 245 multiple times during each block. The logic 215 uses the estimate of the system clock 245 frequency taken closest to an end of a given block of data as a basis for comparing the frequency of the system clock with the expected frequency. The logic determines whether the estimate of the system clock 245 frequency differs by more than the predetermined thresholds, identifies an appropriate correction, and applies that correction to the programmable synthesizer 210 before a beginning of a succeeding block of data in the clock/data signal. By applying the correction after an end of one data block and before a beginning a succeeding data block, the logic 215 reduces potential for disruption or other discontinuity in timing reference 255.
In the present example, the logic 215 implements corrections to the expected frequency (and hence to timing reference 255) by updating registers. In other examples, a frequency of global clock 205 may be changed. In other examples, both global clock 205 and programmable registers may be updated. Also, the present example calls for only adjusting the expected frequency where there is at least a certain minimum difference (a first threshold) between the estimated system clock 245 frequency and the expected frequency. In other examples, the logic 215 may always update the expected frequency to approximate as closely as possible the estimated system clock 245.
In the present example, the logic 215 is operable to apply a correction to the expected frequency to align the expected frequency with the last approximation of the system clock 245 frequency. This configuration relies on a correlation between clocking signal frequency between blocks of data. In other examples, other algorithms may be used to determine an appropriate correction to the expected frequency; these algorithms may attempt to account for other factors in predicting an expected frequency of the clocking signal in the succeeding data block and arriving at an appropriate correction. For example, algorithms may include a rate of change of the estimated system clock 245.
In examples, the logic 215 is estimating a system clock frequency tracked to each clock in a plurality of signals, and forming a comparison value between each estimated system clock frequency and a respective expected frequency of the clock in that signal. In such examples, the logic 215 may perform various comparisons between and among the comparison values, and comparison values deviant by more than a second threshold from other comparison values may be deemed erroneous (e.g., affected by transient noise) and not used as a basis for updating an expectation of the frequency of the clock in that respective signal.
In any such examples, the logic 215 may include a lookup table for mapping an appropriate correction to the expected frequency to particular register values for writing to the programmable synthesizer 210. The logic may also include a lookup table containing information regarding thresholds that govern when a correction to the expected frequency is required. These thresholds may be updatable for particular application, and such updates may be based on empirical evidence regarding clocking signal behavior.
For example, as components degrade, or as operating conditions change, empirical evidence may show that threshold updates are required. Engineering tolerances of various components may also affect choice of and updating of thresholds. The algorithms used to determine an appropriate correction may also be updatable, either by updating various factors used in the algorithms, or by changing the algorithm itself. Any thresholds and other bases of comparison described herein may be updatable. The logic may be implemented in an FPGA, an ASIC, or by using a programmable processor with associated software, or any combination of fixed and programmable logic or processors, as one of ordinary skill in the art would comprehend.
a-c illustrate how the locking loop circuit 220 and associated circuitry may function by illustration of a frequency axis 420 on which is superimposed an expected frequency 405, a lower lock-in frequency 410, and an upper lock-in frequency 415. The lower lock-in frequency 410 and the upper lock-in frequency 415 change with changes in the expected frequency 405. For example, the lower lock-in frequency may be 1% below the expected frequency 405 and the upper lock-in frequency may be 1% above the expected frequency 405. The lower 410 and the upper 415 lock-in frequencies may be non-symmetrical about expected frequency 405.
For proper lock of the clocking signal, the frequency of the clocking signal should be within the lower lock-in frequency 410 and the upper lock-in frequency 415.
The conceptual process illustrated in
A system recovering a clock from each of a plurality of signals may implement these method steps in substantially similar form with appropriate duplication of steps for each signal. Additional steps may be included, especially with regard to adjustment 525. The adjustment 525 step may include determining whether one or more of the estimated frequencies for each clock differs too much from its respective expected frequency, and an appropriate adjustment to the expected frequency of each clock may be determined based on the other estimated frequencies or any information derivable from the other signals, as described above.
Other modifications and variations would also be apparent to those of ordinary skill in the art from the exemplary aspects presented. Additionally, particular examples have been discussed and how these examples are thought to address certain disadvantages in related art. This discussion is not meant, however, to restrict the various examples to methods and/or systems that actually address or solve those disadvantages.