Digital techniques to decode signals extracted from computer-readable storage media
Methods, apparatuses, and systems describing digital techniques to decode signals extracted from computer-readable storage media. A digital signal that includes a digital representation of a repeatable runout signal having a magnitude and included in an analog signal is obtained. An estimate of the magnitude of the RRO signal based on the digital signal is determined. The estimate is provided for decoding the digital signal to extract the included data by adapting a detector gain target in accordance with the estimate. The detector gain target is a function of a desired amplitude of the RRO signal.
Latest Marvell International Ltd. Patents:
- Systems and methods for an inductor structure having an unconventional turn-ratio in integrated circuits
- ON-CHIP PARAMETER GENERATION SYSTEM WITH AN INTEGRATED CALIBRATION CIRCUIT
- PROCESSING UNIT AND METHOD FOR COMPUTING A CONVOLUTION USING A HARDWARE-IMPLEMENTED SPIRAL ALGORITHM
- ROW ADDRESS COMPARATOR FOR A ROW REDUNDANCY CONTROL CIRCUIT IN A MEMORY
- Methods and apparatus for combining received uplink transmissions
This application claims the benefit of the priority of U.S. Provisional Application Ser. No. 61/095,150, filed Sep. 8, 2008, and entitled “Improve RRO Decoding Performance by Adapting VTB Decoder Gain Target,” and of U.S. Provisional Application Ser. No. 61/095,127, filed Sep. 8, 2008, and entitled “Improve RRO Decoding Performance by Adapting VGA Gain.” The entire contents of both provisional applications are incorporated herein by reference.
BACKGROUNDComputer-readable storage media are used in computer systems to provide storage for data. For example, hard disk drives, that each include multiple storage disks are used to store large amounts of data. Data encoded on a hard disk drive is stored and retrieved using a read/write transducer or head mounted on an actuator. Using a servo control system, the head is positioned over a disk that is rotated at high RPM (revolutions per minute), and the data is written on and read from the disk. Specifically, the data is encoded in servo wedges on data tracks positioned concentrically on the computer-readable storage disks. Each servo wedge includes a main servo and a repeatable runout (RRO). The main servo includes a Gray Code on which track identification data is encoded. Read-out heads scan servo wedges and can provide analog signals that represent the data encoded on the servo wedges. The analog signals include a main servo signal and an RRO signal representing the main servo and the RRO, respectively.
SUMMARYThe present disclosure includes systems and techniques relating to digital techniques to decode signals extracted from computer-readable media.
The described systems and techniques can be implemented in processing circuitry, for example, an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The described systems and techniques can also be implemented in electronic circuitry, computer hardware, firmware, software, or in combinations of them, such as the structural means disclosed in this specification and structural equivalents thereof. This can include at least one computer-readable medium embodying a program operable to cause one or more data processing apparatus (e.g., a signal processing device including a programmable processor) to perform operations described. Thus, program implementations can be realized from a disclosed method, system, or apparatus, and apparatus implementations can be realized from a disclosed system, computer-readable medium, or method. Similarly, method implementations can be realized from a disclosed system, computer-readable medium, or apparatus, and system implementations can be realized from a disclosed method, computer-readable medium, or apparatus.
For example, the disclosed embodiment(s) below can be implemented in various systems and apparatus, including, but not limited to, a special purpose data processing apparatus (e.g., a wireless access point, a remote environment monitor, a router, a switch, a computer system component, a medium access unit), a mobile data processing apparatus (e.g., a wireless client, a cellular telephone, a personal digital assistant (PDA), a mobile computer, a digital camera), a general purpose data processing apparatus (e.g., a minicomputer, a server, a mainframe, a supercomputer), or combinations of these.
In general, one innovative aspect of the invention can be implemented in a method including obtaining a digital signal that includes a digital representation of a preamble of a repeatable runout (RRO) signal included in an analog signal. The RRO signal has a magnitude. An estimate of the magnitude of the RRO signal is determined based on the digital signal. The estimate of the magnitude is provided for decoding the digital signal to extract data that is included in the analog signal by adapting a detector gain target in accordance with the estimate. The detector gain target is a function of a desired amplitude of the RRO signal.
This, and other aspects, can include one or more of the following features. The detector gain target can be adapted in accordance with the estimate by setting the detector gain target to be equal to the estimate. Obtaining the digital signal can include receiving the analog signal from a read-out head configured to read data position information stored in servo wedges on a data track of a computer-readable storage medium. The received analog signal can be amplified prior to converting the RRO signal into the digital signal. The RRO signal can be converted into the digital signal. The digital signal can include the data. The RRO signal can be amplified prior to converting the RRO signal into the digital signal. The detector gain target can be adapted in accordance with the estimate. The digital signal can be decoded to extract the data based on a Viterbi algorithm so that the detector gain target established to decode the RRO signal matches the amplitude of the RRO signal. The digital signal can be filtered after converting the RRO signal into the digital signal and before decoding the digital signal. The estimate can be determined after filtering the digital signal. The analog signal can include a main servo signal. The method can further include receiving the main servo signal that has an associated default detector gain target and replacing the associated default detector gain target by the detector gain target upon determining the estimate. Determining the estimate of the RRO signal can include determining the estimate of the RRO signal using a Discrete Fourier Transformation (DFT) based on sample signals extracted from the preamble of the RRO. Another innovative aspect of the invention can be implemented as an apparatus including an input element, an output element, and processing circuitry coupled with the input element and the output element, and configured to perform operations. The operations include obtaining a digital signal that includes a digital representation of a preamble of a repeatable runout (RRO) signal included in an analog signal. The RRO signal has a magnitude. An estimate of the magnitude of the RRO signal is determined based on the digital representation of the preamble. The estimate of the magnitude is provided for decoding the digital signal to extract data that is included in the analog signal by adapting a detector gain target in accordance with the estimate. The detector gain target is a function of a desired amplitude of the RRO signal.
This, and other aspects, can include one or more of the following features. The operations can further include receiving a subsequent analog signal encoded on a servo wedge. The subsequent analog signal can include another RRO signal including respective data. The subsequent RRO signal, amplified by the detector gain target, can be converted into a subsequent digital signal that includes the respective data. The subsequent digital signal can be decoded to extract the respective data so that the detector gain target established to decode the other RRO signal matches a subsequent amplitude of the subsequent RRO signal.
Yet another innovative aspect of the invention can be implemented in a system including a receiver configured to receive an analog signal encoded on a servo wedge. The analog signal includes a repeatable runout (RRO) signal that includes a preamble representing a magnitude of the RRO signal and data. The system includes an analog front end including an analog to digital converter configured to convert the RRO signal into a digital signal that includes the data. The RRO signal is amplified prior to converting the RRO signal into the digital signal. The system includes processing circuitry configured to perform operations that include determining an estimate of a magnitude of the RRO signal based on sample signals extracted from a portion of the digital signal representing the preamble, and adapting a detector gain target in accordance with the estimate. The detector gain target is a function of a desired amplitude of the RRO signal. The system also includes a decoder to decode the digital signal to extract the data so that the detector gain target matches the amplitude of the RRO signal. This, and other aspects can include one or more of the following features. The decoder can be configured to decode the digital signal based on a Viterbi algorithm.
The described systems and techniques can cause a read-out head, that reads data position information stored in servo wedges on data tracks of a computer-readable storage medium, to make improved decisions regarding the position of the servo wedges on the data tracks. Specifically, decisions that the read-out head makes based on RRO fields included in data tracks can be improved. Because an estimate of magnitude is provided to a decoder for decoding a digital signal and extracting data included in the digital signal, decoder error can be decreased. Further, because detector gain target for each RRO field is adjusted based on an estimate of the magnitude of the RRO signal, the performance obtained from each RRO signal can be improved. Furthermore, the methods described here negate a need to store detector gain target values, thereby reducing costs associated with storage.
Details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, objects and advantages may be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTIONSystems, apparatuses, and techniques for decoding signals obtained from a read-out head configured to read data position information stored on data tracks of a computer-readable storage medium are described. The data position information is stored in servo wedges on the data tracks. An analog signal obtained from a servo wedge on a data track includes a portion of the data position information. The analog signal includes a main servo signal and a repeatable runout (RRO) signal, each of which have respective data. Using techniques to determine the data in the RRO signal, an estimate of an amplitude of the RRO signal is determined and used to decode the analog signal. The systems, apparatuses, and techniques described herein can be implemented as one or more devices, such as one or more integrated circuit (IC) devices (e.g., a wireless communication device, an electronic data storage device, a channel medium access access/control device). For example, the systems and techniques disclosed can be implemented in a wireless local area network (WLAN) transceiver device (e.g., a WLAN chipset) suitable for use in an OFDM MIMO (Orthogonal Frequency Division Multiplexing Multiple-In-Multiple-Out) system. An example of such a system is described with reference to
The read-out head 120 reads the data encoded on a servo wedge 115 and provides an analog signal that includes the data. The system 100 includes components configured to extract the data that is included in the analog signal. The components include a high-pass filter (HPF) 122 that receives the analog signal from the read-out head 120 and filters the analog signal. The filtered signal is input to a variable gain amplifier (VGA) 124 that amplifies an amplitude of the analog signal. The amplified signal is further filtered using a continuous-time filter (CTF) 126 prior to being converted into a digital signal using an analog to digital converter (ADC) 128. The digital signal is further filtered using a finite impulse response (FIR) filter 134 and provided as input to a decoder 136, for example, a Viterbi (VTB) decoder. The decoder 136 decodes the digital signal to extract the data that is included in the analog signal and provides the extracted data as an output 138.
As described with reference to
As a precursor to describing the techniques, basic information about the encoding of data in a servo wedge is described with reference to
This difference between the main servos of adjacent servo wedges and the similarity between the RRO servo portions of the adjacent servo wedges is illustrated schematically in
In some implementations, the RRO signals on adjacent servo wedges are identical to each other. In some implementations, the RRO signals on adjacent servo wedges are substantially identical, yet different, although the differences are insignificant. In other implementations, the differences between the RRO signals of adjacent servo wedges are less significant than the differences between the main servo signals of the adjacent servo wedges. In such implementations, as described later, the processing of the analog signal can introduce a latency in obtaining an output. In any case, the output obtained is the data encoded in the RRO of the servo wedge that relates to data positions using which the read-out head 120 can retrieve data stored on the computer-readable medium 105. A system for providing such an output is described with reference to
x(t)=A*sin(2π*(fsfg/4)*t+α)+v(t) (1)
In equation (1), A is the unknown peak magnitude of the RRO signal 410, α is the unknown phase, and v(t) is the noise in the signal.
The analog front-end 420 includes the ADC 128 that receives and converts the analog RRO signal 410 into a digital representation of the RRO signal 410. In some implementations, described in detail later, the analog front-end 420 includes an amplifier 515 to amplify the RRO signal 410 prior to input to the ADC 128. Because the RRO signal 410 at the input to the ADC 128 is periodic, the ADC output, i.e., the digital representation of the RRO signal 410 may also be periodic.
The sample extraction unit 505 periodically extracts a sample from the digital representation of the RRO signal 410. The expressions for the signals vary depending on the baud rate, as shown in equations (2) and (3). If sampling rate is fsfg, then the signal at the nth sampling instant is:
x(n)=A*sin(0.5πn+α)+v(n) (2)
If the sampling rate is 2*fsfg, then the signal at the nth sampling instant is:
x(n)=A*sin(0.25πn+α)+v(n) (3)
In some implementations, the sample extraction unit 505 collects RRO signal samples for M periods. The 4*M samples can be expressed as:
x(n)=A*sin(0.5πn+α)+v(n), n=0, 1, . . . , 4*M−1
In some implementations, the processor 425 includes an estimation unit 510 to estimate the magnitude of the RRO signal 410 based on the samples extracted by the sample extraction unit 505. The estimation unit 510 can be configured to perform Discrete Fourier Transformation (DFT) on the extracted samples. In some implementations, the estimation unit 510 performs DFT at frequency, fsfg/4, as represented by equation (4):
In equation (4), 8 represents an estimate of the magnitude of the RRO preamble, A.
In equation (4), the term
has only four possible values: 1, −j, −1, j. In such implementations, the estimation unit 510 performs addition and subtraction operations to estimate the unknown peak magnitude of the RRO signal 410, A. In such implementations, the estimation unit 510 equates |2*B/(4*M)| as the estimate of A. This equation is based on equation (5) relating B and A for noiseless signals.
|B|=(2*A)/(4*M) (5)
Equation (5) is valid if the harmonic components in the signal can be ignored.
In some implementations, the estimation unit 510 is configured to perform a 4 point DFT to estimate the magnitude of the RRO signal 410. In such implementations, the digital representation of the RRO signal 410 is down-sampled. In other words, every other sample is discarded from the DFT operation. The resultant signal will be the same as that used in baud-rate sampling systems. Thus, the methods used in baud-rate sampling system can be used to estimate the magnitude of the RRO signal 410 in over-sampling systems. A baud-rate system is one in which there is one sample generated per information symbol. An oversampled system is one in which there is more than one sample generated per information symbol.
In some implementations, the estimation unit 510 is configured to perform an 8 point DFT to estimate the magnitude of the RRO signal 410. In such implementations, the sample extraction unit 505 collects samples from the digital representation of the RRO signal 410 for M periods. The 8*M samples can be expressed using equation (6):
x(n)=A*sin(0.25πn+α)+v(n), n=0, 1, . . . , 8*M−1 (6)
The estimation unit 510 performs the DFT at frequency, fsfg/4, as represented by equation (7):
Subsequently, the estimation unit 510 equates |2*B/(8*M)| as the estimate of the magnitude of the RRO signal 410. In such implementations, the operations that the estimation unit 510 performs include additions, subtractions, and multiplications, for example, with complex coefficients.
When the estimation unit 510 uses an averaged 4 point DFT to estimate the magnitude of the RRO signal 410, the method divides the input, for example, input from the ADC 128, into two interleaved sub-streams, and uses only one sub-stream to estimate the magnitude of the RRO signal 410. In some implementations, the DFT can be performed over the discarded sub-stream. In such implementations, the estimation unit 510 can equate the average of the estimates of the magnitude, obtained from each sub-stream, as the magnitude of the RRO signal 410.
In some implementations, the processor 425 adapts the detector gain target of the decoder 430 to be [A, A, −A, A] or [−A, −A, A, A]. In other implementations, the processor 425 adapts the detector gain target to be a fraction of the estimated magnitude of the RRO signal 410. To do so, rather than sampling the peak magnitude of the RRO signal 410, the sample extraction unit 505 extracts samples from the shoulders of the periodic RRO signal 410. For example, the processor 425 adapts the detector gain target to be [A/√{square root over (2)}, A√{square root over (2)}, −A/√{square root over (2)}, −A/√{square root over (2)}] or [−A/√{square root over (2)}, −A/√{square root over (2)}, A/√{square root over (2)}, A/√{square root over (2)}] in baud-rate sampling systems. In over-sampling systems, the processor 425 adapts the detector gain target for the RRO signal 410 to be [0, A/√{square root over (2)}, A, A/√{square root over (2)}, 0, −A/√{square root over (2)}, −A, −A/√{square root over (2)}]. In such systems, the decoder 430 uses the sub-stream corresponding to shoulder samples. Therefore, in both sampling systems, the samples for the RRO signal 410 used by the decoder 430 will be either [A/√{square root over (2)}, A/√{square root over (2)}, −A/√{square root over (2)}, −A/√{square root over (2)}] or [−A/√{square root over (2)}, −/√{square root over (2)}, A/√{square root over (2)}, A/√{square root over (2)}].
There is a connection between the magnitude of the preamble of the RRO signal 410 and the magnitudes for RRO SM/Data, 235, 240. For example, user-bits for RRO SM/Data are encoded in biphase code, for example, Manchester code. User bit 1 is encoded as [1, 1, 0, 0] and user bit 0 is encoded as [0, 0, 1, 1]. In this example and in implementations in which the decoder 430 is a Viterbi decoder, the equalization target is PR4 (response=1−D2). Then, an implementation of the Viterbi algorithm employed by the Viterbi decoder uses four samples for a user-bit translation. When equalization is optimum, these samples are:
[−A/√{square root over (2)}, −A/√{square root over (2)}, A/√{square root over (2)}, A/√{square root over (2)}] for transition of user-bit 0 to user-bit 0;
[0, 0, −A/√{square root over (2)}, −A/√{square root over (2)}] for transition of user-bit 0 to user-bit 1;
[0, 0, A/√{square root over (2)}, A/√{square root over (2)}] for transition of user-bit 1 to user-bit 0; and
[A/√{square root over (2)}, A/√{square root over (2)}, −A/√{square root over (2)}, −A/√{square root over (2)}] for transition of user-bit 0 to user-bit 0.
Note that the value, A/√{square root over (2)}, or a scaled version of the estimate of the peak value of the magnitude of the RRO signal 410, A, is the Viterbi decoder gain target in implementations in which the decoder 430 employs the Viterbi algorithm to decode the RRO signal 410 to extract the RRO data. Thus, in the aforementioned technique, the value of A is estimated by performing DFT over extracted samples of the RRO signal 410. The Viterbi decoder gain target is adapted according to the estimate so that the Viterbi decoder gain target matches the RRO signal 410. The process performed by the apparatuses shown in
In some implementations, the output of the ADC 128 is provided to the FIR 134, as shown in
At 625, the process 600 estimates the magnitude of the RRO signal based on the digital signal. Further, at 630, the process 600 adapts the detector gain target of the decoder in accordance with the estimated. For example, the sample extraction unit 505 extracts samples from the digital representation of the RRO signal 410, and the estimation unit 510 estimates the magnitude of the RRO signal 410 from the extracted samples, as described previously. In some implementations, to estimate the magnitude of the RRO signal 410, the sample extraction unit 505 in the processor 425 extracts samples from the same source as the decoder 430. For example, if the decoder 430 receives input from the FIR 134, then the sample extraction unit 505 extracts samples from the output of the FIR 134. Alternatively, if the decoder 430 receives input from the ADC 128, then the sample extraction unit 505 extracts samples from the output of the ADC 128. In other implementations, the samples can be extracted from the ADC 128 although the decoder 430 receives input from the FIR 134. In such implementations, a relationship between the output of the ADC 128 and that of the FIR 134 can be determined, and the samples extracted from the output of the ADC 128 can be scaled to match the output of the FIR 134. Scaling the output of the ADC 128 can be performed by multiplying an output of the estimation unit 510 by a vector, γ. In some implementations, the gain of FIR 134 at frequency, fsfg/4, equals 1. In such implementations, the sample extraction unit 505 can extract samples from either the output of the ADC 128 or the output of the FIR 134, regardless of the source from which the decoder 430 receives input. At 635, the process 600 decodes the digital signal to extract data in the RRO signal.
Using the above-described digital techniques, the decoder 430 decodes the RRO signal 410 to obtain encoded data. To obtain the data encoded in the main servo signal 405, the decoder 430 uses a default detector gain target associated with the main servo signal 410. Once the main servo signal 405 is decoded, and prior to decoding the RRO signal 410, the detector gain target is adapted, as described with reference to
In some implementations, instead of using the default detector gain target to decode the main servo signal 405, samples can be extracted from the digital representation of the main servo signal 405, the magnitude of the main servo signal 405 can be estimated, and the detector gain target for decoding the main servo signal 405 can be adapted in accordance with the estimated magnitude. In such implementations, the servo timing loop (STL) 130 is configured to adjust the sampling phase of the ADC 128 so that the sampling is performed at correct instants. In alternative implementations, the STL 130 can receive input from the FIR 134. In some implementations, the STL 130 can be configured to adjust the sampling phase when the estimate of the magnitude of the RRO signal 410 is determined. Alternatively, the STL 130 can be used only for estimating the main servo signal 405 magnitude. Because the RRO signal 410 preamble is short, the RRO signal 410 need not use the STL 130. Instead, the RRO signal 410 can use a scheme, for example, the RRO Zero-Padded Suffix (ZPS), to control sampling. In some implementations, after adapting the detector gain target of the decoder 430 to decode the RRO signal 410, the detector gain target of the decoder 430 can be restored to the default detector gain target of the main servo signal 410 to decode the signal 410 of the subsequent servo wedge. The restoring is described with reference to
In implementations employing a model that the RRO signals 410 of different servo wedges are identical, the detector gain target used by the decoder to obtain the RRO data encoded on a subsequent servo wedge can be equal to the detector gain target for the current servo wedge. The detector gain target of the subsequent servo wedge can be the same as the detector gain target of the current servo wedge in a model that assumes that the RRO signals of different servo wedges, for example, servo wedges that are positioned on the same data track, are different, but the differences are insignificant. In both of the aforementioned models, the processor 425 can estimate the magnitude of the RRO signal 410 for a current servo wedge, adapt the detector gain target based on the estimate of the magnitude, but use the adapted detector gain target to obtain the data encoded in the RRO signal 410 obtained from the subsequent servo wedge. In implementations employing a model that assumes that the RRO signals of different servo wedges are different, a detector gain target can be determined for the RRO signal 410 obtained from each servo wedge. In such implementations, the detector gain target determined for a current servo wedge can be used to obtain data in the RRO signal of the subsequent servo wedge. Alternatively, in such implementations, the detector gain target can be used to obtain data in the RRO signal of the current servo wedge itself. In such implementations, a latency in obtaining the encoded data is introduced in comparison to implementations in which calculations performed on a current wedge are used on a subsequent wedge.
Alternatives to the aforementioned digital techniques for decoding an RRO signal 410 to obtain data encoded on a servo wedge 115 include analog techniques that employ amplifiers and gain control units that regulate the gain of the amplifiers. Such techniques are described with reference to the figures that follow.
In some implementations, input to the gain controller 1010 can be taken from the output of the ADC 128. In alternative implementations, input to the gain controller 1010 can be taken from the output of the FIR 134. This is selected by assigning a value to the gain control input register 1225. The value can be fixed or variable. In some implementations, the operations of sampling, estimating, and generating the error signal are performed only on the RRO signal 410. In alternative implementations, these operations are performed on both the main servo signal 405 and the RRO signal 410. The apparatus can be configured to toggle between the two implementations by enabling the gain controller 1010 to include or exclude the main servo signal 405 from the sampling and extracting operations.
If the gain controller 1010 is enabled, then the Main Servo Gain Error at block 1205 will generate an error signal for the main servo signal 405 by comparing the input signal received from the ADC 128 against the specified level. In some implementations, the gain controller 1010 includes a Main Servo Gain Loop Filter 1215 to filter the gain error represented by the error signal. The gain controller 1010 adjusts the gain of the amplifier 1100 based on the gain error. The amplifier 1100 adjusts the amplification of the analog signal 400, which causes the amplification of the main servo signal 405 to be adjusted.
After the main servo signal 405 amplification is adjusted based on the error signal, the gain controller 1010 is disabled until the PES signals included in the main servo signal 410 are transmitted by the amplifier 1100. Consequently, all portions of the main servo signal 410 are amplified by the same gain. When the RRO signal 410 is received, the gain controller 1010 is re-enabled. Subsequently, the gain controller 1010 generates an error signal for the RRO signal. To do so, the gain controller 1010 includes an RRO Gain Error at block 1210 that receives an estimate of the amplitude of the RRO signal 410, which is provided by the estimation unit 510, prior to generating the error signal. In some implementations, the gain controller 1010 includes an RRO Gain Loop Filter 1220 to filter the gain error of the RRO signal. An example of the gain error signal generated by the RRO Gain Error block is:
rro_gain_err=Pd−Aest (8)
In equation (8), Pd is the desired peak amplitude, and Aest is the estimated preamble peak amplitude. The operations performed by the RRO Gain Loop Filter 1220 can be represented as:
filter_out(n)=filter_out(n−1)+BW*rro_gain_err (9)
In equation (9), BW is the loop filter bandwidth, filter_out(n) is the filter output after update based on the current RRO signal 410 accessed from a current servo wedge, and filter_output(n−1) is the filter output based on the previous RRO signal accessed from a previous servo wedge.
The RRO Gain Loop Filter 1220 can have the same structure as the Main Servo Gain Loop Filter 1215. The bandwidths of the two filters can be different. In some implementations, the preamble peak amplitude for the main servo signal 405 is obtained by directly detecting the preamble peak and measuring the peak amplitude. This operation is enabled by the length of the main servo preamble which allows performing regular timing acquisition and can negate the need for sample extraction and estimation.
Based on the error signal generated by the RRO Gain Error at block 1210, the gain controller 1010 adjusts the gain of the amplifier 1100. The amplifier 1100 amplifies the RRO signal 410, specifically the RRO preamble. Subsequently, the gain controller 1010 is disabled and the gain of the amplifier 1100 is held constant until the entire RRO signal 410 is amplified. In some implementations, the value of the gain error signal generated by the RRO Gain Error at block 1210 can be stored in a gain control level memory register 1230 for future use, as described below.
In some implementations, the gain controller 1010 controls the amplifier 1100 to amplify the RRO signal 410 of the current wedge based the determined gain. In such implementations, a latency may be introduced in the apparatus. In some implementations, the gain controller 1010 amplifies the RRO signal 410 obtained from the current wedge using the default gain, and amplifies the RRO signal obtained from the subsequent wedge using the gain determined based on the error signal. In such implementations, the gain controller 1010 stores the gain determined based on the error signal in the gain control level memory register 1230. The gain controller 1010 delays the provision of the generated error signal for application to a subsequent RRO signal encoded in a subsequent servo wedge.
In such implementations, the apparatus receives an analog representation of the subsequent RRO signal from the subsequent servo wedge. The gain controller 1010 provides the error signal generated for the current wedge to the amplifier. The amplifier amplifies the subsequent RRO signal based on the error signal generated for the current servo wedge. The amplified RRO signal of the subsequent servo wedge is converted into a digital representation by the ADC. The operations of sampling and estimating are performed on the digital representation, as described previously. The gain controller receives the estimate of the peak amplitude of the RRO signal of the subsequent servo wedge, generates another error signal, and stores the error signal for application to the RRO signal that the apparatus will receive from the servo wedge that follows in a sequence of servo wedges encoded on a data track of the computer-readable storage medium. The sequence includes n servo wedges encoded on the circular data track. When the analog signal is received from the nth servo wedge that is prior to the current servo wedge, the gain controller 1010 generates an nth error signal and applies the nth error signal to control a gain of the amplified RRO signal of the current servo wedge.
A few embodiments have been described in detail above, and various modifications are possible. The disclosed subject matter, including the functional operations described in this specification, can be implemented in electronic circuitry, computer hardware, firmware, software, or in combinations of them, such as the structural means disclosed in this specification and structural equivalents thereof, including a program operable to cause one or more data processing apparatus to perform the operations described (such as a program encoded in a computer-readable medium, which can be a memory device, a storage device, a machine-readable storage substrate, or other physical, machine-readable medium, or a combination of one or more of them).
The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A program (also known as a computer program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
While this specification contains many specifics, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments.
Other embodiments fall within the scope of the following claims. In some implementations, the digital and analog techniques described above can be combined to obtain the RRO signal data. For example, a detector gain target of the decoder can be adapted based on the estimate of the magnitude of the RRO signal. Simultaneously, based on the estimate of the magnitude, a gain of the amplifier can also be controlled.
Claims
1. A method comprising:
- obtaining a digital signal that includes a digital representation of a preamble of a repeatable runout (RRO) signal included in an analog signal, the RRO signal having a magnitude;
- determining, by processing circuitry, an estimate of the magnitude of the RRO signal based on the digital signal; and
- providing, by the processing circuitry, the estimate of the magnitude for decoding the digital signal to extract data that is included in the analog signal, the decoding comprising adapting a detector gain target in accordance with the estimate, the detector gain target being a function of a desired amplitude of the RRO signal.
2. The method of claim 1, wherein the detector gain target is adapted in accordance with the estimate by setting the detector gain target to be equal to the estimate.
3. The method of claim 1, wherein obtaining the digital signal comprises:
- receiving the analog signal from a read-out head configured to read data position information stored in servo wedges on a data track of a computer-readable storage medium;
- amplifying the received analog signal prior to converting the RRO signal into the digital signal;
- converting the RRO signal into the digital signal, the digital signal including the data, wherein the RRO signal is amplified prior to converting the RRO signal into the digital signal;
- adapting the detector gain target in accordance with the estimate;
- decoding the digital signal to extract the data based on a Viterbi algorithm so that the detector gain target established to decode the RRO signal matches the amplitude of the RRO signal; and
- filtering the digital signal after converting the RRO signal into the digital signal and before decoding the digital signal, wherein the estimate is determined after filtering the digital signal.
4. The method of claim 1, wherein the analog signal includes a main servo signal, the method further comprising:
- receiving the main servo signal that has an associated default detector gain target; and
- replacing the associated default detector gain target by the detector gain target upon determining the estimate.
5. The method of claim 1, further comprising:
- receiving a subsequent analog signal encoded on a servo wedge, the subsequent analog signal including another RRO signal including respective data;
- converting the subsequent RRO signal amplified by the detector gain target into a subsequent digital signal that includes the respective data; and
- decoding the subsequent digital signal to extract the respective data so that the detector gain target established to decode the other RRO signal matches a subsequent amplitude of the subsequent RRO signal.
6. The method of claim 1, wherein determining the estimate of the RRO signal comprises determining the estimate of the RRO signal using a Discrete Fourier Transformation (DFT) based on sample signals extracted from the preamble of the RRO.
7. The method of claim 1, wherein the RRO signal is a periodic signal and wherein determining the estimate of the RRO signal further comprises:
- sampling signals for M periods of the periodic signal, the sampling comprising collecting sample signals from a digital representation of the preamble of the RRO;
- performing a DFT at a frequency; and
- assigning a function of the output of the DFT as the estimate.
8. The method of claim 7, wherein performing the DFT comprises performing an averaged 8-point DFT.
9. An apparatus comprising:
- an input element;
- an output element; and
- processing circuitry coupled with the input element and the output element and configured to perform operations comprising: obtaining a digital signal that includes a digital representation of a preamble of a repeatable runout (RRO) signal included in an analog signal, the RRO signal having a magnitude; determining an estimate of the magnitude of the RRO signal based on the digital representation of the preamble; and providing the estimate of the magnitude for decoding the digital signal to extract data that is included in the analog signal, the decoding comprising adapting a detector gain target in accordance with the estimate, the detector gain target being a function of a desired amplitude of the RRO signal.
10. The apparatus of claim 9, wherein the estimate is equal to a fraction of a peak value of an amplitude of the RRO signal, wherein the fraction is 1/sqrt(2).
11. The apparatus of claim 9, wherein the apparatus further includes:
- a receiver configured to receive the analog signal from a read-out head configured to read data position information stored in servo wedges on a data track of a computer-readable storage medium;
- an amplifier configured to amplify the received analog signal prior to converting the RRO signal into the digital signal, wherein
- the operations for obtaining the digital signal further include: converting the RRO signal into the digital signal, wherein the RRO signal is amplified prior to converting the RRO signal into the digital signal, and adapting the detector gain target in accordance with the estimate.
12. The apparatus of claim 9, further comprising a decoder for decoding the digital signal based on a Viterbi algorithm to extract the data.
13. The apparatus of claim 9, wherein the analog signal includes a main servo signal, the operations further comprising:
- receiving the main servo signal that has an associated default detector gain target; and
- replacing the default detector gain target by the detector gain target upon determining the estimate.
14. The apparatus of claim 9, the operations further comprising:
- receiving a subsequent analog signal encoded on a servo wedge, the subsequent analog signal including another RRO signal including respective data;
- converting the subsequent RRO signal amplified by the detector gain target into a subsequent digital signal that includes the respective data; and
- decoding the subsequent digital signal to extract the respective data so that the detector gain target established to decode the other RRO signal matches a subsequent amplitude of the subsequent RRO signal.
15. The apparatus of claim 9, wherein the RRO signal is periodic and wherein the operations for determining the estimate of the RRO signal further include:
- collecting the sample signals for M periods of the periodic signal;
- performing, at a frequency, an averaged 8-point Discrete Fourier Transformation (DFT); and
- assigning a function of the output of the DFT as the estimate.
16. A system comprising:
- a receiver configured to receive an analog signal encoded on a servo wedge, the analog signal including a repeatable runout (RRO) signal that includes a preamble representing a magnitude of the RRO signal and data;
- an analog front end including an analog to digital converter configured to convert the RRO signal into a digital signal that includes the data, wherein the RRO signal is amplified prior to converting the RRO signal into the digital signal;
- processing circuitry configured to perform operations including: determining an estimate of a magnitude of the RRO signal based on sample signals extracted from a portion of the digital signal representing the preamble, and adapting a detector gain target in accordance with the estimate, the detector gain target being a function of a desired amplitude of the RRO signal; and
- a decoder to decode the digital signal to extract the data so that the detector gain target matches the amplitude of the RRO signal.
17. The system of claim 16, wherein the decoder is configured to decode the digital signal based on a Viterbi algorithm.
18. The system of claim 16, wherein the processing circuitry is configured to adapt the detector gain target to be equal to the estimate.
19. The system of claim 16, further comprising a variable gain amplifier configured to amplify the RRO signal to have the desired magnitude.
20. The system of claim 19, further comprising an adjustable gain control mechanism configured to control amplifying of the RRO signal to the desired magnitude.
Type: Grant
Filed: Sep 4, 2009
Date of Patent: Jul 19, 2011
Assignee: Marvell International Ltd. (Hamilton)
Inventors: Zaihe Yu (Santa Clara, CA), Michael Madden (Mountain View, CA)
Primary Examiner: Jason C Olson
Application Number: 12/554,771
International Classification: G11B 5/09 (20060101);