Various embodiments of the present invention provide systems and methods for detecting timing errors.
Some data processing systems that receive stored or transmitted electronic data use sampling circuits to generate a digital representation of the electronic data. To assist the data processing system to sample the electronic data at the correct frequency and phase. A timing error detector determines when the sampling is performed at an incorrect frequency or phase. In some instances, a preamble pattern is inserted into the electronic data, enabling the timing error detection. However, after the preamble pattern has ended, timing errors can reoccur due to intrinsic timing drift in the system, characteristics of the storage or transmission medium, and the environment of the data processing system.
Embodiments of the present invention provide systems and methods for detecting timing errors with decision feedback from a diversity loop detector.
In some embodiments, an apparatus for detecting timing errors includes an analog to digital converter circuit, a diversity loop detector and a timing error calculation circuit. The analog to digital converter circuit is operable to convert an input signal into a series of digital samples. The diversity loop detector is operable to apply a data detection algorithm to a plurality of signals derived from the series of digital samples at different phase offsets, to select one of the phase offsets, and to yield a detected output with the selected phase offset. The timing error calculation circuit is operable to calculate a timing error of the analog to digital converter circuit based at least in part on the selected phase offset.
This summary provides only a general outline of some embodiments according to the present invention. Many other embodiments of the present invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings.
A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
A timing error detector is disclosed which provides an accurate and stable timing error estimation, driving a timing recovery loop. The timing error detector uses decision feedback from a diversity loop detector to apply one of a number of phase correction terms. The diversity loop detector performs a data detection algorithm to each of a number of phase shifted versions of a channel input. Based on the results of the data detection algorithms, one of the phase shifted results that yields the best detection results is selected, and the phase offset of the selected phase shifted version of the channel input is applied in the timing error detector. The process is performed either continuously or periodically, and as timing errors change, the diversity loop detector will select different phase shifted versions of the channel input and the phase offset is changed by the timing error detector.
Turning to
Analog to digital converter 104 converts analog signal 102 into a corresponding series of digital samples 106, or X samples. Analog to digital converter 104 may be any circuit known in the art that is capable of producing digital samples corresponding to an analog input signal. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of analog to digital converter circuits that may be used in relation to different embodiments of the present invention. In some embodiments, the phase and frequency of the sampling are controlled by a clock signal 156 from a phase locked loop 154.
Digital samples 106 are provided to a diversity loop detector 110, which applies a data detection algorithm to each of a number of phase shifted versions of the digital samples 106, resulting in a detected output 112, also referred to as hard decisions or non-return to zero (nrz) data. In some embodiments of the present invention, diversity loop detector 110 is a soft-input hard-output detector such as, but not limited to, a Viterbi algorithm data detector circuit or a maximum a posteriori (MAP) data detector circuit as are known in the art. In some embodiments, diversity loop detector 110 applies equalization processes with different phase offsets to the digital samples 106 to produce the phase shifted version of the digital samples 106, each of which are then passed through a data detector to yield multiple detected outputs at the different phase offsets. A selection circuit in the diversity loop detector 110 selects the data detector which yields the best results, and outputs the detected output from the selected data detector as detected output 112. The diversity loop detector 110 also outputs a selection signal 134, indicating the phase offset associated with the selected data detector, and a slope output 146, which carries the slope of the minimum accumulated state metric growth for the data detector circuits. In some embodiments, this slope is calculated by periodically sampling the state metric for one state in each of the data detectors, accumulating the growth or increase in each of those state metrics, selecting the detector with the lowest accumulated state metric growth and outputting the slope of the accumulated state metric growth for the selected detector.
A loop pulse estimation circuit 114 processes the detected output 112 from diversity loop detector 110 to estimate the channel bit response at the output of the analog to digital converter 104. The hard decision nrz in the detected output 112 from the diversity loop detector 110 is convolved with a loop pulse, a partial response target, in the diversity loop detector 110 to estimate the channel response and provide ideal digital samples 2. The ideal digital samples 2 can be used in generating error signals for feedback loops such as, but not limited to, the timing loop, a gain loop and DC loop. The loop pulse estimator 114 may be any circuit known in the art that is capable convolving digital samples 106 with partial response target. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of loop pulse estimation circuits that may be used in relation to different embodiments of the present invention.
In some embodiments, the loop pulse estimator 114 includes a number of separate loop pulse estimation circuits (e.g., 116, 120, 122), one for each of the phase offsets in the diversity loop detector 110, each convolving the detected output 112 with a partial response target having a different one of the phase offsets and yielding multiple ideal digital samples {circumflex over (x)}(−) 124, {circumflex over (x)}(0) 126 and {circumflex over (x)}(+) 130, one for each phase offset. The selection signal 134 is used to select the ideal digital samples {circumflex over (x)}(−) 124, {circumflex over (x)}(0) 126 or {circumflex over (x)}(+) 130 in multiplexer 132 so that the same selected phase offset is applied in the detected output 112 and the selected ideal digital samples {circumflex over (x)} 136. In some other embodiments, the loop pulse estimator 114 includes a single loop pulse estimation circuit, with is configured to use a partial response target having the same phase offset as that selected in diversity loop detector 110.
The ideal digital samples {circumflex over (x)} 136 are subtracted from detected output 112 in adder 142, yielding an intermediate timing error signal 144. (Adder 142, which “adds” the negative of ideal digital samples {circumflex over (x)} 136 to detected output 112, may also be referred to as a subtraction circuit.) The intermediate timing error signal 144 is multiplied by the slope 146 of the accumulated state metric growth for the selected detector in scaling circuit or multiplier 150, yielding a timing error signal 152. In some embodiments, the slope 146 is squared before multiplying with the intermediate timing error signal 144 to yield the timing error signal 152. The timing error signal 152 is provided to the phase locked loop 154 which regulates the analog to digital converter 104 to correct timing errors in the sampling of the analog signal 102. The loop pulse estimator 114, multiplexer 132, subtraction circuit 142, and multiplier 150 are also referred to herein collectively as a timing error calculation circuit according to some embodiments of the invention.
When the diversity loop detector 110 switches from one phase offset to another based on the detector decisions, the timing error is most likely greater than half the difference between the two phase offsets. By basing the timing error detection on the phase offset selected by the diversity loop detector 110, timing errors can be rapidly and accurately detected.
Turning to
Analog to digital converter 204 converts analog signal 202 into a corresponding series of digital samples 206, or X samples. Analog to digital converter 204 may be any circuit known in the art that is capable of producing digital samples corresponding to an analog input signal. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of analog to digital converter circuits that may be used in relation to different embodiments of the present invention. In some embodiments, the phase and frequency of the sampling are controlled by a clock signal 256 from a phase locked loop 254.
Digital samples 206 are provided to a diversity loop detector 210, which applies a data detection algorithm to each of a number of phase shifted versions of the digital samples 206, resulting in a detected output 212, also referred to as hard decisions or non-return to zero (nrz) data. In some embodiments of the present invention, diversity loop detector 210 is a soft-input hard-output detector such as, but not limited to, a Viterbi algorithm data detector circuit or a maximum a posteriori (MAP) data detector circuit as are known in the art. In some embodiments, diversity loop detector 210 applies equalization processes with different phase offsets to the digital samples 206 to produce the phase shifted version of the digital samples 206, each of which are then passed through a data detector to yield multiple detected outputs at the different phase offsets. A selection circuit in the diversity loop detector 210 selects the data detector which yields the best results, and outputs the detected output from the selected data detector as detected output 212. The diversity loop detector 210 also outputs a selection signal 234, indicating the phase offset associated with the selected data detector, and a slope output 246, which carries the slope of the minimum accumulated state metric growth for the data detector circuits. In some embodiments, this slope is calculated by periodically sampling the state metric for one state in each of the data detectors, accumulating the growth or increase in each of those state metrics, selecting the detector with the lowest accumulated state metric growth and outputting the slope of the accumulated state metric growth for the selected detector.
A loop pulse estimation circuit 214 processes the detected output 212 from diversity loop detector 210 to estimate the channel bit response at the output of the analog to digital converter 204. The hard decision nrz in the detected output 212 from the diversity loop detector 210 is convolved with a loop pulse, a partial response target, in the diversity loop detector 210 to estimate the channel response and provide ideal digital samples {circumflex over (x)}. The ideal digital samples {circumflex over (x)} can be used in generating error signals for feedback loops such as, but not limited to, the timing loop, a gain loop and DC loop. The loop pulse estimator 214 may be any circuit known in the art that is capable convolving digital samples 206 with partial response target. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of loop pulse estimation circuits that may be used in relation to different embodiments of the present invention.
In some embodiments, the loop pulse estimator 214 includes a number of separate loop pulse estimation circuits (e.g., 216, 220, 222), one for each of the phase offsets in the diversity loop detector 210, each convolving the detected output 212 with a partial response target having a different one of the phase offsets and yielding multiple ideal digital samples {circumflex over (x)}(−) 224, {circumflex over (x)}(0) 226 and {circumflex over (x)}(+) 230, one for each phase offset. The selection signal 234 is used to select the ideal digital samples {circumflex over (x)}(−) 224, {circumflex over (x)}(0) 226 or {circumflex over (x)}(+) 230 in multiplexer 232 so that the same selected phase offset is applied in the detected output 212 and the selected ideal digital samples {circumflex over (x)} 236. In some other embodiments, the loop pulse estimator 214 includes a single loop pulse estimation circuit, with is configured to use a partial response target having the same phase offset as that selected in diversity loop detector 210.
The ideal digital samples {circumflex over (x)} 236 are subtracted from detected output 212 in adder 242, yielding an intermediate timing error signal 244. The intermediate timing error signal 244 is provided to a scaling circuit or slope lookup table 258 which looks up the value of a second intermediate timing error signal 260 based on the intermediate timing error signal 244 and the slope 246. In some embodiments, the slope lookup table 258 stores pre-calculated values for each value of the intermediate timing error signal 244, multiplied by the square of the slope 246.
In some embodiments, the timing error signal 284 is calculated by adding a slope gain correction term 280 to the second intermediate timing error signal 260. The slope gain correction term 280 is calculated by multiplying the selected phase offset 272 by a slope gain 274 in multiplier 276. In some embodiments, the slope gain 274 is a gain factor associated with the current slope for the selected phase offset 272. The selected phase offset 272 is provided in some embodiments by multiplexer 262 which selects one of the phase offsets −Δ 264, 0 266 and +Δ 270, based on the selection 234. The timing error signal 284 is provided to the phase locked loop 254 which regulates the analog to digital converter 204 to correct timing errors in the sampling of the analog signal 202. The loop pulse estimator 214, multiplexer 232, subtraction circuit 242, slope lookup table 258, and slope gain multiplexer 262, multiplier 276 and adder 282 are also referred to herein collectively as a timing error calculation circuit according to some embodiments of the invention.
Turning to
Data detector circuits 302 are operable to apply a data detection algorithm to the equalized outputs 312, 314, 316. In some embodiments, data detector circuits 302 are soft-in hard-out Viterbi algorithm data detector circuits as are known in the art. In other embodiments of the present invention, data detector circuits 302 are maximum a posteriori data detector circuits as are known in the art. Of note, the general phrases “Viterbi data detection algorithm” or “Viterbi algorithm data detector circuit” are used in their broadest sense to mean any Viterbi detection algorithm or Viterbi algorithm detector circuit or variations thereof including, but not limited to, bi-direction Viterbi detection algorithm or bi-direction Viterbi algorithm detector circuit. Also, the general phrases “maximum a posteriori data detection algorithm” or “maximum a posteriori data detector circuit” are used in their broadest sense to mean any maximum a posteriori detection algorithm or detector circuit or variations thereof including, but not limited to, simplified maximum a posteriori data detection algorithm and a max-log maximum a posteriori data detection algorithm, or corresponding detector circuits. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data detector circuits that may be used in relation to different embodiments of the present invention.
The data detector circuits 302 yield detected values 320, 322, 324 of equalized outputs 312, 314, 316, also referred to herein as non-return to zero or nrz data, to a detector switching or selection circuit 326. The switching circuit 326 is operable to select between the detected values 320, 322, 324 from the data detector circuits 302, selecting the data detector circuit 302 with the lowest timing error, or best phase. The switching circuit 326 examines the state matrix for one state from all the data detector circuits 302 over a period of time. In some embodiments, the state metrics for the one state are sampled every N bits, such as, but not limited to, every 100 bits. The previous state metric values are subtracted, in a manner analogous to calculating a mean squared error. By doing this for each of the data detector circuits 302, each of which has a different timing offset, an indication is obtained of the metric associated with the best path through the detector trellis under the assumption of each different timing offset. The detector with the lowest accumulated error over the last N bits is selected. This is also referred to herein as the slope of the minimum accumulated state metric growth.
The switching circuit 326 yields the selected nrz output 330 from the selected one of the data detector circuits 302, along with a slope output 332 that indicates the slope of the minimum accumulated state metric growth for the data detector circuits 302, and a selection output 334 that indicates which of the data detector circuits 302 is currently selected.
Turning to
In some embodiments, a 4-state trellis of the diversity loop detector 300 is generated based on a 3-tap loop detector target. In some embodiments, branch outputs are calculated from linear expansion of channel target taps, or error event-based calibrated channel ideas from an independent block.
In some embodiments, each of the component data detector circuits 302 includes a branch metrics unit (BMU) 410. In some embodiments, the branch metrics unit 410 (e.g., 4T Equivalent Trellis), at full-rate, takes one input (e.g., sample “c”) and generates one output:
Bk([ab]c)=(yk−ŷ[ab]→[bc])2
where “a” is the earlier bit (e.g., most significant bit (MSB)) and “c” is the most recent bit (e.g., least significant bit (LSB)). There are 8 branch metrics at time “k”. At quarter-rate, the branch metrics unit 410 takes four inputs (sample “cdef”) and generates four outputs:
Bk([ab]cdef)=Bk([ab]c)+Bk([bc]d)+Bk([cd]e)+Bk([de]f)
In some embodiments, there are 64 branch metrics for one quarter-rate clock.
The branch metrics unit 410 is configured to pre-select one of the four parallel branches connection states. For example, 64 branches may be reduced to 16 branches in the 4T trellis. In some embodiments, to provide such pre-selection, the branch metrics unit 410 is configured with sixteen 4-way comparators. In some embodiments, each 4T branch metric is associated with two pre-selected hard decision outputs for sample “c” and “d”, which are memorized and put to a path metric buffer by a survivor path metric unit (SMU) 412 of the component data detector circuit 302:
Bk([ab] . . . ef)=min{Bk([ab]00ef),Bk([ab]01ef),Bk([ab]10ef),Bk([ab]11ef)}
In some embodiments, a state metric update is provided via the following:
Sk(ef)=min{Sk-4(00)+Bk([00] . . . ef),Sk-4(01)+Bk([01] . . . ef),Sk-4(10)+Bk([10] . . . ef),Sk-4(11)+Bk([11] . . . ef)}
In some embodiments, each component data detector circuit 302 includes an add-compare-select unit (ASCU) 414 connected to the branch metrics unit 410 and configured for receiving an output (e.g., branch metrics output) from the branch metrics unit 410. The add-compare-select unit 414 is configured for generating an output based upon the received output from the branch metrics unit 410 and the state metrics from the previous cycle. The output of the add-compare-select unit 414 includes data regarding: state metrics, state metric differences and decisions. In some embodiments, the add-compare-select unit 414 is a 4T add-compare-select unit including four 2-way adders and one 4-way comparator. The add-compare-select unit 414 selects one of four incoming branches to update the status metric for a given state. In some embodiments, each component data detector circuit 302 includes four add-compare-select units. To prevent state metric accumulator overflow due to non-negative branch metrics, if the maximum difference between 2-way comparisons is bounded, then modulo 2X arithmetic is implemented as:
2x>2·Bound
The comparison of A and B is always correct when calculating the subtraction D=A−B with x bits. When the MSB of D is 1, A<B and, when MSB of D is 0, A is greater than or equal to B. All calculations that involve state metrics, including addition and subtraction comparisons, are modulo-based calculations, so the roll-over is consistent. In some embodiments, for the 4-state trellis, the bound is proved theoretically via the following:
BndSM,4T=2BndBM,4T
In some embodiments, as mentioned above, each component data detector circuit 302 includes a survivor path metric unit 412 receives an output from the add-compare-select unit 414, including data regarding state metrics, state metric differences and decisions. In some embodiments, the survivor path metric unit 412 is configured for storing survivor path data (e.g., a surviving path for each trellis state during a time window). In some embodiments, the survivor path metric unit 412 includes a first buffer (e.g., hard decision (HD) buffer) which is configured for storing hard decision bits corresponding to the winning branch merging to a state. For example, the length TBL of the hard decision buffer is 12 samples.
A trace back unit (TBU) 416 receives data (e.g., survivor path memory data) from the survivor path metric unit 412. In response to obtaining data from the survivor path metric unit 412, the trace back unit 416 is configured for generating an output and transmitting it to the survivor path metric unit 412, the output being received by the survivor path metric unit 412. In some embodiments, the survivor path metric unit 412 is configured for determining (e.g., memorizing) the output of the add-compare-select unit 414 and the trace back unit 416. Content in buffers of the survivor path metric unit 412 is used in (e.g., obtained/retrieved by) the trace back unit 416. In some embodiments, based upon the data obtained from the survivor path metric unit 412, the trace back unit 416 of each component data detector circuit 302 is configured for generating a further output (e.g., a decision trace back output, hard decision output) and transmitting the decision trace back output (e.g., hard decision output) from the component data detector circuit 302 to the detector switching unit 408. In some embodiments, a register exchange method is provided for and/or implemented by the survivor path metric unit 412. For example, the survivor path metric unit 412 stores values of decisions of the add-compare-select unit 414 directly, so the trace back unit 416 is simply taking the hard decision directly. In some embodiments, at time k, the 4 state metrics of each component detector are compared. The state with the minimum accumulated state metric is then chosen as the winning state. The trace back unit 416 begins trace back from this trellis state to k−TBL+1 time instance to determine the hard outputs of each component data detector circuit 302.
The trace back unit 416 compares the updated state metrics (e.g., the four updated state metrics) for a component data detector circuit 302, finds the minimum state, then traces back from that state to generate the final hard decision for the data detector circuit 302, which will be provided to a hardout buffer of the survivor path metric unit 412.
In some embodiments, as mentioned above, the switching circuit 326 includes a detector switching unit 408 configured for receiving the output (e.g., decision trace back output, a hard decision output) from the trace back unit 416 and, based upon the output received from the trace back unit 416, generating and transmitting a hard decision or nrz output 420. In some embodiments, the detector switching unit 408 is configured for taking a minimum state metric value (e.g., a result from a four-way comparison performed by the trace back unit 416) and buffering it in a sliding buffer for slope calculation, yielding the slope value 422. The detector switching unit 408 also yields a selection output 424, indicating which of the data detector circuits 302 is selected.
As mentioned above, the detector switching unit 408 is configured for selecting the output of one of the component data detector circuits 302 (e.g., performing detector switching), utilizing any one or more of a variety of possible switching detector methods. For example, the detector switching unit 408 may implement minimum state metric (SM) switching, periodic state likelihood reset, cross-over connections among detectors or differentiator-based switching. The detector switching methods which may be implemented by the detector switching unit 408 of the switching circuit 326 are discussed in further detail below.
The switching circuit 326 is configured for implementing any one of a number of methods for promoting fast switching amongst the component data detector circuits 302, including but not limited to periodic state likelihood reset, slope-based switching, and cross-over connections among detectors.
In some embodiments, state likelihood reset is implemented by the switching circuit 326 for switching amongst the component data detector circuits 302. In embodiments in which state likelihood reset is implemented by the diversity loop detector 300, the minimum (min) state of each of the component data detector circuits 302 is reset to zero periodically. The relative ranking of state likelihood is maintained within data detector circuits 302.
In some embodiments, cross-over connections among detectors is implemented by the switching circuit 326 for switching amongst the component data detector circuits 302. In embodiments in which cross-over connections (e.g., cross-over bridge) amongst detectors is implemented by the diversity loop detector 300, periodic cross-over with a state metric (SM) penalty occurs. In some of these embodiments, the cross-over connection is on the Viterbi trellis.
In some embodiments, slope-based switching (e.g., sectional slope-based switching) is implemented by the switching circuit 326 for switching amongst the component data detector circuits 302. Switching based on the slope of minimum accumulated state metric growth promotes accurate and fast switching in case of a transition phase offset. Because slope-based switching doesn't affect the critical data path, there are minimal delays and fixed point modulo arithmetic still holds, thereby promoting ease of parameter optimization. Slope-based switching implements multiple (e.g., three) sliding window minimum state metric buffers, each of which buffers one minimum state metric value every N samples.
Turning to
Although the timing error detection with diversity loop detector decision feedback disclosed herein is not limited to any particular application, several examples of applications are disclosed in
In a typical read operation, read/write head assembly 620 is accurately positioned by motor controller 612 over a desired data track on disk platter 616. Motor controller 612 both positions read/write head assembly 620 in relation to disk platter 616 and drives spindle motor 614 by moving read/write head assembly 620 to the proper data track on disk platter 616 under the direction of hard disk controller 610. Spindle motor 614 spins disk platter 616 at a determined spin rate (RPMs). Once read/write head assembly 620 is positioned adjacent the proper data track, magnetic signals representing data on disk platter 616 are sensed by read/write head assembly 620 as disk platter 616 is rotated by spindle motor 614. The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter 616. This minute analog signal is transferred from read/write head assembly 620 to read channel circuit 602 via preamplifier 604. Preamplifier 604 is operable to amplify the minute analog signals accessed from disk platter 616. In turn, read channel circuit 602 decodes and digitizes the received analog signal to recreate the information originally written to disk platter 616. This data is provided as read data 622 to a receiving circuit. While processing the read data, read channel circuit 602 adjusts sampling timing using a timing error detector with diversity loop detector decision feedback. Such a timing error detector with diversity loop detector decision feedback may be implemented consistent with that disclosed in relation to
It should be noted that storage system 600 may be integrated into a larger storage system such as, for example, a RAID (redundant array of inexpensive disks or redundant array of independent disks) based storage system. Such a RAID storage system increases stability and reliability through redundancy, combining multiple disks as a logical unit. Data may be spread across a number of disks included in the RAID storage system according to a variety of algorithms and accessed by an operating system as if it were a single disk. For example, data may be mirrored to multiple disks in the RAID storage system, or may be sliced and distributed across multiple disks in a number of techniques. If a small number of disks in the RAID storage system fail or become unavailable, error correction techniques may be used to recreate the missing data based on the remaining portions of the data from the other disks in the RAID storage system. The disks in the RAID storage system may be, but are not limited to, individual storage systems such as storage system 600, and may be located in close proximity to each other or distributed more widely for increased security. In a write operation, write data is provided to a controller, which stores the write data across the disks, for example by mirroring or by striping the write data. In a read operation, the controller retrieves the data from the disks. The controller then yields the resulting read data as if the RAID storage system were a single disk.
In addition, it should be noted that storage system 600 may be modified to include solid state memory that is used to store data in addition to the storage offered by disk platter 616. This solid state memory may be used in parallel to disk platter 616 to provide additional storage. In such a case, the solid state memory receives and provides information directly to read channel circuit 602. Alternatively, the solid state memory may be used as a cache where it offers faster access time than that offered by disk platted 616. In such a case, the solid state memory may be disposed between interface controller 606 and read channel circuit 602 where it operates as a pass through to disk platter 616 when requested data is not available in the solid state memory or when the solid state memory does not have sufficient storage to hold a newly written data set. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of storage systems including both disk platter 616 and a solid state memory.
Turning to
It should be noted that the various blocks discussed in the above application may be implemented in integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system or circuit, or a portion of the functions of the block, system or circuit. Further, elements of the blocks, systems or circuits may be implemented across multiple integrated circuits. Such integrated circuits may be any type of integrated circuit known in the art including, but are not limited to, a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. It should also be noted that various functions of the blocks, systems or circuits discussed herein may be implemented in either software or firmware. In some such cases, the entire system, block or circuit may be implemented using its software or firmware equivalent. In other cases, the one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware.
In conclusion, embodiments of the present invention provide novel systems, devices, methods and arrangements for timing error detection with diversity loop detector decision feedback. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of embodiments of the invention which are encompassed by the appended claims.
The present application claims priority to (is a non-provisional of) U.S. Pat. App. No. 61/833,693, entitled “Timing Error Detector with Diversity Loop Detector Decision Feedback”, and filed Jun. 11, 2013 by Wilson et al, the entirety of which is incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4777544 | Brown et al. | Oct 1988 | A |
5130866 | Klaassen et al. | Jul 1992 | A |
5237325 | Klein et al. | Aug 1993 | A |
5278703 | Rub et al. | Jan 1994 | A |
5309357 | Stark et al. | May 1994 | A |
5341249 | Abbott et al. | Aug 1994 | A |
5377058 | Good et al. | Dec 1994 | A |
5521948 | Takeuchi | May 1996 | A |
5523902 | Pederson | Jun 1996 | A |
5594341 | Majidi-Ahy | Jan 1997 | A |
5668679 | Swearingen et al. | Sep 1997 | A |
5696639 | Spurbeck et al. | Dec 1997 | A |
5768044 | Hetzler | Jun 1998 | A |
5781129 | Schwartz et al. | Jul 1998 | A |
5798885 | Saiki et al. | Aug 1998 | A |
5835295 | Behrens | Nov 1998 | A |
5844920 | Zook et al. | Dec 1998 | A |
5852524 | Glover et al. | Dec 1998 | A |
5892632 | Behrens et al. | Apr 1999 | A |
5955783 | Ben-Efraim | Sep 1999 | A |
5970104 | Zhong et al. | Oct 1999 | A |
5986830 | Hein | Nov 1999 | A |
5987562 | Glover | Nov 1999 | A |
6009549 | Bliss et al. | Dec 1999 | A |
6023383 | Glover et al. | Feb 2000 | A |
6069583 | Silvestrin et al. | May 2000 | A |
6081397 | Belser | Jun 2000 | A |
6111712 | Vishakhadatta et al. | Aug 2000 | A |
6208478 | Chiu et al. | Mar 2001 | B1 |
6269058 | Yamanoi et al. | Jul 2001 | B1 |
6278591 | Chang | Aug 2001 | B1 |
6400518 | Bhaumik et al. | Jun 2002 | B1 |
6404829 | Sonu | Jun 2002 | B1 |
6411452 | Cloke | Jun 2002 | B1 |
6441661 | Aoki et al. | Aug 2002 | B1 |
6476989 | Chainer | Nov 2002 | B1 |
6490110 | Reed et al. | Dec 2002 | B2 |
6493162 | Fredrickson | Dec 2002 | B1 |
6519102 | Smith et al. | Feb 2003 | B1 |
6530060 | Vis et al. | Mar 2003 | B1 |
6603622 | Christiansen et al. | Aug 2003 | B1 |
6606048 | Sutardja | Aug 2003 | B1 |
6633447 | Franck et al. | Oct 2003 | B2 |
6646822 | Tuttle et al. | Nov 2003 | B1 |
6657802 | Ashley et al. | Dec 2003 | B1 |
6671404 | Kawatani | Dec 2003 | B1 |
6717764 | Lake | Apr 2004 | B2 |
6775529 | Roo | Aug 2004 | B1 |
6788484 | Honma | Sep 2004 | B2 |
6813108 | Annampedu et al. | Nov 2004 | B2 |
6816328 | Rae | Nov 2004 | B2 |
6839014 | Uda | Jan 2005 | B2 |
6856183 | Annampedu | Feb 2005 | B2 |
6865040 | Fayeulle et al. | Mar 2005 | B2 |
6876511 | Koyanagi | Apr 2005 | B2 |
6906990 | Nagata et al. | Jun 2005 | B2 |
6912099 | Annampedu et al. | Jun 2005 | B2 |
6963521 | Hayashi | Nov 2005 | B2 |
6980382 | Hirano et al. | Dec 2005 | B2 |
6999257 | Takeo | Feb 2006 | B2 |
6999264 | Ehrlich | Feb 2006 | B2 |
6999404 | Furumiya et al. | Feb 2006 | B2 |
7002767 | Annampedu et al. | Feb 2006 | B2 |
7016131 | Liu et al. | Mar 2006 | B2 |
7038875 | Lou et al. | May 2006 | B2 |
7054088 | Yamazaki et al. | May 2006 | B2 |
7072137 | Chiba | Jul 2006 | B2 |
7082005 | Annampedu et al. | Jul 2006 | B2 |
7092462 | Annampedu et al. | Aug 2006 | B2 |
7116504 | Oberg | Oct 2006 | B1 |
7126776 | Warren, Jr. et al. | Oct 2006 | B1 |
7133227 | Chiang | Nov 2006 | B2 |
7136250 | Wu et al. | Nov 2006 | B1 |
7154689 | Shepherd et al. | Dec 2006 | B1 |
7158464 | Gushima et al. | Jan 2007 | B2 |
7167328 | Annampedu et al. | Jan 2007 | B2 |
7180693 | Annampedu et al. | Feb 2007 | B2 |
7187739 | Ma | Mar 2007 | B2 |
7191382 | James et al. | Mar 2007 | B2 |
7193544 | Fitelson et al. | Mar 2007 | B1 |
7193798 | Byrd et al. | Mar 2007 | B2 |
7199961 | Wu et al. | Apr 2007 | B1 |
7203013 | Han et al. | Apr 2007 | B1 |
7203015 | Sakai et al. | Apr 2007 | B2 |
7206146 | Flynn et al. | Apr 2007 | B2 |
7230789 | Brunnett et al. | Jun 2007 | B1 |
7248425 | Byun et al. | Jul 2007 | B2 |
7253984 | Patapoutian et al. | Aug 2007 | B1 |
7265937 | Erden et al. | Sep 2007 | B1 |
7286313 | Erden et al. | Oct 2007 | B2 |
7301717 | Lee et al. | Nov 2007 | B1 |
7308057 | Patapoutian | Dec 2007 | B1 |
7323916 | Sidiropoulos et al. | Jan 2008 | B1 |
7362536 | Liu et al. | Apr 2008 | B1 |
7375918 | Shepherd et al. | May 2008 | B1 |
7394608 | Eleftheriou | Jul 2008 | B2 |
7411531 | Aziz et al. | Aug 2008 | B2 |
7420498 | Barrenscheen | Sep 2008 | B2 |
7423827 | Neville | Sep 2008 | B2 |
7446690 | Kao | Nov 2008 | B2 |
7525460 | Liu et al. | Apr 2009 | B1 |
7529320 | Byrne et al. | May 2009 | B2 |
7558177 | Ogura et al. | Jul 2009 | B2 |
7602567 | Park | Oct 2009 | B2 |
7602568 | Katchmart | Oct 2009 | B1 |
7616395 | Yamamoto | Nov 2009 | B2 |
7620101 | Jenkins | Nov 2009 | B1 |
7630155 | Maruyama et al. | Dec 2009 | B2 |
7643235 | Erden et al. | Jan 2010 | B2 |
7656982 | Gaedke | Feb 2010 | B2 |
7663831 | Hayashi et al. | Feb 2010 | B2 |
7679850 | Smith | Mar 2010 | B2 |
7693243 | Chen et al. | Apr 2010 | B2 |
7738200 | Annampedu | Jun 2010 | B2 |
7768437 | Annampedu | Aug 2010 | B2 |
7768730 | Bliss et al. | Aug 2010 | B2 |
7796480 | Cheng et al. | Sep 2010 | B2 |
7813065 | Annampedu | Oct 2010 | B2 |
7821730 | Cao | Oct 2010 | B2 |
7835104 | Yamashita | Nov 2010 | B2 |
7889823 | Yang | Feb 2011 | B2 |
7929237 | Grundvig | Apr 2011 | B2 |
8014099 | Mathew | Sep 2011 | B2 |
8054573 | Mathew | Nov 2011 | B2 |
8054931 | Annampedu | Nov 2011 | B2 |
8059349 | Annampedu | Nov 2011 | B2 |
8098451 | Graef | Jan 2012 | B2 |
8102960 | Ran et al. | Jan 2012 | B2 |
8107573 | Chang | Jan 2012 | B2 |
8154818 | Mathew | Apr 2012 | B2 |
8154972 | Ratnakar Aravind | Apr 2012 | B2 |
8169726 | Wilson | May 2012 | B2 |
8174784 | Grundvig | May 2012 | B2 |
8174949 | Ratnakar Aravind | May 2012 | B2 |
8237597 | Liu | Aug 2012 | B2 |
8243381 | Annampedu | Aug 2012 | B2 |
8254049 | Annampedu | Aug 2012 | B2 |
8261171 | Annampedu | Sep 2012 | B2 |
20020150179 | Leis et al. | Oct 2002 | A1 |
20050243455 | Annampedu | Nov 2005 | A1 |
20070104300 | Esumi et al. | May 2007 | A1 |
20070192666 | Song et al. | Aug 2007 | A1 |
20080056403 | Wilson | Mar 2008 | A1 |
20090142620 | Yamamoto et al. | Jun 2009 | A1 |
20090274247 | Galbraith et al. | Nov 2009 | A1 |
20100061490 | Noeldner | Mar 2010 | A1 |
20100067628 | Buehner | Mar 2010 | A1 |
20100142078 | Annampedu | Jun 2010 | A1 |
20110043938 | Mathew | Feb 2011 | A1 |
20110157737 | Grundvig | Jun 2011 | A1 |
20110209026 | Xia | Aug 2011 | A1 |
20120036173 | Annampedu | Feb 2012 | A1 |
20120084336 | Yang | Apr 2012 | A1 |
20120087035 | Graef | Apr 2012 | A1 |
20120106607 | Miladinovic | May 2012 | A1 |
20120120784 | Yang | May 2012 | A1 |
20120124241 | Yang | May 2012 | A1 |
20120134042 | Annampedu | May 2012 | A1 |
20120134043 | Annampedu | May 2012 | A1 |
20120155587 | Annampedu | Jun 2012 | A1 |
20120182643 | Zhang | Jul 2012 | A1 |
20120236428 | Xia et al. | Sep 2012 | A1 |
Number | Date | Country |
---|---|---|
2904168 | Jan 2008 | FR |
WO 03047091 | Jun 2003 | WO |
WO 2008009620 | Jan 2008 | WO |
Entry |
---|
U.S. Appl. No. 13/529,572, filed Jun. 21, 2012, Yang et al. |
Annampedu, V. et al “Adaptive Algorithms for Asynchronous Detection of Coded Servo Signals Based on Interpolation”, IEEE Transactions on Magnetics, vol. 41, No. 10, Oct. 2005. |
Aziz et al., “Asynchronous Maximum Likelihood (ML) Detection of Servo Repeatable Run Out (RRO) Data”, Digest, IEEE Intl Mag Conf, vol. 42, No. 10, pp. 2585-2587 (Oct. 2006). |
Aziz et al., “Interpolation Based Maximum-Likelihood(ML) Detection of Asynchronous Servo Repeatable Run Out (RRO) Data” IEEE Intl Mag Conf. vol. 42 No. 10 pp. 2585-2587, Oct. 2006. |
Hagenauer et al., “A Viterbi algorithm with soft-decision outputs and its applications,” in Proc. IEEE Global Telecom Conf 1989, Dallas, Texas, pp. 1680-1686 (Nov. 1989). |
Kryder, M. et al “Heat Assisted Magnetic Recording” Proc. IEEE, vol. 96, No. 11, p. 1810, Nov. 2008. |
Polikar, Robi “Ensemble Based Systems in Decision Making” IEEE Circuits and Systems Magazine Third qtr 2006, p. 21-47. |
U.S. Appl. No. 13/777,937, filed Feb. 26, 2013, Rui Cao, Unpublished. |
U.S. Appl. No. 13/491,135, filed Jun. 7, 2012, Xun Zhang, Unpublished. |
U.S. Appl. No. 13/490,913, filed Jun. 7, 2012, Xun Zhang, Unpublished. |
U.S. Appl. No. 13/242,983, filed Sep. 23, 2011, Jeffrey P. Grundvig, Unpublished. |
U.S. Appl. No. 13/186,267, filed Jul. 19, 2011, Haitao Xia, Unpublished. |
U.S. Appl. No. 13/173,088, filed Jun. 30, 2011, Jeffrey P. Grundvig, Unpublished. |
U.S. Appl. No. 13/096,873, filed Apr. 28, 2011, Ross S. Wilson, Unpublished. |
U.S. Appl. No. 13/100,021, filed May 3, 2011, Haitao Xia, Unpublished. |
Weller et al “Thermal Limits in Ultrahigh-density Magnetic Recording” IEEE Trans. Magn. vol. 35, No. 6, p. 4423, Nov. 1999. |
Number | Date | Country | |
---|---|---|---|
20140362463 A1 | Dec 2014 | US |
Number | Date | Country | |
---|---|---|---|
61833693 | Jun 2013 | US |