US20080270874A1 - E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path - Google Patents
E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path Download PDFInfo
- Publication number
- US20080270874A1 US20080270874A1 US11/903,774 US90377407A US2008270874A1 US 20080270874 A1 US20080270874 A1 US 20080270874A1 US 90377407 A US90377407 A US 90377407A US 2008270874 A1 US2008270874 A1 US 2008270874A1
- Authority
- US
- United States
- Prior art keywords
- path
- metric
- branch
- metrics
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000011084 recovery Methods 0.000 claims abstract description 13
- 238000013500 data storage Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 25
- 238000007792 addition Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10046—Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter
- G11B20/10055—Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter using partial response filtering when writing the signal to the medium or reading it therefrom
- G11B20/10064—EEPR4 or E2PR4, i.e. extended partial response class 4, polynomial (1-D)*(1+D)3
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3961—Arrangements of methods for branch or transition metric calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6343—Error control coding in combination with techniques for partial response channels, e.g. recording
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Definitions
- Viterbi detectors are used in many of today's data receivers to recover digital data from samples of a data signal having a relatively low signal-to-noise ratio (SNR).
- SNR signal-to-noise ratio
- Viterbi detectors are used in disk-drive read channels to recover the sequence of data values read from a magnetic disk, and are used in cell phones to recover the sequence of data values from a digitized voice signal.
- a Viterbi detector considers all of the possible data-value sequences that the data signal can represent and determines from the samples of the data signal which of the possible sequences is most likely to be the correct, i.e., surviving, sequence. Because the complexity of the Viterbi detector is independent of the length of the recovered sequence, it has proven to be one of the most effective circuits for recovering digital-data sequences from signals having relatively low SNRs.
- the add-compare-select (ACS) algorithm that many Viterbi detectors implement often requires fast circuitry having a relatively large number of transistors so that such a Viterbi detector does not unduly limit the rate at which a receiver can process received data.
- Such a Viterbi detector executes the ACS algorithm for each data-signal sample or group of data-signal samples, and must finish executing the algorithm for one sample or group of samples before moving on to the next sample or sample group. Consequently, the rate at which the receiver samples the data signal and recovers data therefrom is limited to the speed at which the Viterbi detector can execute the ACS algorithm.
- the ACS algorithm includes a relatively large number of steps that require a relatively long time for the Viterbi detector to execute.
- the Viterbi detector To speed up execution of the ACS algorithm, one can design the Viterbi detector to include fast circuitry that performs many of these steps in parallel. But such circuitry typically includes a relatively large number of transistors that increase the layout area, and thus the cost, of the Viterbi detector.
- FIG. 1 is a trellis diagram 10 for a conventional one-sample-at-a-time, i.e., full-rate, E 2 PR4 Viterbi detector ( FIG. 2 ) that can recover a sequence of binary values from a data signal.
- the E 2 PR4 channel is represented by the following discrete-time transfer polynomial:
- the sample Y k of a data signal at a sample time k has an ideal (no noise) value that is given by the following equation:
- X k is the binary value of the data signal at sample time k
- X k ⁇ 1 is the binary value at sample time k ⁇ 1, etc.
- Two respective branches 20 e.g., 20 a , 20 b , 20 c , and 20 d ) originating from two states S prior to sample time k each terminate at respective states S after the sample time k.
- the branches 20 a and 20 b originate at S 0 and S 8 prior to time k, respectively, and terminate at S 0 after time k.
- Table I includes the ideal sample values Y and the L2 branch metrics as a function of Y for each of the branches 20 .
- FIG. 2 is a block diagram of a conventional full-rate E 2 PR4 Viterbi detector 40 that operates according to the trellis diagram 10 ( FIG. 1 ) and that includes an add-compare-select unit (ACSU) 42 for implementing the ACS algorithm.
- the detector 40 includes a branch-metric unit (BMU) 44 and a survivor-memory unit (SMU) 46 .
- the BMU 44 receives the samples Yk—a finite-impulse-response (FIR) filter (not shown) may process these samples before the BMU receives them—and calculates the L2 branch metrics (Table I) for the branches 20 ( FIG. 1 ).
- FIR finite-impulse-response
- the ACSU 42 adds the branch metrics to the respective path metrics stored in the SMU 46 to update the path metrics. Then, for each potential state S 0 -S 15 , the ASCU 42 compares the updated path metrics of the two paths terminating at each state S and selects as the surviving path to S the path having the smallest updated path metric. This adding, comparing, and selecting are the general steps of the ACS algorithm discussed above. Next, for each state S 0 -S 15 , the SMU 46 stores the respective surviving path and its path metric. The Viterbi detector 40 repeats this process for each subsequent sample Yk. After a predetermined latency, the surviving paths of all the states S 0 -S 15 converge to a single path that the SMU 46 provides as the binary values recovered from the sampled data signal.
- the ACSU 42 typically includes relatively large number of transistors, and thus occupies a significant area of the integrated circuit (not shown) that includes the E 2 PR4 Viterbi detector 40 . Because the tasks that the BMU 44 and SMU 46 implement are relatively simple, the BMU and SMU typically include relatively few transistors, and thus occupy a relatively small area of the integrated circuit. Conversely, as discussed above, the ACS algorithm is relatively complex. Consequently, to avoid becoming the “bottle neck” of the Viterbi detector 40 , the ACSU 42 typically includes relatively fast circuitry so that it can execute the ACS algorithm in the same or approximately the same amount of time that it takes the BMU 44 and the SMU 46 to perform their respective tasks. But to make the ACSU 42 fast, one typically designs the ACSU circuitry to execute operations in parallel. Unfortunately, such processing typically requires a relatively large number of transistors.
- FIGS. 3-12 illustrate the derivation and implementation of a compare-select-add (CSA) algorithm, which allows one to replace some Viterbi detectors' ACSU with a CSA unit (not shown) that is faster than and/or has significantly fewer transistors than the ACSU 42 .
- CSA compare-select-add
- FIGS. 3 and 4 illustrate the derivation of the CSA algorithm from the distributive law of mathematics.
- two branches 70 and 72 terminate at state S and have path metrics M and N and branch metrics m and n, respectively.
- the distributive law allows one to subtract the same value from each of the branch metrics m and n and add this same value back to the path metric Q to achieve the same result as in FIG. 3 .
- a modified Viterbi detector (not shown) subtracts z from the branch metrics m and n.
- CSAU compare-select-add unit
- FIGS. 5-10 illustrate how one can apply the distributive law discussed above in conjunction with FIGS. 3-4 to a simple butterfly trellis so that he can simplify a corresponding Viterbi detector by replacing its ACSU with a CSAU.
- FIG. 5 is a conventional butterfly trellis 80 having four branches 82 (e.g., 82 a , 82 b , 82 c , and 82 d ) per sample time k.
- the branches 82 have respective branch metrics a k , b k , c k , and d k .
- FIG. 6 is a split-state butterfly trellis 90 , which, as will become more evident below, corresponds more closely to the CSA algorithm than the trellis 80 of FIG. 5 .
- To derive the trellis 90 from the trellis 80 one first splits each state S 0 and S 1 into two nodes 91 (e.g., 91 a , 91 b , 91 c , and 91 d ) connected by a branch 92 .
- branches 92 e.g., 92 a , 92 b , 92 c , 92 d , 92 e , and 92 f .
- This splitting of the states and shifting of the trellis reflects that the addition step of the CSA algorithm occurs after the comparing and selecting steps.
- the branches 82 and 92 are called inner and outer branches, respectively.
- FIGS. 7-9 illustrate the step-by-step application of the distributive law of mathematics ( FIGS. 3-4 ) to the trellis 90 ( FIG. 6 ) to generate modified branch metrics that allow a Viterbi detector to include a CSAU instead of an ACSU.
- application of the distributive law effectively moves branch metrics from one side of a state node to the other side, modifying the trellis 90 in such a manner is called branch shifting. For example, in FIG. 8 , a k is shifted from the branches 82 a and 82 b to the branch 92 a .
- FIG. 10 is the resulting branch-shifted trellis diagram 90 .
- the modified branch metrics for the inner branches 82 are constants.
- the modified branch metrics for the branches 82 a - 82 c equal zero, so one can simplify the CSAU if the modified branch metric for the branch 82 d , a k ⁇ b k ⁇ c k +d k , is a constant.
- the branch-shifted trellis 90 ( FIG. 10 ) gives the same data-recovery results as the trellis 80 ( FIG. 5 ).
- the path metrics PMX n and PMY n of respective converging paths 100 and 102 through the trellis 90 of FIG. 12 have the same relationship to one another as do the path metrics PMX o and PMY o of the same paths 100 and 102 through the trellis 80 . That is, if PMX o >PMY o , then PMX n >PMY n , and if PMX o ⁇ PMY o , then PMX n ⁇ PMY n .
- PMX n need not equal PMX o
- PMY n need not equal PMY o for a Viterbi detector that includes a CSAU to operate properly.
- the branches 82 and 92 that do not lie along the paths 100 and 102 are omitted from FIGS. 11-12 for clarity.
- PMX o and PMY o at the convergence state 104 are given by the following equations:
- PMX n and PMY n at the convergence state 104 are given by the following equations:
- One embodiment of the invention is an E 2 PR4 Viterbi detector that includes a recovery circuit and that receives a signal that represents a sequence of values, the sequence having one or more potential states.
- the recovery circuit recovers the sequence from the signal by identifying a surviving sequence path to the potential state and, after identifying the surviving path, adding a modified branch metric to the path metric of the surviving path to generate an updated path metric for the potential state.
- Updating the path metric of the surviving path after the surviving path is selected allows the E 2 PR4 Viterbi detector to be smaller and/or easier than an E 2 PR4 Viterbi detector that updates the path metric before selecting the surviving path.
- FIG. 1 is a trellis diagram for a conventional full-rate E 2 PR4 Viterbi detector.
- FIG. 2 is a block diagram of a conventional full-rate E 2 PR4 Viterbi detector.
- FIG. 3 is a state diagram that shows selection of a surviving outgoing path from multiple incoming branches having conventional branch metrics.
- FIG. 4 is the state diagram of FIG. 3 where the incoming branches and the outgoing path have shifted branch metrics.
- FIG. 5 is a conventional butterfly trellis.
- FIG. 6 is a conventional modified butterfly trellis having split state nodes and a modified timing alignment.
- FIGS. 7-9 illustrate the application of a conventional branch-shifting technique to the modified butterfly trellis of FIG. 6 .
- FIG. 10 is a diagram of the modified butterfly trellis of FIG. 6 after the application of the branch-shifting technique shown in FIGS. 7-9 .
- FIG. 11 illustrates two paths through the butterfly trellis of FIG. 5 .
- FIG. 12 illustrates the same two paths through the branch-shifted butterfly trellis of FIG. 10 .
- FIG. 13 is an unmodified trellis diagram for a half-rate E 2 PR4 Viterbi detector.
- FIG. 14 is a block diagram of an ACS circuit that is part of an ACSU of a half-rate E 2 PR4 Viterbi detector.
- FIG. 15 illustrates application of a branch-shifting technique according to an embodiment of the invention to a portion of the trellis of FIG. 13 .
- FIG. 16 illustrates application of the branch-shifting technique of FIG. 15 to the entire trellis of FIG. 13 according to an embodiment of the invention.
- FIG. 17 is a modified half-rate E 2 PR4 trellis diagram having shifted branch metrics according to an embodiment of the invention.
- FIG. 18 illustrates two paths through the unmodified half-rate E 2 PR4 trellis of FIG. 13 according to an embodiment of the invention.
- FIG. 19 illustrates the two paths through the branch-shifted half-rate E 2 PR4 trellis of FIG. 17 according to an embodiment of the invention.
- FIG. 20 is a block diagram of a CSA circuit that is part of a CSAU of a half-rate E 2 PR4 Viterbi detector according to an embodiment of the invention.
- FIG. 21 is a block diagram of a CSA circuit that is part of a CSAU of a half-rate E 2 PR4 Viterbi detector according to another embodiment of the invention.
- FIG. 22 is a block diagram of a half-rate E 2 PR4 Viterbi detector that can incorporate the CSA circuits of FIGS. 20 and 21 according to an embodiment of the invention.
- FIG. 23 is a block diagram of a disk-drive system that can incorporate the half-rate E 2 PR4 Viterbi detector of FIG. 22 according to an embodiment of the invention.
- the inventor has discovered a branch-shifting technique that allows a half-rate E 2 PR4 Viterbi detector to incorporate a CSAU that is faster and/or includes fewer transistors than an ACSU.
- FIG. 13 is a trellis diagram 110 for a two-sample-at-a-time, i.e., half-rate, E 2 PR4 Viterbi detector ( FIG. 22 ) that can recover a sequence of binary values from a data signal.
- the half-rate E 2 PR4 Viterbi detector can run at half the speed (i.e., the frequency of the sample clock can be cut in half) of the full-rate E 2 PR4 Viterbi detector ( FIG. 2 ) because the half-rate detector processes two samples of the data signal at a time.
- the half-rate E 2 PR4 Viterbi detector can recover binary values from the data signal at twice the rate of the full-rate E 2 PR4 Viterbi detector. Therefore, although the circuitry of the half-rate E 2 PR4 Viterbi detector is typically more complex than the circuitry of the full-rate E 2 PR4 Viterbi detector, the half-rate E 2 PR4 Viterbi detector is often preferred for high-speed applications such as reading data from a computer disk.
- branches 112 e.g., 112 a , 112 b , 112 c , and 112 d
- Table II includes the pairs of ideal sample values Yf and Ys and the half-rate L2 branch metrics as a function of Yf and Ys for each of the branches 112 , where Yf and Ys respectively represent the values of the first and second consecutive samples of the data signal that the half-rate E 2 PR4 Viterbi detector processes during each sample time K.
- FIG. 14 is a block diagram of an ACS circuit 120 , which forms a portion of an ACSU (not shown) for a half-rate E 2 PR4 Viterbi detector (not shown), where the circuit 120 determines the surviving path to the state S 0 during each sample time K.
- the branches 112 a - 112 d that terminate at the state S 0 after time K respectively originate from the states S 0 , S 4 , S 8 , and S 12 prior to time K.
- Respectively associated with these branches are cumulative path metrics PM 0 , PM 4 , PM 8 , and PM 12 , and branch metrics BM 0 , BM 4 , BM 8 , and BM 12 .
- the circuit 120 includes four fast adders 122 a - 122 d , six fast comparators 124 a - 124 f , select logic 126 , and a multiplexer 128 .
- the adders 122 a - 122 d respectively add the branch metrics BM 0 , BM 4 , BM 8 , and BM 12 to the path metrics PM 0 , PM 4 , PM 8 , and PM 12 to generate the following updated path metrics:
- the comparators 124 a - 124 f respectively determine the following differences:
- the logic 126 determines which of the updated path metrics is the smallest, and causes the multiplexer 128 to load this smallest updated path metric into an SMU ( FIG. 22 ). The logic 126 also identifies the surviving path (the path having the smallest updated path metric) to the SMU.
- the other circuits (not shown) of the ACSU that execute the ACS algorithm for the states S 1 -S 15 are similar to and operate in parallel with the circuit 120 .
- the circuit 120 includes a relatively large number of transistors so that the ACSU to which it belongs does not limit the data-recovery rate of the Viterbi detector more than is necessary.
- the adders 122 a - 122 d and comparators 124 a - 124 f are designed to be as fast as possible so that the sample rate, and thus the Viterbi detector's recovery rate, can be as fast as possible.
- designing the adders 122 a - 122 d and the comparators 124 a - 124 f to be fast typically entails using a relatively large number of logic gates, and thus a large number of transistors. This causes the circuit 120 to occupy a relatively large area of the integrated circuit on which it resides.
- FIG. 15 illustrates the application of a branch-shifting technique to a portion 140 of the half-rate trellis diagram 110 of FIG. 13 according to an embodiment of the invention.
- the portion 140 includes the states S 0 , S 1 , S 2 , S 3 , and S 4 , which are split into two nodes (only one node shown in FIG. 15 ) as discussed above in conjunction with FIG. 6 .
- inner branches extend from the states S 8 and S 12 after time k to the states S 0 , S 1 , S 2 , S 3 before time k+1, states S 8 and S 12 and these branches are omitted from FIG. 15 for clarity. But their omission does not alter the application of the branch-shifting technique described below.
- the branch splitting is discussed in five steps, and the modified branch metrics resulting from each step appear adjacent to the corresponding branches.
- the first step one identifies the half-rate L2 branch metrics for each inner branch from Table II as follows:
- one adds ⁇ 2Yf ⁇ 2Ys to the branch metric (here 0) of the outer branch 158 , and thus subtracts this value from the branch metrics of the inner branches 142 , 144 , 146 , and 148 to obtain the following intermediate branch metrics for these inner branches:
- Branch 142 2Yf+2Ys 28
- the modified branch metrics for these branches are:
- the modified branch metrics for these branches are:
- Branch 158 ⁇ 2Yf ⁇ 2Ys 57
- the modified branch metrics for all of the inner branches 142 , 144 , 146 , 148 , 150 , 152 , 154 , and 156 are constants, i.e., constant branch metrics or constant modified branch metrics
- the above-described shifting of branch metrics results in the modified branch metrics equaling constants for the inner branches between the states S 8 and S 12 and S 0 , S 1 , S 2 , S 3 as discussed below in conjunction with FIG. 16 and Table III.
- FIG. 16 is a split-state half-rate E 2 PR4 trellis diagram 170 that labels all of the outer branches O with their respective non-time-shifted modified branch metrics, which one calculates according to the branch-shifting technique discussed above in conjunction with FIG. 15 .
- Table III includes the resulting constant modified branch metrics for all of the inner branches I.
- FIG. 17 is a branch-shifted half-rate E 2 PR4 trellis diagram 180 that labels all of the outer branches O with their respective time-aligned modified branch metrics according to an embodiment of the invention.
- the outer branches 158 and 160 are viewed as separate branches for purposes of calculating the modified branch metrics, they are the same outer branch. That is, although not shown, the branch 160 extends to the state S 0 that follows the sample time K+1. Therefore, the modified branch metrics for the branches 158 and 160 must be combined, and their samples Yf and Ys, which are time dependent, be labeled properly.
- the time-aligned modified branch metrics for the outer branches O are the results of this combining and labeling.
- the constant modified branch metrics for the inner branches I are unchanged by this combining and labeling, and thus retain the values listed in Table III.
- the branch-shifted half-rate trellis 180 of FIG. 17 is equivalent to the half-rate trellis 110 of FIG. 13 .
- the path metrics PMX n and PMY n of respective converging paths 190 and 192 through the branch-shifted trellis 180 have the same relationship to one another as do the path metrics PMX o and PMY o of the same paths 190 and 192 through the trellis 110 . That is, if PMX o >PMY o , then PMX n >PMY n , and if PMX o ⁇ PMY o , then PMX n ⁇ PMY n . But as discussed above in conjunction with FIGS.
- PMX n need not equal PMX o
- PMY n need not equal PMY o
- the branches of the trellises 110 and 180 that do not lie along the paths 190 and 192 are omitted for clarity.
- an E 2 PR4 Viterbi detector 230 ( FIG. 22 ) can include such a CSAU.
- FIG. 20 is a block diagram of a circuit 200 of such a CSAU, where the circuit 200 determines the surviving path to the state S 0 and the corresponding surviving-path metric after each sample time K.
- the inner branches that terminate at the state S 0 prior to time K originate from the states S 0 , S 4 , S 8 , and S 12 .
- the circuit 200 includes six fast comparators 202 a - 202 f , select logic 204 , a multiplexer 206 , and a fast adder 208 for generating the surviving updated path metric UPM for the state S 0 .
- the comparators 202 a - 202 f respectively determine the following differences between modified path metrics, where a modified path metric is the sum of the path metric PM and the corresponding constant modified branch metric CMBM:
- comparators 202 a - 202 f can be hardwired or programmed to respectively perform the following calculations:
- the multiplexer 206 is hardwired to add the proper CMBMsel value to the MPMsel value. For example, if PM 12 +CMBM 12 _ 0 is the smallest modified path metric, then the multiplexer 206 generates the sum PM 12 +CMBM 12 _ 0 in response to a corresponding signal from the select logic 204 .
- the logic 204 also identifies the surviving path to the SMU.
- the other circuits (not shown) of the CSAU that execute the CSA algorithm for the states S 1 -S 15 are similar to and operate in parallel with the circuit 200 .
- Table IV includes the values of Ka-Kf for all of these other circuits.
- circuit 200 to include fewer transistors than the circuit 120 ( FIG. 14 ), which implements the ACS algorithm.
- the circuit 200 FIG. 20
- the circuit 200 has three fewer fast adders than the circuit 120 .
- a CSAU that includes sixteen circuits 200 one for each state S 0 -S 15
- FIG. 21 is a block diagram of a CSA circuit 220 according to another embodiment of the invention.
- the circuit 220 has the same number of fast adders and comparators as the circuit 120 of FIG. 14 , it is faster than both the circuit 120 and the circuit 200 of FIG. 20 because it performs the additions and comparisons simultaneously.
- the circuit 220 of FIG. 21 determines the surviving path to the state S 0 and the corresponding surviving-path metric UPM 0 immediately after each sample time K.
- the circuit 220 includes the six fast comparators 202 a - 202 f , select logic 204 , a multiplexer 207 , and four fast adders 208 a - 208 f .
- the comparators 202 a - 202 f respectively determine the differences (79)-(84) as discussed above in conjunction with FIG. 20 .
- the adders 208 a - 208 d are respectively generating updated path metrics for the paths having the path metrics PM 0 , PM 4 , PM 8 , and PM 12 . Therefore, the circuit 220 can provide the updated path metric UPM 0 sooner because unlike the circuit 200 ( FIG. 20 ), it does not wait until after the comparison is finished before commencing the addition of the selected modified path metric and the modified branch metric. Specifically, the adders 208 a - 208 f determine the following sums, which are the updated path metrics and where PM+CMBM are the modified path metrics:
- CMBM 0 _ 0 [[ ⁇ 0]]] CMBM 4 _ 0 [[4 ⁇ 0]]
- CMBM 8 _ 0 [[8 ⁇ 0]] CMBM 12 _ 0 [[12 ⁇ 0]]
- MBM 0 [[ — 0 ⁇ 0]] is shown in FIG. 17 .
- the select logic 204 identifies the smallest of the modified path metric out of PM 0 +CMBM 0 _ 0 , PM 4 +CBM 4 _ 0 , PM 8 +CMBM 8 _ 0 , and PM 12 +CMBM 12 _ 0 , it causes the multiplexer 206 to select as the updated path metric UPM 0 the output of the adder 208 a - 208 d that updated the smallest modified path metric MPM, and to load UPM 0 into the SMU ( FIG. 22 ). The logic 204 also identifies the surviving path to the SMU.
- the other circuits of the CSAU that execute the CSA algorithm for the states S 1 -S 15 are similar to and operate in parallel with the circuit 220 .
- the circuit 220 is faster than the circuits 120 and 220 , and has no more transistors than the circuit 120 ( FIG. 14 ).
- FIG. 22 is a block diagram of a half-rate E 2 PR4 Viterbi detector 230 , which includes a CSAU 236 that incorporates one or more of the circuits 200 ( FIG. 20 ) or 220 ( FIG. 21 ) according to an embodiment of the invention. If the CSAU 236 includes one or more circuits 200 , then the detector 230 is typically smaller than an E 2 PR4 Viterbi detector that includes an ACSU because the circuit 200 is smaller and less complex than the circuit 120 ( FIG. 14 ) as discussed above in conjunction with FIG. 20 .
- the detector 230 is typically faster than an E 2 PR4 detector that includes an ACSU or a CSAU that includes the circuits 200 because the circuit 220 is faster than the circuit 120 and the circuit 200 as discussed above in conjunction with FIG. 21 .
- the detector 230 includes a recovery circuit 232 , which includes a BMU 234 and the CSAU 236 , which includes one or more of the circuits 200 or 220 —typically sixteen of either the circuits 200 or 220 , one for each state S 0 -S 15 .
- the detector 230 also includes a SMU 238 , which includes surviving-path-metric registers 240 and surviving-path registers 242 , typically one register 240 and one register 242 for each state S 0 -S 15 .
- the detector 230 receives a pair of consecutive samples Yf K and Ys K , and the BMU 234 calculates the modified branch metrics ( FIG. 17 ) for all of the states S 0 -S 15 from the received samples. As stated above, these samples may be filtered by circuitry not shown in FIG. 22 .
- the CSAU 236 compares the modified path metrics of the paths terminating at each state S to one another, and selects the smallest modified path metric MPM for each state S. If the CSAU 236 includes the circuits 200 , then, after the CSAU 236 is finished comparing and selecting, it adds the modified branch metric MBM for each state S to the corresponding selected modified path metric MPM to generate an updated path metric UPM for each state.
- the CSAU 236 Conversely, if the CSAU 236 includes the circuits 220 , it generates updated path metrics UPM for each of the paths while it is comparing the modified path metrics MPM, and then selects the updated path metric UPM corresponding to the smallest modified path metric MPM. Next, the CSAU 236 loads the updated path metrics UPM into the respective registers 240 , and causes the surviving paths to be loaded into the respective registers 242 .
- FIG. 23 is a block diagram of a disk-drive system 250 that incorporates the half-rate E 2 PR4 Viterbi detector 230 of FIG. 22 according to an embodiment of the invention.
- the disk-drive system 250 includes a disk drive 252 , which includes a read-write head 254 , a write channel 256 for generating and driving the head 254 with a write signal, and a write controller 258 for interfacing the write data to the write channel 256 .
- the disk drive 252 also includes a read channel 260 , which receives servo and application-data read signals from the head 254 , and which includes the Viterbi detector 230 for recovering data from the read signal, or both the read and servo signals, and includes a read controller 262 for interfacing the read data to an external bus (see below).
- the read channel 260 provides the recovered servo data to a head-position circuit 264 .
- the write and read controllers 258 and 262 compose a disk-drive controller 266 .
- the disk drive 252 further includes a storage medium such as one or more disks 268 , each of which may contain data on one or both sides and which may be magnetic, optical, or another type of storage disk.
- the head 254 writes/reads the data stored on the disks 268 , and is connected to a movable support arm 270 .
- the head-position circuit 264 provides a control signal to a voice-coil motor (VCM) 272 , which positionally maintains/radially moves the arm 270 so as to positionally maintain/radially move the head 254 over the desired data tracks on the disks 268 .
- VCM voice-coil motor
- a spindle motor (SPM) 274 and a SPM control circuit 276 respectively rotates the disks 268 and maintains them at the proper rotational speed.
- the disk-drive system 250 also includes write and read interface adapters 278 and 280 for respectively interfacing the disk-drive controller 266 to a system bus 282 , which is specific to the system used. Typical system busses include ISA, PCI, S-Bus, Nu-Bus, etc.
- the system 250 typically has other devices, such as a random access memory (RAM) 284 and a central processing unit (CPU) 286 coupled to the bus 282 .
- RAM random access memory
- CPU central processing unit
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
An E2PR4 Viterbi detector includes a recovery circuit and receives a signal that represents a sequence of values, the sequence having a potential state. The recovery circuit recovers the sequence from the signal by identifying a surviving path to the potential state and, after identifying the surviving path, adding a modified branch metric to the path metric of the surviving path to generate an updated path metric for the potential state. Updating the path metric of the surviving path after the surviving path is selected allows the E2PR4 Viterbi detector to be smaller and/or faster than an E2PR4 Viterbi detector that updates the path metric before selecting the surviving path.
Description
- This application is cross-related to application Ser. No. 10/194,659 entitled “E2PR4 VITERBI DETECTOR AND METHOD FOR ADDING A BRANCH METRIC TO THE PATH METRIC OF THE SURVIVING PATH WHILE SELECTING THE SURVIVING PATH”, which was filed on the same day as the present application and which is incorporated by reference.
- Viterbi detectors are used in many of today's data receivers to recover digital data from samples of a data signal having a relatively low signal-to-noise ratio (SNR). For example, Viterbi detectors are used in disk-drive read channels to recover the sequence of data values read from a magnetic disk, and are used in cell phones to recover the sequence of data values from a digitized voice signal. Basically, a Viterbi detector considers all of the possible data-value sequences that the data signal can represent and determines from the samples of the data signal which of the possible sequences is most likely to be the correct, i.e., surviving, sequence. Because the complexity of the Viterbi detector is independent of the length of the recovered sequence, it has proven to be one of the most effective circuits for recovering digital-data sequences from signals having relatively low SNRs.
- Unfortunately, as discussed below, the add-compare-select (ACS) algorithm that many Viterbi detectors implement often requires fast circuitry having a relatively large number of transistors so that such a Viterbi detector does not unduly limit the rate at which a receiver can process received data. Such a Viterbi detector executes the ACS algorithm for each data-signal sample or group of data-signal samples, and must finish executing the algorithm for one sample or group of samples before moving on to the next sample or sample group. Consequently, the rate at which the receiver samples the data signal and recovers data therefrom is limited to the speed at which the Viterbi detector can execute the ACS algorithm. Unfortunately, the ACS algorithm includes a relatively large number of steps that require a relatively long time for the Viterbi detector to execute. To speed up execution of the ACS algorithm, one can design the Viterbi detector to include fast circuitry that performs many of these steps in parallel. But such circuitry typically includes a relatively large number of transistors that increase the layout area, and thus the cost, of the Viterbi detector.
- And although engineers have discovered a compare-select-add (CSA) algorithm that allows a Viterbi detector to have fewer transistors than or to be faster than a Viterbi detector that executes the ACS algorithm, one cannot implement the CSA algorithm in an E2PR4 Viterbi detector.
- Referring to
FIGS. 1-12 , an E2PR4 Viterbi detector, the ACS algorithm, and the CSA algorithm are discussed in more detail. Although this discussion does not include a general overview of the operation of a Viterbi detector, U.S. patent application Ser. No. 09/409,923, entitled “PARITY-SENSITIVE VITERBI DETECTOR AND METHOD FOR RECOVERING INFORMATION FROM A READ SIGNAL”, filed Sep. 30, 1999, includes such an overview and is incorporated by reference. -
FIG. 1 is a trellis diagram 10 for a conventional one-sample-at-a-time, i.e., full-rate, E2PR4 Viterbi detector (FIG. 2 ) that can recover a sequence of binary values from a data signal. The E2PR4 channel is represented by the following discrete-time transfer polynomial: -
1+2D−2D3−D4 (1) - where D represents a delay of one sample period, D3 represents a delay of three sample periods, and D4 represents a delay of four sample periods. Therefore, the sample Yk of a data signal at a sample time k has an ideal (no noise) value that is given by the following equation:
-
Y k =X k+2X k−1−2X k−3 −X k−4 (2) - where Xk is the binary value of the data signal at sample time k, Xk−1 is the binary value at sample time k−1, etc. Because each sample Y is calculated from four binary values X, the sequence of binary values X has one of 42=16 potential states S0-S15 for each sample time k. Two respective branches 20 (e.g., 20 a, 20 b, 20 c, and 20 d) originating from two states S prior to sample time k each terminate at respective states S after the sample time k. For example, the
branches -
TABLE I Branch 20 Ideal Sample Value Y L2 Branch Metric S0 to S0 +0 0 S0 to S1 +1 1 − 2Y S1 to S2 +2 4 − 4Y S1 to S3 +3 9 − 6Y S2 to S4 0 0 S2 to S5 +1 1 − 2Y S3 to S6 +2 4 − 4Y S3 to S7 +3 9 − 6Y S4 to S8 −2 4 + 4Y S4 to S9 −1 1 + 2Y S5 to S10 0 0 S5 to S11 +1 1 − 2Y S6 to S12 −2 4 + 4Y S6 to S13 −1 1 + 2Y S7 to S14 0 0 S7 to S15 1 1 − 2Y S8 to S0 −1 1 + 2Y S8 to S1 0 0 S9 to S2 +1 1 − 2Y S9 to S3 +2 4 − 4Y S10 to S4 −1 1 + 2Y S10 to S5 0 0 S11 to S6 +1 1 − 2Y S11 to S7 +2 4 − 4Y S12 to S8 −3 9 + 6Y S12 to S9 −2 4 + 4Y S13 to S10 −1 1 + 2Y S13 to S11 0 0 S14 to S12 −3 9 + 6Y S14 to S13 −2 4 + 4Y S15 to S14 −1 1 + 2Y S15 to S15 0 0 -
FIG. 2 is a block diagram of a conventional full-rate E2PR4 Viterbidetector 40 that operates according to the trellis diagram 10 (FIG. 1 ) and that includes an add-compare-select unit (ACSU) 42 for implementing the ACS algorithm. In addition to the ACSU 42, thedetector 40 includes a branch-metric unit (BMU) 44 and a survivor-memory unit (SMU) 46. TheBMU 44 receives the samples Yk—a finite-impulse-response (FIR) filter (not shown) may process these samples before the BMU receives them—and calculates the L2 branch metrics (Table I) for the branches 20 (FIG. 1 ). Next, the ACSU 42 adds the branch metrics to the respective path metrics stored in theSMU 46 to update the path metrics. Then, for each potential state S0-S15, theASCU 42 compares the updated path metrics of the two paths terminating at each state S and selects as the surviving path to S the path having the smallest updated path metric. This adding, comparing, and selecting are the general steps of the ACS algorithm discussed above. Next, for each state S0-S15, the SMU 46 stores the respective surviving path and its path metric. The Viterbidetector 40 repeats this process for each subsequent sample Yk. After a predetermined latency, the surviving paths of all the states S0-S15 converge to a single path that theSMU 46 provides as the binary values recovered from the sampled data signal. - Still referring to
FIG. 2 , the ACSU 42 typically includes relatively large number of transistors, and thus occupies a significant area of the integrated circuit (not shown) that includes the E2PR4 Viterbi detector 40. Because the tasks that theBMU 44 and SMU 46 implement are relatively simple, the BMU and SMU typically include relatively few transistors, and thus occupy a relatively small area of the integrated circuit. Conversely, as discussed above, the ACS algorithm is relatively complex. Consequently, to avoid becoming the “bottle neck” of the Viterbidetector 40, the ACSU 42 typically includes relatively fast circuitry so that it can execute the ACS algorithm in the same or approximately the same amount of time that it takes theBMU 44 and theSMU 46 to perform their respective tasks. But to make the ACSU 42 fast, one typically designs the ACSU circuitry to execute operations in parallel. Unfortunately, such processing typically requires a relatively large number of transistors. -
FIGS. 3-12 illustrate the derivation and implementation of a compare-select-add (CSA) algorithm, which allows one to replace some Viterbi detectors' ACSU with a CSA unit (not shown) that is faster than and/or has significantly fewer transistors than the ACSU 42. The CSA algorithm is further discussed in U.S. Pat. No. 5,430,744, which is incorporated by reference. - Unfortunately, there is no such CSA unit available to replace the ACSU 42 of the full-rate E2PR4 Viterbi detector 40 (
FIG. 2 ). -
FIGS. 3 and 4 illustrate the derivation of the CSA algorithm from the distributive law of mathematics. - Referring to
FIG. 3 , twobranches FIG. 2 , the ACSU 42 calculates M+m and N+n, compares M+m to N+n to determine which is smaller, and then selects the smallest as the surviving path metric and selects the corresponding path as the surviving path. Therefore, abranch 74 that originates from the state S has a path metric Q=min(M+m, N+n). - Referring to
FIG. 4 , the distributive law allows one to subtract the same value from each of the branch metrics m and n and add this same value back to the path metric Q to achieve the same result as inFIG. 3 . For example, a modified Viterbi detector (not shown) subtracts z from the branch metrics m and n. The Viterbi detector calculates M+m−z and N+n−m to update the path metric, compares M+m−z to N+n−z to determine which is smaller, and then selects the smallest as the surviving path metric S and selects the corresponding path as the surviving path. Therefore, thebranch 74 would have a path metric Q=min(M+m−z, N+n−z). But adding z to Q yields Q=min(M+m, N+n), which is the same result as inFIG. 3 . - Still referring to
FIG. 4 , by choosing z appropriately, one can reduce the complexity of a Viterbi detector significantly by effectively converting its ACSU into a compare-select-add unit (CSAU) (not shown inFIG. 4 ). The “trick” is to select z so that the modified branch metrics m−z and n−z are constants. As long as the modified branch metrics are constant, their addition to the path metrics M and N can be hardwired into the CSAU, which simplifies the circuitry. Consequently, the CSAU can compute M+m−z and N+n−z with an implicit hardwired adding step, compare M+m−z and N+n−z, and then add z back to the minimum of M+m−z and N+n−z. -
FIGS. 5-10 illustrate how one can apply the distributive law discussed above in conjunction withFIGS. 3-4 to a simple butterfly trellis so that he can simplify a corresponding Viterbi detector by replacing its ACSU with a CSAU. -
FIG. 5 is aconventional butterfly trellis 80 having four branches 82 (e.g., 82 a, 82 b, 82 c, and 82 d) per sample time k. Thebranches 82 have respective branch metrics ak, bk, ck, and dk. -
FIG. 6 is a split-state butterfly trellis 90, which, as will become more evident below, corresponds more closely to the CSA algorithm than thetrellis 80 ofFIG. 5 . To derive thetrellis 90 from thetrellis 80, one first splits each state S0 and S1 into two nodes 91 (e.g., 91 a, 91 b, 91 c, and 91 d) connected by abranch 92. Then one shifts the trellis so that the branches 92 (e.g., 92 a, 92 b, 92 c, 92 d, 92 e, and 92 f) are aligned with the sampling times k. This splitting of the states and shifting of the trellis reflects that the addition step of the CSA algorithm occurs after the comparing and selecting steps. To distinguish thebranches 82 from thebranches 92, thebranches -
FIGS. 7-9 illustrate the step-by-step application of the distributive law of mathematics (FIGS. 3-4 ) to the trellis 90 (FIG. 6 ) to generate modified branch metrics that allow a Viterbi detector to include a CSAU instead of an ACSU. Because application of the distributive law effectively moves branch metrics from one side of a state node to the other side, modifying thetrellis 90 in such a manner is called branch shifting. For example, inFIG. 8 , ak is shifted from thebranches branch 92 a. To accomplish this shift, one adds ak to the branch metric of thebranch 92 a and subtracts ak from the branch metrics of thebranches branch 92 b in a similar manner. -
FIG. 10 is the resulting branch-shifted trellis diagram 90. As stated above in conjunction withFIGS. 3 and 4 , one can significantly simplify the CSAU if the modified branch metrics for theinner branches 82 are constants. Here, the modified branch metrics for thebranches 82 a-82 c equal zero, so one can simplify the CSAU if the modified branch metric for thebranch 82 d, ak−bk−ck+dk, is a constant. - Referring to
FIGS. 11 and 12 , the branch-shifted trellis 90 (FIG. 10 ) gives the same data-recovery results as the trellis 80 (FIG. 5 ). Specifically, the path metrics PMXn and PMYn of respective convergingpaths trellis 90 ofFIG. 12 have the same relationship to one another as do the path metrics PMXo and PMYo of thesame paths trellis 80. That is, if PMXo>PMYo, then PMXn>PMYn, and if PMXo<PMYo, then PMXn<PMYn. As long as this relationship is retained, PMXn need not equal PMXo, and PMYn need not equal PMYo for a Viterbi detector that includes a CSAU to operate properly. Furthermore, thebranches paths FIGS. 11-12 for clarity. - Referring to
FIG. 11 , using the branch metrics ofFIG. 5 and assuming that the path metrics PMXo and PMYo for thepaths convergence state 104 are given by the following equations: -
PMX o =b k +c k+1 +a k+2 +b k+3 +d k+4 4) -
PMY o =c k +b k+1 +d k+2 +c k+3 +b k+4 5) - Similarly, referring to
FIG. 12 , using the modified branch metrics ofFIG. 10 and assuming that the path metrics PMXn and PMYn for thepaths convergence state 104 are given by the following equations: -
PMX n =a k −a k +b k +c k+1 +a k+2 +a k+3 −a k+3 +b k+3 +c k+4+a k+4 −b k+4 −c k+4 +d k+4 6) -
PMY n =c k +a k+1 −a k+1 +b k+1 +c k+2 +a k+2 −b k+2 −c k+2 +d k+2 −a k+2 +b k+2 +c k+3 +a k+4 7) - Canceling common terms, one obtains:
-
PMX n =b k +c k+1 +a k+2 +b k+3 +a k+4 −b k+4 +d k+4 8) -
PMY n =c k +b k+1 +d k+2 +c k+3 +a k+4 9) - It is well known that if A>B, then A+C>B+C, and if A<B, then A+C<B+C. Therefore, if both PMXn and PMYn respectively differ from PMXo and PMYo by the same value C, then the relationship between PMXn and PMYn is the same as the relationship between PMXo and PMYo. That is, if PMXo>PMYo, then (PMXo+C=PMXn)>(PMYo+C=PMYn). Likewise, if PMXo<PMYo, then (PMXo+C=PMXn)<(PMYo+C=PMYn). Here, referring to equations (4), (5), (8), and (9), C=ak+4−bk+4. Consequently, the branch-shifted
trellis 90 preserves the relationships between the path metrics with respect to thetrellis 80, and is thus mathematically equivalent to thetrellis 80. - Unfortunately, the above-described branch-shifting technique does not allow one to replace the ACSU 42 (
FIG. 2 ) of the E2PR4 Viterbi detector 40 (FIG. 2 ) with a smaller and/or faster CSAU. As discussed above in conjunction withFIGS. 3-10 , a smaller and/or faster CSAU is typically possible only when the modified branch metrics of the inner branches 82 (FIG. 10 ) are constants. U.S. Pat. No. 5,430,744 discloses a branch-shifting technique that generates constant branch metrics for the inner branches of full-rate PR4 and EPR4 trellises. But unfortunately, there is no known branch-shifting technique that generates constant branch metrics for all of the inner branches of an E2PR4 Viterbi detector. - One embodiment of the invention is an E2PR4 Viterbi detector that includes a recovery circuit and that receives a signal that represents a sequence of values, the sequence having one or more potential states. The recovery circuit recovers the sequence from the signal by identifying a surviving sequence path to the potential state and, after identifying the surviving path, adding a modified branch metric to the path metric of the surviving path to generate an updated path metric for the potential state.
- Updating the path metric of the surviving path after the surviving path is selected allows the E2PR4 Viterbi detector to be smaller and/or easier than an E2PR4 Viterbi detector that updates the path metric before selecting the surviving path.
-
FIG. 1 is a trellis diagram for a conventional full-rate E2PR4 Viterbi detector. -
FIG. 2 is a block diagram of a conventional full-rate E2PR4 Viterbi detector. -
FIG. 3 is a state diagram that shows selection of a surviving outgoing path from multiple incoming branches having conventional branch metrics. -
FIG. 4 is the state diagram ofFIG. 3 where the incoming branches and the outgoing path have shifted branch metrics. -
FIG. 5 is a conventional butterfly trellis. -
FIG. 6 is a conventional modified butterfly trellis having split state nodes and a modified timing alignment. -
FIGS. 7-9 illustrate the application of a conventional branch-shifting technique to the modified butterfly trellis ofFIG. 6 . -
FIG. 10 is a diagram of the modified butterfly trellis ofFIG. 6 after the application of the branch-shifting technique shown inFIGS. 7-9 . -
FIG. 11 illustrates two paths through the butterfly trellis ofFIG. 5 . -
FIG. 12 illustrates the same two paths through the branch-shifted butterfly trellis ofFIG. 10 . -
FIG. 13 is an unmodified trellis diagram for a half-rate E2PR4 Viterbi detector. -
FIG. 14 is a block diagram of an ACS circuit that is part of an ACSU of a half-rate E2PR4 Viterbi detector. -
FIG. 15 illustrates application of a branch-shifting technique according to an embodiment of the invention to a portion of the trellis ofFIG. 13 . -
FIG. 16 illustrates application of the branch-shifting technique ofFIG. 15 to the entire trellis ofFIG. 13 according to an embodiment of the invention. -
FIG. 17 is a modified half-rate E2PR4 trellis diagram having shifted branch metrics according to an embodiment of the invention. -
FIG. 18 illustrates two paths through the unmodified half-rate E2PR4 trellis ofFIG. 13 according to an embodiment of the invention. -
FIG. 19 illustrates the two paths through the branch-shifted half-rate E2PR4 trellis ofFIG. 17 according to an embodiment of the invention. -
FIG. 20 is a block diagram of a CSA circuit that is part of a CSAU of a half-rate E2PR4 Viterbi detector according to an embodiment of the invention. -
FIG. 21 is a block diagram of a CSA circuit that is part of a CSAU of a half-rate E2PR4 Viterbi detector according to another embodiment of the invention. -
FIG. 22 is a block diagram of a half-rate E2PR4 Viterbi detector that can incorporate the CSA circuits ofFIGS. 20 and 21 according to an embodiment of the invention. -
FIG. 23 is a block diagram of a disk-drive system that can incorporate the half-rate E2PR4 Viterbi detector ofFIG. 22 according to an embodiment of the invention. - The following discussion is presented to enable a person skilled in the art to make and use the invention. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention as defined by the appended claims. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
- Referring to
FIGS. 13-19 , the inventor has discovered a branch-shifting technique that allows a half-rate E2PR4 Viterbi detector to incorporate a CSAU that is faster and/or includes fewer transistors than an ACSU. -
FIG. 13 is a trellis diagram 110 for a two-sample-at-a-time, i.e., half-rate, E2PR4 Viterbi detector (FIG. 22 ) that can recover a sequence of binary values from a data signal. For a given data-recovery rate, the half-rate E2PR4 Viterbi detector can run at half the speed (i.e., the frequency of the sample clock can be cut in half) of the full-rate E2PR4 Viterbi detector (FIG. 2 ) because the half-rate detector processes two samples of the data signal at a time. Consequently, for a given sample-clock frequency, the half-rate E2PR4 Viterbi detector can recover binary values from the data signal at twice the rate of the full-rate E2PR4 Viterbi detector. Therefore, although the circuitry of the half-rate E2PR4 Viterbi detector is typically more complex than the circuitry of the full-rate E2PR4 Viterbi detector, the half-rate E2PR4 Viterbi detector is often preferred for high-speed applications such as reading data from a computer disk. - Still referring to
FIG. 13 , one can derive the half-rate trellis 110 from the full-rate trellis 10 ofFIG. 1 by generating branches 112 (e.g., 112 a, 112 b, 112 c, and 112 d) that traverse two sample times k of thetrellis 10. That is, each branch 112 represents two sequential branches 20 of thetrellis 10. Therefore, the half-rate sample time K represents two consecutive samples Y, and thus is equivalent to two full-rate sample times k and k+1 which are shown in parentheses. - Furthermore, one can also derive the half-rate L2 branch metrics for each of the branches 112 by summing the full-rate L2 branch metrics (Table I) for the two respective branches 20 (
FIG. 1 ) that compose each branch 112. Table II includes the pairs of ideal sample values Yf and Ys and the half-rate L2 branch metrics as a function of Yf and Ys for each of the branches 112, where Yf and Ys respectively represent the values of the first and second consecutive samples of the data signal that the half-rate E2PR4 Viterbi detector processes during each sample time K. -
TABLE II Branch 112 Ideal Sample Values Yf And Ys Expression (L2 Metric) S0 to S0 0, 0 0 S0 to S1 0, +1 1 − 2Ys S0 to S2 +1, +2 5 − 2Yf − 4Ys S0 to S3 +1, +3 10 − 2Yf − 6Ys S1 to S4 +2, 0 4 − 4Yf S1 to S5 +2, +1 5 − 4Yf − 2Ys S1 to S6 +3, +2 13 − 6Yf − 4Ys S1 to S7 +3, +3 18 − 6Yf − 6Ys S2 to S8 0, −2 4 + 4Ys S2 to S9 0, −1 1 + 2Ys S2 to S10 +1, 0 1 − 2Yf S2 to S11 +1, +1 2 − 2Yf − 2Ys S3 to S12 +2, −2 8 − 4Yf + 4Ys S3 to S13 +2, −1 5 − 4Yf + 2Ys S3 to S14 +3, 0 9 − 6Yf S3 to S15 +3, +1 10 − 6Yf − 2Ys S4 to S0 −2, −1 5 + 4Yf + 2Ys S4 to S1 −2, 0 4 + 4Yf S4 to S2 −1, +1 2 + 2Yf − 2Ys S4 to S3 −1, +2 5 + 2Yf − 4Ys S5 to S4 0, −1 1 + 2Ys S5 to S5 0, 0 0 S5 to S6 +1, +1 2 − 2Yf − 2Ys S5 to S7 +1, +2 5 − 2Yf − 4Ys S6 to S8 −2, −3 13 + 4Yf + 6Ys S6 to S9 −2, −2 8 + 4Yf + 4Ys S6 to S10 −1, −1 2 + 2Yf + 2Ys S6 to S11 −1, 0 1 + 2Yf S7 to S12 0, −3 9 + 6Ys S7 to S13 0, −2 4 + 4Ys S7 to S14 1, −1 2 − 2Yf + 2Ys S7 to S15 1, 0 1 − 2Yf S8 to S0 −1, 0 1 + 2Yf S8 to S1 −1, +1 2 + 2Yf − 2Ys S8 to S2 0, +2 4 − 4Ys S8 to S3 0, +3 9 − 6Ys S9 to S4 +1, 0 1 − 2Yf S9 to S5 +1, +1 2 − 2Yf − 2Ys S9 to S6 +2, +2 8 − 4Yf − 4Ys S9 to S7 +2, +3 13 − 4Yf − 6Ys S10 to S8 −1, −2 5 + 2Yf + 4Ys S10 to S9 −1, −1 2 + 2Yf + 2Ys S10 to S10 0, 0 0 S10 to S11 0, +1 1 − 2Ys S11 to S12 +1, −2 5 − 2Yf + 4Ys S11 to S13 +1, −1 2 − 2Yf + 2Ys S11 to S14 +2, 0 4 − 4Yf S11 to S15 +2, +1 5 − 4Yf − 2Ys S12 to S0 −3, −1 10 + 6Yf + 2Ys S12 to S1 −3, 0 9 + 6Yf S12 to S2 −2, 1 5 + 4Yf − 2Ys S12 to S3 −2, +2 8 + 4Yf − 4Ys S13 to S4 −1, −1 2 + 2Yf + 2Ys S13 to S5 −1, 0 1 + 2Yf S13 to S6 0, +1 1 − 2Ys S13 to S7 0, +2 4 − 4Ys S14 to S8 −3, −3 18 + 6Yf + 6Ys S14 to S9 −3, −2 13 + 6Yf + 4Ys S14 to S10 −2, −1 5 + 4Yf + 2Ys S14 to S11 −2, 0 4 + 4Yf S15 to S12 −1, −3 10 + 2Yf + 6Ys S15 to S13 −1, −2 5 + 2Yf + 4Ys S15 to S14 0, −1 1 + 2Ys S15 to S15 0, 0 0 -
FIG. 14 is a block diagram of anACS circuit 120, which forms a portion of an ACSU (not shown) for a half-rate E2PR4 Viterbi detector (not shown), where thecircuit 120 determines the surviving path to the state S0 during each sample time K. Referring toFIG. 13 , the branches 112 a-112 d that terminate at the state S0 after time K respectively originate from the states S0, S4, S8, and S12 prior to time K. Respectively associated with these branches are cumulative path metrics PM0, PM4, PM8, and PM12, and branch metrics BM0, BM4, BM8, and BM12. Thecircuit 120 includes four fast adders 122 a-122 d, six fast comparators 124 a-124 f,select logic 126, and amultiplexer 128. The adders 122 a-122 d respectively add the branch metrics BM0, BM4, BM8, and BM12 to the path metrics PM0, PM4, PM8, and PM12 to generate the following updated path metrics: -
UPM0=BM0+PM0 10) -
UPM4=BM4+PM4 11) -
UPM8=BM8+PM8 12) -
UPM12=BM12+PM12 13) - The comparators 124 a-124 f respectively determine the following differences:
-
UPM12−UPM8 14) -
UPM12−UPM4 15) -
UPM12−UPM0 16) -
UPM8−UPM4 17) -
UPM8−UPM0 18) -
UPM4−UPM0 19) - From these differences, the
logic 126 determines which of the updated path metrics is the smallest, and causes themultiplexer 128 to load this smallest updated path metric into an SMU (FIG. 22 ). Thelogic 126 also identifies the surviving path (the path having the smallest updated path metric) to the SMU. The other circuits (not shown) of the ACSU that execute the ACS algorithm for the states S1-S15 are similar to and operate in parallel with thecircuit 120. - Unfortunately, the
circuit 120 includes a relatively large number of transistors so that the ACSU to which it belongs does not limit the data-recovery rate of the Viterbi detector more than is necessary. Specifically, the adders 122 a-122 d and comparators 124 a-124 f are designed to be as fast as possible so that the sample rate, and thus the Viterbi detector's recovery rate, can be as fast as possible. Unfortunately, designing the adders 122 a-122 d and the comparators 124 a-124 f to be fast typically entails using a relatively large number of logic gates, and thus a large number of transistors. This causes thecircuit 120 to occupy a relatively large area of the integrated circuit on which it resides. -
FIG. 15 illustrates the application of a branch-shifting technique to a portion 140 of the half-rate trellis diagram 110 ofFIG. 13 according to an embodiment of the invention. The portion 140 includes the states S0, S1, S2, S3, and S4, which are split into two nodes (only one node shown inFIG. 15 ) as discussed above in conjunction withFIG. 6 . Although inner branches extend from the states S8 and S12 after time k to the states S0, S1, S2, S3 beforetime k+ 1, states S8 and S12 and these branches are omitted fromFIG. 15 for clarity. But their omission does not alter the application of the branch-shifting technique described below. - Still referring to
FIG. 15 , the branch splitting is discussed in five steps, and the modified branch metrics resulting from each step appear adjacent to the corresponding branches. In the first step, one identifies the half-rate L2 branch metrics for each inner branch from Table II as follows: -
Branch 142: 0 20) -
Branch 144: 1−2Ys 21) -
Branch 146: 5−2Yf−4Ys 22) -
Branch 148: 10−2Yf−6Ys 23) -
Branch 150: 5+4Yf+2Ys 24) -
Branch 152: 4+4Yf 25) -
Branch 154: 2+2Yf−2Ys 26) -
Branch 156: 5+2Yf−4Ys 27) - In the second step, one adds −2Yf−2Ys to the branch metric (here 0) of the
outer branch 158, and thus subtracts this value from the branch metrics of theinner branches -
Branch 142: 2Yf+2Ys 28) -
Branch 144: 1+2Yf 29) -
Branch 146: 5−2Ys 30) -
Branch 148: 10−4Ys 31) - In the third step, one adds 2Yf+2Ys, 2Yf, −2Ys, and −4Ys, respectively, to the branch metrics of the
outer branches inner branches -
Branch 142: 0 32) -
Branch 144: 1 33) -
Branch 146: 5 34) -
Branch 148: 10 35) -
Branch 160: 2Yf+2Ys 36) -
Branch 162: 2Yf 37) -
Branch 164: −2Ys 38) -
Branch 166: −4Ys 39) - In the fourth step, because 2Yf+2Ys, 2Yf, −2Ys, and −4Ys were respectively added to the branch metrics of the
external branches inner branches -
Branch 150: 5+2Yf 40) -
Branch 152: 4+2Yf 41) -
Branch 154: 2+2Yf 42) -
Branch 156: 5+2Yf 43) - In the fifth and final step, one adds 2Yf to the branch metric of the
external branch 168 such that the modified branch metrics for theinner branches -
Branch 150: 5 44) -
Branch 152: 4 45) -
Branch 154: 2 46) -
Branch 156: 5 47) -
Branch 168: 2Yf 48) - Consequently, the modified branch metrics for all the branches in the trellis portion 140 are:
-
Branch 142: 0 49) -
Branch 144: 1 50) -
Branch 146: 5 51) -
Branch 148: 10 52) -
Branch 150: 5 53) -
Branch 152: 4 54) -
Branch 154: 2 55) -
Branch 156: 5 56) -
Branch 158: −2Yf−2Ys 57) -
Branch 160: 2Yf+2Ys 58) -
Branch 162: 2Yf 59) -
Branch 164: −2Ys 60) -
Branch 166: −4Ys 61) -
Branch 168: 2Yf 62) - As discussed above in conjunction with
FIGS. 3-10 and below in conjunction withFIGS. 20-22 , because the modified branch metrics for all of theinner branches FIG. 14 ). Also, although not shown, the above-described shifting of branch metrics results in the modified branch metrics equaling constants for the inner branches between the states S8 and S12 and S0, S1, S2, S3 as discussed below in conjunction withFIG. 16 and Table III. -
TABLE III (Constant) Modified Inner Branch Branch Metric S0 to S0 0 S0 to S1 1 S0 to S2 5 S0 to S3 10 S1 to S4 4 S1 to S5 5 S1 to S6 8 S1 to S7 13 S2 to S8 4 S2 to S9 1 S2 to S10 1 S2 to S11 2 S3 to S12 8 S3 to S13 5 S3 to S14 9 S3 to S15 10 S4 to S0 5 S4 to S1 4 S4 to S2 2 S4 to S3 5 S5 to S4 1 S5 to S5 0 S5 to S6 2 S5 to S7 5 S6 to S8 13 S6 to S9 8 S6 to S10 2 S6 to S11 1 S7 to S12 9 S7 to S13 4 S7 to S14 2 S7 to S15 1 S8 to S0 1 S8 to S1 2 S8 to S2 4 S8 to S3 9 S9 to S4 1 S9 to S5 2 S9 to S6 8 S9 to S7 13 S10 to S8 5 S10 to S9 2 S10 to S10 0 S10 to S11 1 S11 to S12 5 S11 to S13 2 S11 to S14 4 S11 to S15 5 S12 to S0 10 S12 to S1 9 S12 to S2 5 S12 to S3 8 S13 to S4 2 S13 to S5 1 S13 to S6 1 S13 to S7 4 S14 to S8 18 S14 to S9 13 S14 to S10 5 S14 to S11 4 S15 to S12 10 S15 to S13 5 S15 to S14 1 S15 to S15 0 -
FIG. 16 is a split-state half-rate E2PR4 trellis diagram 170 that labels all of the outer branches O with their respective non-time-shifted modified branch metrics, which one calculates according to the branch-shifting technique discussed above in conjunction withFIG. 15 . Similarly, Table III includes the resulting constant modified branch metrics for all of the inner branches I. -
FIG. 17 is a branch-shifted half-rate E2PR4 trellis diagram 180 that labels all of the outer branches O with their respective time-aligned modified branch metrics according to an embodiment of the invention. Referring toFIG. 15 , although theouter branches branch 160 extends to the state S0 that follows the sampletime K+ 1. Therefore, the modified branch metrics for thebranches - Referring to
FIGS. 18 and 19 , the branch-shifted half-rate trellis 180 ofFIG. 17 is equivalent to the half-rate trellis 110 ofFIG. 13 . Specifically, the path metrics PMXn and PMYn of respective convergingpaths trellis 180 have the same relationship to one another as do the path metrics PMXo and PMYo of thesame paths trellis 110. That is, if PMXo>PMYo, then PMXn>PMYn, and if PMXo<PMYo, then PMXn<PMYn. But as discussed above in conjunction withFIGS. 11 and 12 , as long as this relationship is retained, PMXn need not equal PMXo, and PMYn need not equal PMYo. The branches of thetrellises paths - Referring to
FIG. 18 , using the L2 branch metrics of Table II and assuming that the path metrics PMXo and PMYo for thepaths -
PMX o=10−2Yf K−6Ys K+8−4Yf K+1+4Ys K+1+10+6Yf K+2+2Ys K+2 63) -
PMY o=2+2Yf K−2Ys K+4−4Yf K+1+5+4Yf K+2+2Ys K+2 64) - Similarly, referring to
FIG. 19 , using the modified branch metrics ofFIG. 17 and Table III and assuming the that path metrics PMXn and PMYn for thepaths -
PMX n=−2Yf K−2Ys K+10−4Ys K−2Yf K+1−2Ys K+1+8−2Yf K+1+6Ys K+1+4Yf K+2+10 65) -
PMY n=−2Ys K+2+2Yf K−2Yf K+1−2Ys K+1+4−2Yf K+1+2Ys K+1+2Yf K+2+5 66) - As discussed above in conjunction with
FIGS. 11 and 12 , it is well known that if A>B, then A+C>B+C. Therefore, if both PMXn and PMYn respectively differ from PMXo and PMYo by the same value C, then the relationship between PMXn and PMYn is the same as the relationship between PMXo and PMYo. That is, if PMXo>PMYo, then (PMXo+C=PMXn)>(PMYo+C=PMYn). Likewise, if PMXo<PMYo, then (PMXo+C=PMXn)<(PMYo+C=PMYn). Here, referring to equations (63), (64), (65), and (66), C=−2Yf k+2−2Ys k+2. Consequently, the branch-shiftedtrellis 180 preserves the relationships between the path metrics with respect to thetrellis 110, and is thus mathematically equivalent to thetrellis 110. - Referring to
FIG. 20 , the branch-shifting technique described above in conjunction withFIGS. 15-19 allows one to convert the ACSU of a half-rate E2PR4 Viterbi detector into a CSAU having fewer transistors. For example, an E2PR4 Viterbi detector 230 (FIG. 22 ) can include such a CSAU. -
FIG. 20 is a block diagram of acircuit 200 of such a CSAU, where thecircuit 200 determines the surviving path to the state S0 and the corresponding surviving-path metric after each sample time K. Referring toFIG. 17 , the inner branches that terminate at the state S0 prior to time K originate from the states S0, S4, S8, and S12. Respectively associated with these branches are path metrics PM0, PM4, PM8, and PM12, and the constant modified branch metrics CMBM0_0[[−0]]=0, CMBM4_0[[−0]]=5, CMBM8_0[[−0]]=1, and CMBM12_0[[−0]]=10 from Table III. Thecircuit 200 includes six fast comparators 202 a-202 f,select logic 204, amultiplexer 206, and afast adder 208 for generating the surviving updated path metric UPM for the state S0. The comparators 202 a-202 f respectively determine the following differences between modified path metrics, where a modified path metric is the sum of the path metric PM and the corresponding constant modified branch metric CMBM: -
(PM4+CMBM4—0[[−0]])−(PM0+CMBM0—0[[−0]]) 67) -
(PM8+CMBM8—0[[−0]])−(PM0+CMBM0—0[[−0]]) 68) -
(PM12+CMBM12—0[[−0]])−(PM0+CMBM0—0[[−0]]) 69) -
(PM8+CMBM8—0[[−0]])−(PM4+CMBM4—0[[−0]]) 70) -
(PM12+CMBM12—0[[−0]])−(PM4+CMBM4—0[[−0]]) 71) -
(PM12+CMBM12—0[[−0]])−(PM8+CMBM8—0[[−0]]) 72) - The terms of these differences can be rearranged as:
-
(PM4−PM0)+(CMBM4—0[[−0]]−CMBM0—0[[−0]]) 73) -
(PM8−PM0)+(CMBM8—0[[−0]]−CMBM0—0[[−0]]) 74) -
(PM12−PM0)+(CMBM12—0[[−0]]−CMBM0—0[[−0]]) 75) -
(PM8−PM4)+(CMBM8—0[[−0]]−CMBM4—0[[−0]]) 76) -
(PM12−PM4)+(CMBM12—0[[−0]]−CMBM4—0[[−0]]) 77) -
(PM12−PM8)+(CMBM12—0[[−0]]−CMBM8—0[[−0]]) 78) - Because CMBM0_0[[−0]], CMBM4_0[[−0]], CMBM8_0[[−0]], and CMBM12_0[[−0]] are constants, the comparators 202 a-202 f can be hardwired or programmed to respectively perform the following calculations:
-
PM4−PM0+Ka 79) -
PM8−PM0+Kb 80) -
PM12−PM0+Kc 81) -
PM8−PM4+Kd 82) -
PM12−PM4+Ke 83) -
PM12−PM8+Kf 84) -
where -
Ka=CMBM4—0[[−0]]−CMBM0—0[[−0]]=5 85) -
Kb=CMBM8—0[[−0]]−CMBM0—0[[−0]]=1 86) -
Kc=CMBM12—0[[−0]]−CMBM0—0[[−0]]=10 87) -
Kd=CMBM8—0[[−0]]−CMBM4—0[[−0]]=−4 88) -
Ke=CMBM12—0[[−0]]−CMBM4—0[[−0]]=5 89) -
Kf=CMBM12—0[[−0]]−CMBM8—0[[−0]]=9 90) - From the differences (85)-(90), the
logic 204 selects via themultiplexer 206 the smallest modified path metric MPMsel=Min(PM12+CMBM12_0, PM8+CMBM8_0, PM4+CMBM4_0, PM0+CMBM0_0). Themultiplexer 206 is hardwired to add the proper CMBMsel value to the MPMsel value. For example, if PM12+CMBM12_0 is the smallest modified path metric, then themultiplexer 206 generates the sum PM12+CMBM12_0 in response to a corresponding signal from theselect logic 204. Theadder 208 then sums (PMsel+CMBMsel) and the modified branch metric for state S0, MBM0=2Yfk+2Ysk−2Yfk+1−2Ysk+1 (FIG. 17 ), to generate the updated path metric, UPM0, for the state S0 and loads UPM0 into the SMU 238 (FIG. 22 ). Thelogic 204 also identifies the surviving path to the SMU. - The other circuits (not shown) of the CSAU that execute the CSA algorithm for the states S1-S15 are similar to and operate in parallel with the
circuit 200. Table IV includes the values of Ka-Kf for all of these other circuits. -
TABLE IV State Ka Kb Kc Kd Ke Kf S0 +5 +1 +10 −4 +5 +9 S1 +3 +4 +8 −2 +5 +7 S2 −3 −1 0 +2 +3 +1 S3 −5 −1 −2 +4 +3 −1 S4 −3 −3 −2 −0 +1 +1 S5 −5 −3 −4 +2 +1 −1 S6 −11 −5 −12 +6 −1 −7 S7 −7 −2 −14 +8 −1 −9 S8 +9 +1 −8 +14 +2 +7 S9 +7 +1 −6 +12 +5 +11 S10 +1 −1 −2 +4 +3 +5 S11 −1 −1 0 +2 +3 +3 S12 +1 −3 −4 +2 +1 +5 S13 −1 −3 −2 0 +1 +3 S14 −7 −5 +2 −8 −1 −3 S15 −9 −5 +4 −10 −1 −5 - Implementing the CSA algorithm using the modified branch metrics of
FIG. 17 and the constants of Table IV allows thecircuit 200 to include fewer transistors than the circuit 120 (FIG. 14 ), which implements the ACS algorithm. Specifically, the circuit 200 (FIG. 20 ) has three fewer fast adders than thecircuit 120. Consequently, a CSAU that includes sixteen circuits 200 (one for each state S0-S15) has forty eight fewer fast adders than an ACSU formed frommultiple circuits 120. This provides a significant reduction in the number of logic gates and transistors, which reduces the layout area of the CSAU as compared to that of the ACSU. -
FIG. 21 is a block diagram of aCSA circuit 220 according to another embodiment of the invention. Although thecircuit 220 has the same number of fast adders and comparators as thecircuit 120 ofFIG. 14 , it is faster than both thecircuit 120 and thecircuit 200 ofFIG. 20 because it performs the additions and comparisons simultaneously. - Like the
CSA circuit 200 ofFIG. 20 , thecircuit 220 ofFIG. 21 determines the surviving path to the state S0 and the corresponding surviving-path metric UPM0 immediately after each sample time K. Thecircuit 220 includes the six fast comparators 202 a-202 f,select logic 204, amultiplexer 207, and fourfast adders 208 a-208 f. The comparators 202 a-202 f respectively determine the differences (79)-(84) as discussed above in conjunction withFIG. 20 . From these differences, thelogic 204 effectively selects via themultiplexer 207 the smallest modified path metric MPMsel=Min(PM12+CMBM12_0, PM8+CMBM8_0, PM4+CMBM4_0, PM0+CMPM0_0) as described below. - But while the comparators 202 a-202 f are determining the smallest modified path metric, the
adders 208 a-208 d are respectively generating updated path metrics for the paths having the path metrics PM0, PM4, PM8, and PM12. Therefore, thecircuit 220 can provide the updated path metric UPM0 sooner because unlike the circuit 200 (FIG. 20 ), it does not wait until after the comparison is finished before commencing the addition of the selected modified path metric and the modified branch metric. Specifically, theadders 208 a-208 f determine the following sums, which are the updated path metrics and where PM+CMBM are the modified path metrics: -
PM0+CMBM0—0[[−0]]+MBM0[[—0−0]] 91) -
PM4+CMBM4—0[[4—0]]+MBM0[[—0−0]] 92) -
PM8+CMBM8—0[[8−0]]+MBM0[[—0−0]] 93) -
PM12+CMBM12—0[[12−0]]+MBM0[[—0−0]] 94) - where CMBM0_0[[−0]], CMBM4_0[[4−0]], CMBM8_0[[8−0]], and CMBM12_0[[12−0]] are listed in Table III and MBM0[[—0−0]] is shown in
FIG. 17 . - Once the
select logic 204 identifies the smallest of the modified path metric out of PM0+CMBM0_0, PM4+CBM4_0, PM8+CMBM8_0, and PM12+CMBM12_0, it causes themultiplexer 206 to select as the updated path metric UPM0 the output of theadder 208 a-208 d that updated the smallest modified path metric MPM, and to load UPM0 into the SMU (FIG. 22 ). Thelogic 204 also identifies the surviving path to the SMU. - Still referring to
FIG. 21 , the other circuits of the CSAU that execute the CSA algorithm for the states S1-S15 are similar to and operate in parallel with thecircuit 220. - As stated above, because the comparators 202 a-202 f and the
adders 208 a-208 d operate in parallel and not serially as in thecircuit 200 ofFIG. 20 , thecircuit 220 is faster than thecircuits FIG. 14 ). -
FIG. 22 is a block diagram of a half-rate E2PR4 Viterbi detector 230, which includes aCSAU 236 that incorporates one or more of the circuits 200 (FIG. 20 ) or 220 (FIG. 21 ) according to an embodiment of the invention. If theCSAU 236 includes one ormore circuits 200, then thedetector 230 is typically smaller than an E2PR4 Viterbi detector that includes an ACSU because thecircuit 200 is smaller and less complex than the circuit 120 (FIG. 14 ) as discussed above in conjunction withFIG. 20 . Alternatively, if theCSAU 236 includes one ormore circuits 220, then thedetector 230 is typically faster than an E2PR4 detector that includes an ACSU or a CSAU that includes thecircuits 200 because thecircuit 220 is faster than thecircuit 120 and thecircuit 200 as discussed above in conjunction withFIG. 21 . - The
detector 230 includes arecovery circuit 232, which includes aBMU 234 and theCSAU 236, which includes one or more of thecircuits circuits detector 230 also includes aSMU 238, which includes surviving-path-metric registers 240 and surviving-path registers 242, typically oneregister 240 and oneregister 242 for each state S0-S15. - In operation, the
detector 230 receives a pair of consecutive samples YfK and YsK, and theBMU 234 calculates the modified branch metrics (FIG. 17 ) for all of the states S0-S15 from the received samples. As stated above, these samples may be filtered by circuitry not shown inFIG. 22 . TheCSAU 236 compares the modified path metrics of the paths terminating at each state S to one another, and selects the smallest modified path metric MPM for each state S. If theCSAU 236 includes thecircuits 200, then, after theCSAU 236 is finished comparing and selecting, it adds the modified branch metric MBM for each state S to the corresponding selected modified path metric MPM to generate an updated path metric UPM for each state. Conversely, if theCSAU 236 includes thecircuits 220, it generates updated path metrics UPM for each of the paths while it is comparing the modified path metrics MPM, and then selects the updated path metric UPM corresponding to the smallest modified path metric MPM. Next, theCSAU 236 loads the updated path metrics UPM into therespective registers 240, and causes the surviving paths to be loaded into the respective registers 242. -
FIG. 23 is a block diagram of a disk-drive system 250 that incorporates the half-rate E2PR4 Viterbi detector 230 ofFIG. 22 according to an embodiment of the invention. The disk-drive system 250 includes adisk drive 252, which includes a read-write head 254, awrite channel 256 for generating and driving thehead 254 with a write signal, and awrite controller 258 for interfacing the write data to thewrite channel 256. Thedisk drive 252 also includes aread channel 260, which receives servo and application-data read signals from thehead 254, and which includes theViterbi detector 230 for recovering data from the read signal, or both the read and servo signals, and includes aread controller 262 for interfacing the read data to an external bus (see below). Theread channel 260 provides the recovered servo data to a head-position circuit 264. Together, the write and readcontrollers drive controller 266. Thedisk drive 252 further includes a storage medium such as one ormore disks 268, each of which may contain data on one or both sides and which may be magnetic, optical, or another type of storage disk. Thehead 254 writes/reads the data stored on thedisks 268, and is connected to amovable support arm 270. The head-position circuit 264 provides a control signal to a voice-coil motor (VCM) 272, which positionally maintains/radially moves thearm 270 so as to positionally maintain/radially move thehead 254 over the desired data tracks on thedisks 268. A spindle motor (SPM) 274 and aSPM control circuit 276 respectively rotates thedisks 268 and maintains them at the proper rotational speed. - The disk-
drive system 250 also includes write and readinterface adapters drive controller 266 to asystem bus 282, which is specific to the system used. Typical system busses include ISA, PCI, S-Bus, Nu-Bus, etc. Thesystem 250 typically has other devices, such as a random access memory (RAM) 284 and a central processing unit (CPU) 286 coupled to thebus 282.
Claims (14)
1. An E2PR4 Viterbi detector, comprising:
an input terminal operable to receive a signal that represents a sequence of values, the sequence having a potential state; and
a recovery circuit coupled to the input terminal and operable to recover the sequence from the signal by,
identifying as a surviving path of the sequence to the potential state the path having the smallest path metric, and
adding a modified branch metric to the smallest path metric after identifying the surviving path to generate a modified path metric for the potential state.
2.-4. (canceled)
5. The E2PR4 Viterbi detector of claim 1 wherein the recovery circuit is operable to:
identify the surviving path by,
adding a respective remainder branch metric to each of the path metrics to generate updated path metrics,
calculating the respective differences between each pair of the updated path metrics,
determining from the differences which of the updated path metrics is the smallest updated path metric; and
add the modified branch metric to the smallest updated path metric to generate the modified path metric.
6. An E2PR4 Viterbi detector, comprising:
an input terminal operable to receive samples of a signal that represents a sequence of values, the sequence having a potential state;
a surviving-path register; and
a recovery circuit coupled to the first input terminal and to the register and operable to recover the sequence from the samples by,
comparing the path metrics of sequence paths that terminate at the potential state,
selecting the path having the smallest path metric,
adding a modified branch metric to the path metric of the selected path after selecting the path to generate a modified path metric for the potential state, and
loading the selected path into the surviving-path register.
7.-10. (canceled)
11. The E2PR4 Viterbi detector of claim 6 wherein the recovery circuit is operable to compare the path metrics of the paths that terminate at the potential state of the sequence by,
adding a respective remainder branch metric to each of the path metrics to generate updated path metrics, and
calculating the respective differences between each pair of the updated path metrics.
12. An E2PR4 Viterbi detector, comprising:
a branch-metric unit operable to receive samples of a signal that represents a sequence of values, the sequence having potential states, and to calculate from the samples a modified branch metric for each of the potential states; and
a compare-select-add unit operable to compare path metrics of sequences paths that terminate at each of the potential states to one another, select a surviving sequence path to each of the potential states, and respectively add the modified branch metrics to the path metrics of the surviving sequence paths to generate respective updated path metrics for the potential states.
13. The E2PR4 Viterbi detector of claim 12 wherein the branch-metric unit calculates the modified branch metrics from two samples.
14. The E2PR4 Viterbi detector of claim 12 , further comprising a surviving-metric unit operable to store the surviving sequence paths and the updated path metrics for the potential states of the sequence.
15. A disk-drive system, comprising:
a data-storage disk having a surface and operable to store information values;
a motor coupled to and operable to rotate the disk;
a read head operable to generate a read signal;
a read-head positioning assembly operable to move the read head over the surface of the disk; and
an E2PR4 Viterbi detector coupled to the read head and operable to recover a sequence of the stored information values from the read signal by,
comparing the path metrics of paths that terminate at a potential state of the sequence,
selecting the path having the smallest path metric, and
adding a modified branch metric to the path metric of the selected path after selecting the path to generate a modified path metric for the potential state.
16.-21. (canceled)
22. A method of recovering a sequence of values from a signal, for each potential state of the sequence the method comprising:
identifying as the surviving E2PR4 path to the potential state the E2PR4 path having the smallest path metric; and
after identifying the surviving path, adding a modified E2PR4 branch metric to the smallest path metric to generate a modified path metric for the potential state.
23.-25. (canceled)
26. The method of claim 22 wherein:
identifying the surviving path comprises,
adding a respective remainder branch metric to each of the path metrics for the E2PR4 paths to the potential state of the sequence to generate updated path metrics,
calculating the respective differences between each pair of the updated path metrics, and
determining from the differences which of the updated path metric is the smallest updated path metric; and
adding the modified E2PR4 branch metric comprises adding the modified E2PR4 branch metric to the smallest updated path metric.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/903,774 US20080270874A1 (en) | 2002-07-12 | 2007-09-24 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/194,660 US7290200B2 (en) | 2002-07-12 | 2002-07-12 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
US11/903,774 US20080270874A1 (en) | 2002-07-12 | 2007-09-24 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/194,660 Continuation US7290200B2 (en) | 2002-07-12 | 2002-07-12 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080270874A1 true US20080270874A1 (en) | 2008-10-30 |
Family
ID=30114804
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/194,660 Expired - Fee Related US7290200B2 (en) | 2002-07-12 | 2002-07-12 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
US11/903,774 Abandoned US20080270874A1 (en) | 2002-07-12 | 2007-09-24 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/194,660 Expired - Fee Related US7290200B2 (en) | 2002-07-12 | 2002-07-12 | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path |
Country Status (1)
Country | Link |
---|---|
US (2) | US7290200B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719392B1 (en) | 2018-06-27 | 2020-07-21 | Seagate Technology Llc | Selective sampling for data recovery |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7830630B2 (en) * | 2001-06-28 | 2010-11-09 | Stmicroelectronics, Inc. | Circuit and method for detecting the phase of a servo signal |
US8407563B2 (en) * | 2008-12-31 | 2013-03-26 | Stmicroelectronics, Inc. | Low-complexity soft-decision decoding of error-correction codes |
US9419651B2 (en) * | 2008-12-31 | 2016-08-16 | Stmicroelectronics, Inc. | Non-polynomial processing unit for soft-decision error correction coding |
US8413023B2 (en) * | 2008-12-31 | 2013-04-02 | Stmicroelectronics, Inc. | Error-locator-polynomial generation with erasure support |
US8595582B2 (en) | 2009-10-01 | 2013-11-26 | Stmicroelectronics, Inc. | High-rate reverse-order run-length-limited code |
US8694877B2 (en) | 2009-10-01 | 2014-04-08 | Stmicroelectronics, Inc. | Max-log-map equivalence log likelihood ratio generation soft viterbi architecture system and method |
RU2012133248A (en) * | 2012-08-02 | 2014-02-10 | ЭлЭсАй Корпорейшн | QUICK DIAGRAM OF COMPOSITION, COMPARISON AND SELECTION |
US9053743B2 (en) * | 2013-03-11 | 2015-06-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Servo marginalization |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4802174A (en) * | 1986-02-19 | 1989-01-31 | Sony Corporation | Viterbi decoder with detection of synchronous or asynchronous states |
US5313495A (en) * | 1992-05-12 | 1994-05-17 | Hughes Aircraft Company | Demodulator for symbols transmitted over a cellular channel |
US5375129A (en) * | 1990-07-19 | 1994-12-20 | Technophone Limited | Maximum likelihood sequence detector |
US5430744A (en) * | 1993-09-30 | 1995-07-04 | International Business Machines Corporation | Method and means for detecting partial response waveforms using a modified dynamic programming heuristic |
US5742622A (en) * | 1996-03-12 | 1998-04-21 | Discovision Associates | Error detection and correction system for a stream of encoded data |
US5914989A (en) * | 1997-02-19 | 1999-06-22 | Nec Electronics, Inc. | PRML system with reduced complexity maximum likelihood detector |
US5940416A (en) * | 1996-06-28 | 1999-08-17 | Hitachi Ltd. | Digital signal decoding apparatus and a decoding method used therein |
US6081210A (en) * | 1998-05-13 | 2000-06-27 | Texas Instruments Incorporated | Sliding block (rate 8/9) trellis code for magnetic recording |
US6097769A (en) * | 1998-02-10 | 2000-08-01 | Lucent Technologies Inc. | Viterbi detector using path memory controlled by best state information |
US6154870A (en) * | 1997-06-04 | 2000-11-28 | Seagate Technology Llc | Signal error-correction system and method |
US6201840B1 (en) * | 1997-10-08 | 2001-03-13 | Seagate Technology, Inc. | Method and apparatus for detecting data in magnetic recording using decision feedback |
US6212664B1 (en) * | 1998-04-15 | 2001-04-03 | Texas Instruments Incorporated | Method and system for estimating an input data sequence based on an output data sequence and hard disk drive incorporating same |
US6216249B1 (en) * | 1999-03-03 | 2001-04-10 | Cirrus Logic, Inc. | Simplified branch metric for reducing the cost of a trellis sequence detector in a sampled amplitude read channel |
US6236692B1 (en) * | 1998-07-09 | 2001-05-22 | Texas Instruments Incorporated | Read channel for increasing density in removable disk storage devices |
US6259749B1 (en) * | 1996-09-27 | 2001-07-10 | Nec Corporation | Viterbi decoder with pipelined ACS circuits |
US6343103B1 (en) * | 1999-09-03 | 2002-01-29 | Agere Systems Guardian Corp. | Methods and apparatus for representation of branch metrics in a communication system decoder |
US6373413B1 (en) * | 1999-05-27 | 2002-04-16 | Sony Corporation | Data decoding apparatus and data decoding method |
US6405342B1 (en) * | 1999-09-10 | 2002-06-11 | Western Digital Technologies, Inc. | Disk drive employing a multiple-input sequence detector responsive to reliability metrics to improve a retry operation |
US6532337B1 (en) * | 1997-08-21 | 2003-03-11 | Sony Corporation | Digital-signal playback apparatus |
US6553541B1 (en) * | 1999-04-14 | 2003-04-22 | Texas Instruments Incorporated | Reduced-complexity sequence detection |
US20040010748A1 (en) * | 2002-07-12 | 2004-01-15 | Stmicroelectronics, Inc. | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path while selecting the surviving path |
US6704903B1 (en) * | 1999-02-19 | 2004-03-09 | Texas Instruments Incorporated | Simplified branch metric and method |
-
2002
- 2002-07-12 US US10/194,660 patent/US7290200B2/en not_active Expired - Fee Related
-
2007
- 2007-09-24 US US11/903,774 patent/US20080270874A1/en not_active Abandoned
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4802174A (en) * | 1986-02-19 | 1989-01-31 | Sony Corporation | Viterbi decoder with detection of synchronous or asynchronous states |
US5375129A (en) * | 1990-07-19 | 1994-12-20 | Technophone Limited | Maximum likelihood sequence detector |
US5313495A (en) * | 1992-05-12 | 1994-05-17 | Hughes Aircraft Company | Demodulator for symbols transmitted over a cellular channel |
US5430744A (en) * | 1993-09-30 | 1995-07-04 | International Business Machines Corporation | Method and means for detecting partial response waveforms using a modified dynamic programming heuristic |
US5742622A (en) * | 1996-03-12 | 1998-04-21 | Discovision Associates | Error detection and correction system for a stream of encoded data |
US5940416A (en) * | 1996-06-28 | 1999-08-17 | Hitachi Ltd. | Digital signal decoding apparatus and a decoding method used therein |
US6259749B1 (en) * | 1996-09-27 | 2001-07-10 | Nec Corporation | Viterbi decoder with pipelined ACS circuits |
US5914989A (en) * | 1997-02-19 | 1999-06-22 | Nec Electronics, Inc. | PRML system with reduced complexity maximum likelihood detector |
US6154870A (en) * | 1997-06-04 | 2000-11-28 | Seagate Technology Llc | Signal error-correction system and method |
US6532337B1 (en) * | 1997-08-21 | 2003-03-11 | Sony Corporation | Digital-signal playback apparatus |
US6201840B1 (en) * | 1997-10-08 | 2001-03-13 | Seagate Technology, Inc. | Method and apparatus for detecting data in magnetic recording using decision feedback |
US6097769A (en) * | 1998-02-10 | 2000-08-01 | Lucent Technologies Inc. | Viterbi detector using path memory controlled by best state information |
US6212664B1 (en) * | 1998-04-15 | 2001-04-03 | Texas Instruments Incorporated | Method and system for estimating an input data sequence based on an output data sequence and hard disk drive incorporating same |
US6081210A (en) * | 1998-05-13 | 2000-06-27 | Texas Instruments Incorporated | Sliding block (rate 8/9) trellis code for magnetic recording |
US6236692B1 (en) * | 1998-07-09 | 2001-05-22 | Texas Instruments Incorporated | Read channel for increasing density in removable disk storage devices |
US6704903B1 (en) * | 1999-02-19 | 2004-03-09 | Texas Instruments Incorporated | Simplified branch metric and method |
US6216249B1 (en) * | 1999-03-03 | 2001-04-10 | Cirrus Logic, Inc. | Simplified branch metric for reducing the cost of a trellis sequence detector in a sampled amplitude read channel |
US6553541B1 (en) * | 1999-04-14 | 2003-04-22 | Texas Instruments Incorporated | Reduced-complexity sequence detection |
US6373413B1 (en) * | 1999-05-27 | 2002-04-16 | Sony Corporation | Data decoding apparatus and data decoding method |
US6343103B1 (en) * | 1999-09-03 | 2002-01-29 | Agere Systems Guardian Corp. | Methods and apparatus for representation of branch metrics in a communication system decoder |
US6405342B1 (en) * | 1999-09-10 | 2002-06-11 | Western Digital Technologies, Inc. | Disk drive employing a multiple-input sequence detector responsive to reliability metrics to improve a retry operation |
US20040010748A1 (en) * | 2002-07-12 | 2004-01-15 | Stmicroelectronics, Inc. | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path while selecting the surviving path |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719392B1 (en) | 2018-06-27 | 2020-07-21 | Seagate Technology Llc | Selective sampling for data recovery |
Also Published As
Publication number | Publication date |
---|---|
US20040010749A1 (en) | 2004-01-15 |
US7290200B2 (en) | 2007-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080270874A1 (en) | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path after selecting the surviving path | |
US5689532A (en) | Reduced complexity EPR4 post-processor for sampled data detection | |
US8015477B2 (en) | Method and apparatus for a data-dependent noise predictive viterbi | |
JP5618247B2 (en) | Method and apparatus for soft output viterbi detection using a multi-step trellis | |
US5430744A (en) | Method and means for detecting partial response waveforms using a modified dynamic programming heuristic | |
US7581160B2 (en) | ACS circuit and Viterbi decoder with the circuit | |
JP2693256B2 (en) | Viterbi equalizer for recording device and recording device | |
JP3344221B2 (en) | Digital signal decoding apparatus and decoding method used therefor | |
US7346836B2 (en) | E2PR4 viterbi detector and method for adding a branch metric to the path metric of the surviving path while selecting the surviving path | |
US7788572B1 (en) | Parallel maximum a posteriori detectors with forward and reverse viterbi operators having different convergence lengths on a sampled data sequence | |
US20160352364A1 (en) | Max-log-map equivalence log likelihood ratio generation soft viterbi architecture system and method | |
JP2001156653A (en) | Parity-sensitive Viterbi detector and method for recovering information from read signal | |
US6111835A (en) | PRML decoder for processing different channel codes with reduced hardware | |
US20060072687A1 (en) | Decoding circuit and decoding method for a Viterbi decoder | |
JPH11126438A (en) | Digital signal reproducing device | |
JP4099730B2 (en) | Digital signal reproduction device | |
US6396254B1 (en) | Read channel | |
US20070079225A1 (en) | Trace-ahead method and apparatus for determining survivor paths in a Viterbi detector | |
US7120855B2 (en) | Survivor path memory circuit and Viterbi decoder with the same | |
JPH11312984A (en) | Viterbi decoding method, Viterbi decoder, signal processing integrated circuit, data reproducing device, magnetic disk device, and information processing system | |
KR19980070857A (en) | Digital magnetic recording and playback device | |
US7430704B2 (en) | Trellis-based detection process and system | |
US6618552B1 (en) | Method for processing audio and video DVD data | |
Tsukano et al. | Simplified EEPR Viterbi detector based on a transformed radix-4 trellis for a disk drive | |
JPH10233702A (en) | Viterbi decoder and signal reproducing apparatus using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |