# Patent

## Title
Systems and methods for loop feedback

## Abstract

The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for performing loop feedback in a data processing system.

## Background
FIELD OF THE INVENTION
The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for performing loop feedback in a data processing system.
BACKGROUND
Various data processing systems have been developed including storage systems, cellular telephone systems, and radio transmission systems. In such systems data is transferred from a sender to a receiver via some medium. For example, in a storage system, data is sent from a sender (i.e., a write function) to a receiver (i.e., a read function) via a storage medium. As information is stored and transmitted in the form of digital data, errors are introduced that, if not corrected, can corrupt the data and render the information unusable. In some cases, the corruption cannot be corrected using standard processing.
Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for data decoding.
BRIEF SUMMARY
The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for performing loop feedback in a data processing system.
Various embodiments of the present invention provide data processing systems that include a loop feedback circuit. The loop feedback circuit includes: a state detector based equalization circuit operable to equalize a data input to yield a equalizer output, and a data detector circuit operable to apply a data detection algorithm to the equalizer output to yield a detected output.
This summary provides only a general outline of some embodiments of the invention. The phrases “in one embodiment,” “according to one embodiment,” “in various embodiments”, “in one or more embodiments”, “in particular embodiments” and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one embodiment of the present invention, and may be included in more than one embodiment of the present invention. Importantly, such phases do not necessarily refer to the same embodiment. Many other embodiments of the invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
FIG. 1 depicts a data processing circuit including a timing recovery loop circuit relying on a state detector based equalization circuit in accordance with various embodiments of the present invention;
FIG. 2 shows an implementation of a state detector based equalization circuit in accordance with one embodiment of the present invention;
FIG. 3 shows another implementation of a state detector based equalization circuit including parallel adaptive Viterbi circuits in accordance with some embodiments of the present invention;
FIG. 4 depicts yet another implementation of a state detector based equalization circuit including a serial adaptive Viterbi circuit in accordance with some embodiments of the present invention;
FIG. 5 shows yet another implementation of a state detector based equalization circuit including a single adaptive Viterbi circuit in accordance with some embodiments of the present invention;
FIG. 6 is a trellis diagram showing an example operation of a state detector based equalization circuit;
FIG. 7 shows a storage system including a read channel circuit having a timing recovery loop circuit relying on a state detector based equalization circuit in accordance with various embodiments of the present invention;
FIG. 8 depicts a data transmission system including a receiver having a timing recovery loop circuit relying on a state detector based equalization circuit in accordance with one or more embodiments of the present invention; and
FIG. 9 is a flow diagram showing a method for timing loop feedback in accordance with various embodiments of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for performing loop feedback in a data processing system.
Various embodiments of the present invention provide data processing systems that include a loop feedback circuit. The loop feedback circuit includes: a state detector based equalization circuit operable to equalize a data input to yield a equalizer output, and a data detector circuit operable to apply a data detection algorithm to the equalizer output to yield a detected output. In some instances of the aforementioned embodiments, the data processing system is implemented as an integrated circuit. In one or more instances of the aforementioned embodiments, the data processing system is incorporated in a storage device. In other instances of the aforementioned embodiments, the data processing system is incorporated in a data transmission device.
In some instances of the aforementioned embodiments, the data processing system further includes an analog to digital converter circuit operable to convert an analog input into a series of digital samples provided as the data input synchronized by a sampling clock. In such instances, the loop feedback circuit may include a sample clock adjustment circuit operable to update the sampling clock based upon a combination of the equalizer output and the detected output. In some cases, the data processing system further includes a backend processing circuit operable to recover an original data set using the data input. In some such cases, the data detector circuit is a first data detector circuit, the detected output is a first detected output, and the data detection algorithm is a first data detection algorithm. The backend processing circuit includes: a digital finite impulse response circuit operable to equalize the data input to yield a detector input; a second data detector circuit operable to apply a second data detection algorithm to the detector input to yield a second detected output; and a data decoder circuit operable to apply a data decode algorithm to a decoder input to yield a decoded output. The decoder input is derived from the second detected output.
In various instances of the aforementioned embodiments, the data detection algorithm is a first data detection algorithm. The state detector based equalization circuit includes: a left phase equalizer circuit operable to equalize the data input to yield a left phase equalized output, a center phase equalizer circuit operable to equalize the data input to yield a center phase equalized output, a right phase equalizer circuit operable to equalize the data input to yield a right phase equalized output, a left phase channel detector circuit operable to apply a second data detection algorithm to the left phase equalized output to yield a left phase detected output, a center phase channel detector circuit operable to apply the second data detection algorithm to the center phase equalized output to yield a center phase detected output, a right phase channel detector circuit operable to apply the second data detection algorithm to the right phase equalized output to yield a right phase detected output, and a selection circuit operable to provide one of the left phase detected output, the center phase detected output, or the right phase detected output as the equalizer output. The left phase equalized output is offset from a center phase by a first phase offset, and the right phase equalized output is offset from the center phase by a second phase offset. In some cases, the first detection algorithm includes more states than the second detection algorithm. In one particular cases, the first detection algorithm is a sixteen state data detection algorithm, and the second detection algorithm is a four state data detection algorithm.
In various cases, the state detector based equalization circuit further includes an adaptive Viterbi circuit operable to update edge mean values based at least in part on the center phase detected output and a known input. Application of the second data detection algorithm by the center phase channel detector circuit is controlled at least in part by the edge mean values. In various cases, the edge mean values are only updated when a possible error event is detected. The possible error event is defined as a path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path. In one or more cases, updating the edge mean values includes calculating a delta K value in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




where L is the length of the possible error event, edge meank+iknown data path branch is the expected output along the known data path at time or index k+i, and edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i, yk+i is the input signal for corresponding detector or the equalized output from corresponding detector depending upon which is selected, and k+i is an index identifying a particular state transition. In some cases, the edge mean values are only updated when a value of delta K exceeds a threshold value.

In one or more cases, updating the edge mean values is done in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

where μ is a gain factor, L is the length of the possible error event, edge meank+iknown data path branch is the expected output along the known data path at time or index k+i, and edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i, yk+i is the input signal for corresponding detector or the equalized output from corresponding detector depending upon which is selected, and k+i is an index identifying a particular state transition.

Other embodiments of the present invention provide data processing methods that include: converting an analog input into a series of digital samples provided as a data input; equalizing the data input using a left phase equalizer circuit to yield a left phase equalized output; equalizing the data input using a center phase equalizer circuit to yield a center phase equalized output; applying a second data detection algorithm to the left phase equalized output to yield a left phase detected output; applying the second data detection algorithm to the center phase equalized output to yield a center phase detected output; selecting one of the left phase detected output or the center phase detected output as an equalizer output; applying a first data detection algorithm to the equalizer output to yield a detected output; and updating a feedback output based upon a combination of the equalizer output and the detected output. The left phase equalized output is offset from a center phase by a phase offset, and the center phase equalized output is not offset from the center phase.
Turning to FIG. 1, a data processing circuit 100 includes a timing recovery loop circuit 190 relying on a state detector based equalization circuit 120 in accordance with various embodiments of the present invention. Data processing circuit 100 includes an analog to digital converter circuit 110 that samples an analog input 105 synchronous to a sampling clock 155 to yield a series of digital samples 115. In some cases, analog input 105 is derived from a read/write head assembly (not shown) that is disposed in relation to a storage medium (not shown). In other cases, analog input 105 is derived from a receiver circuit (not shown) that is operable to receive a signal from a transmission medium (not shown). The transmission medium may be wired or wireless. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of source from which analog input 105 may be derived. Analog to digital converter circuit 110 may be any circuit known in the art that is capable of producing digital samples corresponding to an analog input signal. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of analog to digital converter circuits that may be used in relation to different embodiments of the present invention.
Digital samples 115 are provided to a backend data processing circuit 160 that operates to recover an originally written data set which is provided as a data output 165. backend data processing circuit 160 may be any circuit known in the art for recovering an originally written data set from a series of digital samples. In one particular embodiment of the present invention, backend data processing circuit 160 includes an equalizer circuit (not shown) that equalizes digital samples 115 to yield an equalized output, a data detector circuit (not shown) that applies a data detection algorithm to the equalized output to yield a detected output, and a data decoder circuit (not shown) operable to apply a data decode algorithm to the detected output to yield data output 165. The data detector circuit may be, but is not limited to, a maximum a posteriori data detector circuit or a Viterbi algorithm data detector circuit as are known in the art. The data decoder circuit may be, but is not limited to, a low density parity check decoder circuit as are known in the art. The equalizer circuit may be, but is not limited to, a digital finite response filter circuit as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of implementations of backend data processing circuit 160 that may be used in relation to different embodiments of the present invention.
Additionally, digital samples 115 are provided to timing recovery loop circuit 190 where they are used to update sampling clock 155. Timing recovery loop circuit 190 includes a state detector based equalization circuit 120 that equalizes digital samples 115 to yield an equalized output 125. State detector based equalization circuit 120 may be implemented similar to one of the circuits discussed below in relation to FIGS. 2-5. Timing recovery loop circuit 190 may operate similar to that discussed below in relation to FIG. 9. A version of equalized output 125 is also provided as a y-output 127.
Equalized output 125 is provided to a detector circuit 130 that applies a data detection algorithm to equalized output 125 to yield a detected output 135. Detector circuit 130 may be, but is not limited to, a sixteen state Viterbi algorithm data detector circuit. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize other types of data detectors that may be used in place of detector circuit 130. Detected output 135 is provided to a partial response target circuit 140 that filters detected output using a target to yield an ideal output 145. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of circuits that may be used to derive an ideal output in accordance with different embodiments of the present invention.
Ideal output 145 and y-output 127 are provided to a phase/frequency adjustment circuit 150. Phase/frequency adjustment circuit 150 is operable to calculate a difference between ideal output 145 and y-output 127. The difference corresponds to an error, and the error is used to adjust sampling clock 155. The feedback loop is adaptively adjusted to reduce the error by modifying the phase and/or frequency of sampling clock 155. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of circuits that may be used in relation to different embodiments of the present invention to adjust sampling clock 155 based upon a difference between ideal output 145 and y-output 127.
Turning to FIG. 2, a state detector based equalization circuit 200 is shown in accordance with one embodiment of the present invention. State detector based equalization circuit 200 may be used in place of state detector based equalization circuit 120. Where state detector based equalization circuit 200 is used in place of state detector based equalization circuit 120, digital samples 115 are provided as a digital signal 205.
State detector based equalization circuit 200 includes a left phase equalizer circuit 210 that is operable to equalize digital signal 205 adjusted for a left phase to yield a left phase equalized output 221. Left phase equalizer circuit 210 may be implemented as a digital finite impulse response filter circuit. Digital signal 205 adjusted for the left phase is done by interpolating digital signal 205 to correspond to a sampling clock operating at the current sampling phase less an offset (i.e., current sampling phase −Δ phase). In some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. In addition, state detector based equalization circuit 200 includes a center phase equalizer circuit 212 that is operable to equalize digital signal 205 to yield a center phase equalized output 223. Center phase equalizer circuit 212 may be implemented as a digital finite impulse response filter circuit. Yet further, state detector based equalization circuit 200 includes a right phase equalizer circuit 214 that is operable to equalize digital signal 205 adjusted for a right phase to yield a right phase equalized output 225. Right phase equalizer circuit 214 may be implemented as a digital finite impulse response filter circuit. Digital signal 205 adjusted for the right phase is done by interpolating digital signal 205 to correspond to a sampling clock operating at the current sampling phase plus an offset (i.e., current sampling phase +Δ phase). Again, in some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. Using a left phase, center phase and right phase equalizer circuits allows for an extended range of phase adjustment by timing recovery loop circuit 190.
Left phase equalized output 221 is provided to a left phase channel detector circuit 230. In some embodiments of the present invention, left phase channel detector circuit 230 is a four state Viterbi algorithm data detector circuit. Left phase channel detector circuit 230 is operable to apply a data detection algorithm to left phase equalized output 221 to yield a left phase detected output 241. Left phase detected output 241 includes both hard decisions and soft data. Such soft data is a likelihood that a corresponding hard decision is correct. In some cases, the data is log likelihood ratio (LLR) data as is known in the art. Center phase equalized output 223 is provided to a center phase channel detector circuit 232. In some embodiments of the present invention, center phase channel detector circuit 232 is a four state Viterbi algorithm data detector circuit. Center phase channel detector circuit 232 is operable to apply the data detection algorithm to center phase equalized output 223 to yield a center phase detected output 243. Center phase detected output 243 includes both hard decisions and soft data. Right phase equalized output 225 is provided to a right phase channel detector circuit 234. In some embodiments of the present invention, right phase channel detector circuit 234 is a four state Viterbi algorithm data detector circuit. Right phase channel detector circuit 234 is operable to apply the data detection algorithm to right phase equalized output 225 to yield a right phase detected output 245. Right phase detected output 245 includes both hard decisions and soft data.
Each of left phase detected output 241, center phase detected output 243 and right phase detected output 245 are provided to a decision combination selector circuit 250. Decision combination selector circuit 250 selects one of left phase detected output 241, center phase detected output 243 or right phase detected output 245 that exhibits the highest quality as indicated by the soft data. The selected one of left phase detected output 241, center phase detected output 243 or right phase detected output 245 is provided as decision output 252. As such, decision output 252 includes both the hard decisions and the soft data corresponding to the selected one of left phase detected output 241, center phase detected output 243 or right phase detected output 245.
Turning to FIG. 3, a state detector based equalization circuit 300 including parallel adaptive Viterbi circuits 360, 362, 364 is shown in accordance with some embodiments of the present invention. State detector based equalization circuit 300 may be used in place of state detector based equalization circuit 120. Where state detector based equalization circuit 300 is used in place of state detector based equalization circuit 120, digital samples 115 are provided as a digital signal 305 and a decision output 352 is provided as equalized output 125.
State detector based equalization circuit 300 includes a left phase equalizer circuit 310 that is operable to equalize digital signal 305 adjusted for a left phase to yield a left phase equalized output 321. Left phase equalizer circuit 310 may be implemented as a digital finite impulse response filter circuit. Digital signal 305 adjusted for the left phase is done by interpolating digital signal 305 to correspond to a sampling clock operating at the current sampling phase less an offset (i.e., current sampling phase −Δ phase). In some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. In addition, state detector based equalization circuit 300 includes a center phase equalizer circuit 312 that is operable to equalize digital signal 305 to yield a center phase equalized output 323. Center phase equalizer circuit 312 may be implemented as a digital finite impulse response filter circuit. Yet further, state detector based equalization circuit 300 includes a right phase equalizer circuit 314 that is operable to equalize digital signal 305 adjusted for a right phase to yield a right phase equalized output 325. Right phase equalizer circuit 314 may be implemented as a digital finite impulse response filter circuit. Digital signal 305 adjusted for the right phase is done by interpolating digital signal 305 to correspond to a sampling clock operating at the current sampling phase plus an offset (i.e., current sampling phase +Δ phase). Again, in some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. Using a left phase, center phase and right phase equalizer circuits allows for an extended range of phase adjustment by timing recovery loop circuit 190.
Left phase equalized output 321 is provided to a left phase channel detector circuit 330. In some embodiments of the present invention, left phase channel detector circuit 330 is a four state Viterbi algorithm data detector circuit. Left phase channel detector circuit 330 is operable to apply a data detection algorithm to left phase equalized output 321 to yield a left phase detected output 341. Left phase detected output 341 includes both hard decisions and soft data.
Left phase channel detector circuit 330 applies the data detection algorithm guided by edge mean values 363 calculated by an adaptive Viterbi circuit 360. In particular, adaptive Viterbi circuit 360 calculates edge mean values 363 based upon a known data input 303 and an input 331 corresponding to left phase detected output 341. In particular, adaptive Viterbi circuit 360 determines whether a possible error event has occurred. A possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path. Turning to FIG. 6, a trellis diagram 600 is depicted that shows an example of such a possible error event. In particular, the decision data path (i.e., the output from left phase channel detector circuit 330) transitions to state 615 and the known data path (i.e., an output from a channel detector circuit where known data 303 is provided as an input) transitions to state 612. This divergence of the known data path and the decision data path continue until each path re-converges at state 633. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of possible error events that may occur in relation to one or more embodiments of the present invention. The identification of a possible error event is done by an adaptive Viterbi circuit.
Where a possible error event is not identified by adaptive Viterbi circuit 360, edge mean values 363 are not updated. Alternatively, where a possible error event is identified by adaptive Viterbi circuit 360, a delta K value is calculated for the possible event. The delta K value is calculated in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




where L is the length of the possible error event. Thus, using the example of FIG. 6, L is equal to three (3) corresponding to the number of transitions between state 609 and state 633 less one (1). The term edge meank+iknown data path branch is the expected output along the known data path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0known data path branch is the expected output along the known data for a transition between state 609 and state 612, edge meank+1known data path branch is the expected output along the known data for a transition between state 612 and state 618, edge meank+2known data path branch is the expected output along the known data for a transition between state 618 and state 627, and edge meank+3known data path branch is the expected output along the known data for a transition between state 627 and state 633. The term edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0decision data path branch is the expected output along the Viterbi decision path for a transition between state 609 and state 615, edge meank+1decision data path branch is the expected output along the Viterbi decision path for a transition between state 615 and state 621, edge meank+2decision data path branch is the expected output along the Viterbi decision path for a transition between state 621 and state 624, and edge meank+3decision data path branch is the expected output along the Viterbi decision path for a transition between state 624 and state 633. The term yk+i is input 331 corresponding to the k+i state transition.

Adaptive Viterbi circuit 360 compares the calculated delta K value with a threshold value. This threshold value may be either fixed or programmable depending upon the particular implementation. Where the delta K value is greater than the threshold value, edge mean values 363 are not updated. In contrast, where the delta K value is equal to or smaller than the threshold value, adaptive Viterbi circuit 360 calculates updated edge mean values 363. Updated edge mean values 363 are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

where μ is a gain factor. In some cases, μ is less than one (1). In particular cases, μ is less than 0.1. In various embodiments of the present invention μ is programmable, while in other embodiments μ is fixed.

Center phase equalized output 323 is provided to a center phase channel detector circuit 332. In some embodiments of the present invention, center phase channel detector circuit 332 is a four state Viterbi algorithm data detector circuit. Center phase channel detector circuit 332 is operable to apply the data detection algorithm to center phase equalized output 323 to yield a center phase detected output 343. Center phase detected output 343 includes both hard decisions and soft data.
Center phase channel detector circuit 332 applies the data detection algorithm guided by edge mean values 365 calculated by an adaptive Viterbi circuit 362. In particular, adaptive Viterbi circuit 362 calculates edge mean values 365 based upon a known data input 303 and an input 333 corresponding to center phase detected output 333. In particular, adaptive Viterbi circuit 362 determines whether a possible error event has occurred. Again, a possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path.
Where a possible error event is not identified by adaptive Viterbi circuit 362, edge mean values 365 are not updated. Alternatively, where a possible error event is identified by adaptive Viterbi circuit 362, a delta K value is calculated for the possible event. The delta K value is calculated in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




The term yk+i is input 333 corresponding to the k+i state transition.

Adaptive Viterbi circuit 362 compares the calculated delta K value with the same threshold value used by adaptive Viterbi circuit 362. Where the delta K value is greater than the threshold value, edge mean values 365 are not updated. In contrast, where the delta K value is equal to or smaller than the threshold value, adaptive Viterbi circuit 362 calculates updated edge mean values 365. Updated edge mean values 365 are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

Right phase equalized output 325 is provided to a right phase channel detector circuit 334. In some embodiments of the present invention, right phase channel detector circuit 334 is a four state Viterbi algorithm data detector circuit. Right phase channel detector circuit 334 is operable to apply the data detection algorithm to right phase equalized output 325 to yield a right phase detected output 345. Right phase detected output 345 includes both hard decisions and soft data.
Right phase channel detector circuit 334 applies the data detection algorithm guided by edge mean values 367 calculated by an adaptive Viterbi circuit 364. In particular, adaptive Viterbi circuit 364 calculates edge mean values 367 based upon a known data input 303 and an input 335 corresponding to right phase detected output 345. In particular, adaptive Viterbi circuit 364 determines whether a possible error event has occurred. Again, a possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path.
Where a possible error event is not identified by adaptive Viterbi circuit 364, edge mean values 367 are not updated. Alternatively, where a possible error event is identified by adaptive Viterbi circuit 364, a delta K value is calculated for the possible event. The delta K value is calculated in accordance with the following equation:




  
    Δ
    k
  
  =
  
    
      ∑
      
        i
        =
        0
      
      L
    
    ⁢
    
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
      .
    
  




The term yk+i is input 335 corresponding to the k+i state transition.

Adaptive Viterbi circuit 364 compares the calculated delta K value with the same threshold value used by adaptive Viterbi circuit 364. Where the delta K value is greater than the threshold value, edge mean values 367 are not updated. In contrast, where the delta K value is equal to or smaller than the threshold value, adaptive Viterbi circuit 364 calculates updated edge mean values 367. Updated edge mean values 367 are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

Each of left phase detected output 341, center phase detected output 343 and right phase detected output 345 are provided to a decision combination selector circuit 350. Decision combination selector circuit 350 selects one of left phase detected output 341, center phase detected output 343 or right phase detected output 345 that exhibits the highest quality as indicated by the soft data. The selected one of left phase detected output 341, center phase detected output 343 or right phase detected output 345 is provided as decision output 352. As such, decision output 352 includes both the hard decisions and the soft data corresponding to the selected one of left phase detected output 341, center phase detected output 343 or right phase detected output 345.
Turning to FIG. 4, a state detector based equalization circuit 400 including a serial adaptive Viterbi circuit 460 is shown in accordance with some embodiments of the present invention. State detector based equalization circuit 400 may be used in place of state detector based equalization circuit 120. Where state detector based equalization circuit 400 is used in place of state detector based equalization circuit 120, digital samples 115 are provided as a digital signal 405 and a decision output 452 is provided as equalized output 125.
State detector based equalization circuit 400 includes a left phase equalizer circuit 410 that is operable to equalize digital signal 405 adjusted for a left phase to yield a left phase equalized output 421. Left phase equalizer circuit 410 may be implemented as a digital finite impulse response filter circuit. Digital signal 405 adjusted for the left phase is done by interpolating digital signal 405 to correspond to a sampling clock operating at the current sampling phase less an offset (i.e., current sampling phase −Δ phase). In some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. In addition, state detector based equalization circuit 400 includes a center phase equalizer circuit 412 that is operable to equalize digital signal 405 to yield a center phase equalized output 423. Center phase equalizer circuit 412 may be implemented as a digital finite impulse response filter circuit. Yet further, state detector based equalization circuit 400 includes a right phase equalizer circuit 414 that is operable to equalize digital signal 405 adjusted for a right phase to yield a right phase equalized output 425. Right phase equalizer circuit 414 may be implemented as a digital finite impulse response filter circuit. Digital signal 405 adjusted for the right phase is done by interpolating digital signal 405 to correspond to a sampling clock operating at the current sampling phase plus an offset (i.e., current sampling phase +Δ phase). Again, in some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. Using a left phase, center phase and right phase equalizer circuits allows for an extended range of phase adjustment by timing recovery loop circuit 190.
Left phase equalized output 421 is provided to a left phase channel detector circuit 430. In some embodiments of the present invention, left phase channel detector circuit 430 is a four state Viterbi algorithm data detector circuit. Left phase channel detector circuit 430 is operable to apply a data detection algorithm to left phase equalized output 421 to yield a left phase detected output 441. Left phase detected output 441 includes both hard decisions and soft data. Left phase channel detector circuit 430 applies the data detection algorithm guided by edge mean values 463 calculated by an adaptive Viterbi circuit 460. In particular, adaptive Viterbi circuit 460 calculates edge mean values 463 based upon a known data input 403 and an input 431 corresponding to left phase detected output 441.
Center phase equalized output 423 is provided to a center phase channel detector circuit 432. In some embodiments of the present invention, center phase channel detector circuit 432 is a four state Viterbi algorithm data detector circuit. Center phase channel detector circuit 432 is operable to apply the data detection algorithm to center phase equalized output 423 to yield a center phase detected output 443. Center phase detected output 443 includes both hard decisions and soft data. Center phase channel detector circuit 432 applies the data detection algorithm guided by edge mean values 465 also calculated by adaptive Viterbi circuit 460.
Right phase equalized output 425 is provided to a right phase channel detector circuit 434. In some embodiments of the present invention, right phase channel detector circuit 434 is a four state Viterbi algorithm data detector circuit. Right phase channel detector circuit 434 is operable to apply the data detection algorithm to right phase equalized output 425 to yield a right phase detected output 445. Right phase detected output 445 includes both hard decisions and soft data. Right phase channel detector circuit 434 applies the data detection algorithm guided by edge mean values 467 also calculated by adaptive Viterbi circuit 460.
Adaptive Viterbi circuit 460 serially calculates edge mean values 463, edge mean values 465 and edge mean values 467. In particular, adaptive Viterbi circuit 460 first calculates edge mean values 463 based upon input 431 and known data 403. Next, adaptive Viterbi circuit 460 calculates edge mean values 465 based upon input 433 and known data 403. Finally, adaptive Viterbi circuit 460 calculates edge mean values 467 based upon input 435 and known data 403. This process of cycling through the updating of edge mean values 463, edge mean values 465 and edge mean values 467 is repeatedly performed.
In performing its calculation, adaptive Viterbi circuit 460 determines whether a possible error event has occurred. A possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path. Turning to FIG. 6, trellis diagram 600 is depicted that shows an example of such a possible error event. In particular, the decision data path (i.e., the output from left phase channel detector circuit 430, the output from center phase channel detector circuit 432, or the output from right phase channel detector circuit 434 depending upon which of edge mean values 463, edge mean values 465 and edge mean values 467 are being updated) transitions to state 615 and the known data path (i.e., an output from a channel detector circuit where known data 403 is provided as an input) transitions to state 612. This divergence of the known data path and the decision data path continue until each path re-converges at state 633. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of possible error events that may occur in relation to one or more embodiments of the present invention. The identification of a possible error event is done by an adaptive Viterbi circuit.
Where a possible error event is not identified by adaptive Viterbi circuit 460, the currently processing edge mean values (i.e., one of edge mean values 463, edge mean values 465 or edge mean values 467) are not updated. Alternatively, where a possible error event is identified by adaptive Viterbi circuit 460, a delta K value is calculated for the possible event. The delta K value is calculated in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




where L is the length of the possible error event. Thus, using the example of FIG. 6, L is equal to three (3) corresponding to the number of transitions between state 609 and state 633 less one (1). The term edge meank+iknown data path branch is the expected output along the known data path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0known data path branch is the expected output along the known data for a transition between state 609 and state 612, edge meank+1known data path branch is the expected output along the known data for a transition between state 612 and state 618, edge meank+2known data path branch is the expected output along the known data for a transition between state 618 and state 627, and edge meank+3known data path branch is the expected output along the known data for a transition between state 627 and state 633. The term edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0decision data path branch is the expected output along the Viterbi decision path for a transition between state 609 and state 615, edge meank+1decision data path branch is the expected output along the Viterbi decision path for a transition between state 615 and state 621, edge meank+2decision data path branch is the expected output along the Viterbi decision path for a transition between state 621 and state 624, and edge meank+3decision data path branch is the expected output along the Viterbi decision path for a transition between state 624 and state 633. The term yk+i is the input corresponding to the edge mean value being calculated (i.e., input 431 where edge mean values 463 are being updated, input 433 where edge mean values 465 are being updated, or input 435 where edge mean values 467 are being updated) corresponding to the k+i state transition.

Adaptive Viterbi circuit 460 compares the calculated delta K value with a threshold value. This threshold value may be either fixed or programmable depending upon the particular implementation. Where the delta K value is greater than the threshold value, edge mean values 463 are not updated. In contrast, where the delta K value is equal to or smaller than the threshold value, adaptive Viterbi circuit 460 calculates updated edge mean values (i.e., one of edge mean values 463, edge mean values 465 and edge mean values 467). The updated edge mean values are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

and where μ is a gain factor. In various embodiments of the present invention μ is programmable, while in other embodiments μ is fixed.

Each of left phase detected output 441, center phase detected output 443 and right phase detected output 445 are provided to a decision combination selector circuit 450. Decision combination selector circuit 450 selects one of left phase detected output 441, center phase detected output 443 or right phase detected output 445 that exhibits the highest quality as indicated by the soft data. The selected one of left phase detected output 441, center phase detected output 443 or right phase detected output 445 is provided as decision output 452. As such, decision output 452 includes both the hard decisions and the soft data corresponding to the selected one of left phase detected output 441, center phase detected output 443 or right phase detected output 445.
Turning to FIG. 5, a state detector based equalization circuit 500 including a single adaptive Viterbi circuit 560 is shown in accordance with some embodiments of the present invention. State detector based equalization circuit 500 may be used in place of state detector based equalization circuit 120. Where state detector based equalization circuit 500 is used in place of state detector based equalization circuit 120, digital samples 115 are provided as a digital signal 505 and a decision output 552 is provided as equalized output 125.
State detector based equalization circuit 500 includes a left phase equalizer circuit 510 that is operable to equalize digital signal 505 adjusted for a left phase to yield a left phase equalized output 521. Left phase equalizer circuit 510 may be implemented as a digital finite impulse response filter circuit. Digital signal 505 adjusted for the left phase is done by interpolating digital signal 505 to correspond to a sampling clock operating at the current sampling phase less an offset (i.e., current sampling phase −Δ phase). In some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. In addition, state detector based equalization circuit 500 includes a center phase equalizer circuit 512 that is operable to equalize digital signal 505 to yield a center phase equalized output 523. Center phase equalizer circuit 512 may be implemented as a digital finite impulse response filter circuit. Yet further, state detector based equalization circuit 500 includes a right phase equalizer circuit 514 that is operable to equalize digital signal 505 adjusted for a right phase to yield a right phase equalized output 525. Right phase equalizer circuit 514 may be implemented as a digital finite impulse response filter circuit. Digital signal 505 adjusted for the right phase is done by interpolating digital signal 505 to correspond to a sampling clock operating at the current sampling phase plus an offset (i.e., current sampling phase +Δ phase). Again, in some embodiments of the present invention, the value of Δ phase is programmable, while in other embodiments the value of Δ phase is fixed. Using a left phase, center phase and right phase equalizer circuits allows for an extended range of phase adjustment by timing recovery loop circuit 190.
Center phase equalized output 523 is provided to a center phase channel detector circuit 532. In some embodiments of the present invention, center phase channel detector circuit 532 is a four state Viterbi algorithm data detector circuit. Center phase channel detector circuit 532 is operable to apply the data detection algorithm to center phase equalized output 523 to yield a center phase detected output 543. Center phase detected output 543 includes both hard decisions and soft data. Center phase channel detector circuit 532 applies the data detection algorithm guided by edge mean values 565 calculated by adaptive Viterbi circuit 560.
Adaptive Viterbi circuit 560 determines whether a possible error event has occurred. A possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path. Turning to FIG. 6, a trellis diagram 600 is depicted that shows an example of such a possible error event. In particular, the decision data path (i.e., the output from center phase channel detector circuit 532) transitions to state 615 and the known data path (i.e., an output from a channel detector circuit where known data 503 is provided as an input) transitions to state 612. This divergence of the known data path and the decision data path continue until each path re-converges at state 633. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of possible error events that may occur in relation to one or more embodiments of the present invention. The identification of a possible error event is done by an adaptive Viterbi circuit.
Where a possible error event is not identified by adaptive Viterbi circuit 560, edge mean values 563 are not updated. Alternatively, where a possible error event is identified by adaptive Viterbi circuit 560, a delta K value is calculated for the possible event. The delta K value is calculated in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




where L is the length of the possible error event. Thus, using the example of FIG. 6, L is equal to three (3) corresponding to the number of transitions between state 609 and state 633 less one (1). The term edge meank+iknown data path branch is the expected output along the known data path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0known data path branch is the expected output along the known data for a transition between state 609 and state 612, edge meank+1known data path branch is the expected output along the known data for a transition between state 612 and state 618, edge meank+2known data path branch is the expected output along the known data for a transition between state 618 and state 627, and edge meank+3known data path branch is the expected output along the known data for a transition between state 627 and state 633. The term edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0decision data path branch is the expected output along the Viterbi decision path for a transition between state 609 and state 615, edge meank+1decision data path branch is the expected output along the Viterbi decision path for a transition between state 615 and state 621, edge meank+2decision data path branch is the expected output along the Viterbi decision path for a transition between state 621 and state 624, and edge meank+3decision data path branch is the expected output along the Viterbi decision path for a transition between state 624 and state 633. The term yk+i is the input corresponding to the edge mean value being calculated (i.e., input 431 where edge mean values 463 are being updated, input 433 where edge mean values 465 are being updated, or input 435 where edge mean values 467 are being updated) corresponding to the k+i state transition.

Adaptive Viterbi circuit 560 compares the calculated delta K value with a threshold value. This threshold value may be either fixed or programmable depending upon the particular implementation. Where the delta K value is not greater than the threshold value, edge mean values 563 are not updated. In contrast, where the delta K value is equal to or greater than the threshold value, adaptive Viterbi circuit 560 calculates updated edge mean values 563. Updated edge mean values 563 are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

and where μ is a gain factor. In various embodiments of the present invention μ is programmable, while in other embodiments μ is fixed.

Left phase equalized output 521 is provided to a left phase channel detector circuit 530. In some embodiments of the present invention, left phase channel detector circuit 530 is a four state Viterbi algorithm data detector circuit. Left phase channel detector circuit 530 is operable to apply a data detection algorithm to left phase equalized output 521 to yield a left phase detected output 541. Left phase detected output 541 includes both hard decisions and soft data. Left phase channel detector circuit 530 applies the data detection algorithm guided by edge mean values 563 calculated by adaptive Viterbi circuit 560. Right phase equalized output 525 is provided to a right phase channel detector circuit 534. In some embodiments of the present invention, right phase channel detector circuit 534 is a four state Viterbi algorithm data detector circuit. Right phase channel detector circuit 534 is operable to apply the data detection algorithm to right phase equalized output 525 to yield a right phase detected output 545. Right phase detected output 545 includes both hard decisions and soft data. Right phase channel detector circuit 534 applies the data detection algorithm guided by edge mean values 565 calculated by adaptive Viterbi circuit 560.
Each of left phase detected output 541, center phase detected output 543 and right phase detected output 545 are provided to a decision combination selector circuit 550. Decision combination selector circuit 550 selects one of left phase detected output 541, center phase detected output 543 or right phase detected output 545 that exhibits the highest quality as indicated by the soft data. The selected one of left phase detected output 541, center phase detected output 543 or right phase detected output 545 is provided as decision output 552. As such, decision output 552 includes both the hard decisions and the soft data corresponding to the selected one of left phase detected output 541, center phase detected output 543 or right phase detected output 545.
Turning to FIG. 7, a storage system 700 including a read channel circuit 710 having a timing recovery loop circuit relying on a state detector based equalization circuit in accordance with various embodiments of the present invention. Storage system 700 may be, for example, a hard disk drive. Storage system 700 also includes a preamplifier 770, an interface controller 720, a hard disk controller 766, a motor controller 768, a spindle motor 772, a disk platter 778, and a read/write head 776. Interface controller 720 controls addressing and timing of data to/from disk platter 778. The data on disk platter 778 consists of groups of magnetic signals that may be detected by read/write head assembly 776 when the assembly is properly positioned over disk platter 778. In one embodiment, disk platter 778 includes magnetic signals recorded in accordance with either a longitudinal or a perpendicular recording scheme.
In a typical read operation, read/write head assembly 776 is accurately positioned by motor controller 768 over a desired data track on disk platter 778. Motor controller 768 both positions read/write head assembly 776 in relation to disk platter 778 and drives spindle motor 772 by moving read/write head assembly to the proper data track on disk platter 778 under the direction of hard disk controller 766. Spindle motor 772 spins disk platter 778 at a determined spin rate (RPMs). Once read/write head assembly 776 is positioned adjacent the proper data track, magnetic signals representing data on disk platter 778 are sensed by read/write head assembly 776 as disk platter 778 is rotated by spindle motor 772. The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter 778. This minute analog signal is transferred from read/write head assembly 776 to read channel circuit 710 via preamplifier 770. Preamplifier 770 is operable to amplify the minute analog signals accessed from disk platter 778. In turn, read channel circuit 710 decodes and digitizes the received analog signal to recreate the information originally written to disk platter 778. This data is provided as read data 703 to a receiving circuit. A write operation is substantially the opposite of the preceding read operation with write data 701 being provided to read channel circuit 710. This data is then encoded and written to disk platter 778.
As part of processing the received information, read channel circuit 710 utilizes a loop circuit including state detector based equalization to update a sample clock used by an analog to digital converter circuit. The loop circuit may be implemented similar to that discussed above in relation to FIG. 1. The state detector based equalization may be implemented similar to one of the circuits discussed above in relation to FIG. 2-5. The process of sample clock adjustment may be done similar to that discussed above in relation to FIG. 9 below.
It should be noted that storage system 700 may be integrated into a larger storage system such as, for example, a RAID (redundant array of inexpensive disks or redundant array of independent disks) based storage system. Such a RAID storage system increases stability and reliability through redundancy, combining multiple disks as a logical unit. Data may be spread across a number of disks included in the RAID storage system according to a variety of algorithms and accessed by an operating system as if it were a single disk. For example, data may be mirrored to multiple disks in the RAID storage system, or may be sliced and distributed across multiple disks in a number of techniques. If a small number of disks in the RAID storage system fail or become unavailable, error correction techniques may be used to recreate the missing data based on the remaining portions of the data from the other disks in the RAID storage system. The disks in the RAID storage system may be, but are not limited to, individual storage systems such as storage system 700, and may be located in close proximity to each other or distributed more widely for increased security. In a write operation, write data is provided to a controller, which stores the write data across the disks, for example by mirroring or by striping the write data. In a read operation, the controller retrieves the data from the disks. The controller then yields the resulting read data as if the RAID storage system were a single disk.
A data decoder circuit used in relation to read channel circuit 710 may be, but is not limited to, a low density parity check (LDPC) decoder circuit as are known in the art. Such low density parity check technology is applicable to transmission of information over virtually any channel or storage of information on virtually any media. Transmission applications include, but are not limited to, optical fiber, radio frequency channels, wired or wireless local area networks, digital subscriber line technologies, wireless cellular, Ethernet over any medium such as copper or optical fiber, cable channels such as cable television, and Earth-satellite communications. Storage applications include, but are not limited to, hard disk drives, compact disks, digital video disks, magnetic tapes and memory devices such as DRAM, NAND flash, NOR flash, other non-volatile memories and solid state drives.
In addition, it should be noted that storage system 700 may be modified to include solid state memory that is used to store data in addition to the storage offered by disk platter 778. This solid state memory may be used in parallel to disk platter 778 to provide additional storage. In such a case, the solid state memory receives and provides information directly to read channel circuit 710. Alternatively, the solid state memory may be used as a cache where it offers faster access time than that offered by disk platter 778. In such a case, the solid state memory may be disposed between interface controller 720 and read channel circuit 710 where it operates as a pass through to disk platter 778 when requested data is not available in the solid state memory or when the solid state memory does not have sufficient storage to hold a newly written data set. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of storage systems including both disk platter 778 and a solid state memory.
Turning to FIG. 8, a data transmission system 891 including a receiver 895 having a timing recovery loop circuit relying on a state detector based equalization circuit in accordance with various embodiments of the present invention. Data transmission system 891 includes a transmitter 893 that is operable to transmit encoded information via a transfer medium 897 as is known in the art. The encoded data is received from transfer medium 897 by a receiver 895. Receiver 895 processes the received input to yield the originally transmitted data.
As part of processing the received information, receiver 895 utilizes a loop circuit including state detector based equalization to update a sample clock used by an analog to digital converter circuit. The loop circuit may be implemented similar to that discussed above in relation to FIG. 1. The state detector based equalization may be implemented similar to one of the circuits discussed above in relation to FIG. 2-5. The process of sample clock adjustment may be done similar to that discussed above in relation to FIG. 9 below.
Turning to FIG. 9, a flow diagram 900 shows a method for timing loop feedback in accordance with various embodiments of the present invention. Following flow diagram 900, it is determined whether a possible error event occurred (block 905). A possible error event is defined as a finite path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path. FIG. 6 shows one example of a possible error event where the decision data path (shown as a dashed line) diverges at state 609 from the known data path (shown as a solid line). In particular, the decision data path transitions to state 615 and the known data path transitions to state 612. This divergence of the known data path and the decision data path continue until each path re-converges at state 633. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of possible error events that may occur in relation to one or more embodiments of the present invention. The identification of a possible error event is done by an adaptive Viterbi circuit.
Where a possible error event is identified (block 905), a delta K value is calculated for the event (block 910). The delta K value is calculated in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,




where L is the length of the possible error event. Thus, using the example of FIG. 6, L is equal to three (3) corresponding to the number of transitions between state 609 and state 633 less one (1). The term edge meank+iknown data path branch is the expected output along the known data path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0known data path branch is the expected output along the known data for a transition between state 609 and state 612, edge meank+1known data path branch is the expected output along the known data for a transition between state 612 and state 618, edge meank+2known data path branch is the expected output along the known data for a transition between state 618 and state 627, and edge meank+3known data path branch is the expected output along the known data for a transition between state 627 and state 633. The term edge meank+idecision data path branch is the expected output along the Viterbi decision path at time or index k+i. Thus, using the example of FIG. 6, edge meank+0decision data path branch is the expected output along the Viterbi decision path for a transition between state 609 and state 615, edge meank+1decision data path branch is the expected output along the Viterbi decision path for a transition between state 615 and state 621, edge meank+2decision data path branch is the expected output along the Viterbi decision path for a transition between state 621 and state 624, and edge meank+3decision data path branch is the expected output along the Viterbi decision path for a transition between state 624 and state 633. The term yk+i is the input corresponding to the edge mean value being calculated (i.e., input 431 where edge mean values 463 are being updated, input 433 where edge mean values 465 are being updated, or input 435 where edge mean values 467 are being updated) corresponding to the k+i state transition.

The delta K value is compared with a threshold value (block 915). This threshold value may be either fixed or programmable depending upon the particular implementation. Where the delta K value is smaller than the threshold (block 915), updated edge mean values are calculated (block 920). The updated edge mean values are calculated in accordance with the following equations:

edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),

edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

and where μ is a gain factor.

These updated edge mean values are provided to a data detector circuit where they are used to modify a detected output. This detected output is then used to calculate and error value (i.e., a difference from the actual detected output and an ideal output) and the error value is used to update a sample clock used to control a sample phase and/or frequency of an analog to digital converter circuit from which the term yk+i is derived (block 930).
It should be noted that the various blocks discussed in the above application may be implemented in integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system or circuit, or a subset of the block, system or circuit. Further, elements of the blocks, systems or circuits may be implemented across multiple integrated circuits. Such integrated circuits may be any type of integrated circuit known in the art including, but are not limited to, a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. It should also be noted that various functions of the blocks, systems or circuits discussed herein may be implemented in either software or firmware. In some cases, the one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware.
In conclusion, the invention provides novel systems, devices, methods and arrangements for data processing. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.

## Claims

1. A data processing system, the data processing system comprising:
a loop feedback circuit including:
an equalization circuit operable to equalize a data input to yield a equalizer output, wherein the equalization circuit includes:
a first phase equalizer circuit operable to equalize the data input to yield a first phase equalized output, wherein the first phase equalized output is offset from a defined phase by a first phase offset;
a second phase equalizer circuit operable to equalize the data input to yield a second phase equalized output, wherein the second phase equalized output is offset from the defined phase by a second phase offset; and
a selection circuit operable to select between at least one of a first output derived from the first phase equalized output or a second output derived from the second phase equalized output to be provided as the equalizer output; and

a data detector circuit operable to apply a data detection algorithm to the equalizer output to yield a detected output.

2. The data processing system of claim 1, wherein the data processing system further comprises:
an analog to digital converter circuit operable to convert an analog input into a series of digital samples provided as the data input synchronized by a sampling clock; and
wherein the loop feedback circuit further comprises:
a sample clock adjustment circuit operable to update the sampling clock based upon a combination of the equalizer output and the detected output.

3. The data processing system of claim 2, wherein the data processing system further comprises:
a backend processing circuit operable to recover an original data set using the data input.

4. The data processing system of claim 3, wherein the data detector circuit is a first data detector circuit, the detected output is a first detected output, and the data detection algorithm is a first data detection algorithm, and wherein the backend processing circuit comprises:
a digital finite impulse response circuit operable to equalize the data input to yield a detector input;
a second data detector circuit operable to apply a second data detection algorithm to the detector input to yield a second detected output; and
a data decoder circuit operable to apply a data decode algorithm to a decoder input to yield a decoded output, wherein the decoder input is derived from the second detected output.

5. The data processing system of claim 1, wherein the data detection algorithm is a first data detection algorithm, wherein the defined phase offset is zero, wherein the first phase offset is a left phase offset, wherein the second phase offset is a right phase offset, and wherein the equalization circuit comprises:
a center phase equalizer circuit operable to equalize the data input to yield a center phase equalized output;
a left phase channel detector circuit operable to apply a second data detection algorithm to the first phase equalized output to yield a left phase detected output, wherein the left phase detected output is the first output derived from the first phase equalized output;
a center phase channel detector circuit operable to apply the second data detection algorithm to the center phase equalized output to yield a center phase detected output, wherein the center phase detected output is the second output derived from the second phase equalized output;
a right phase channel detector circuit operable to apply the second data detection algorithm to the second phase equalized output to yield a right phase detected output; and
wherein the selection circuit operable to provide one of the left phase detected output, the center phase detected output, or the right phase detected output as the equalizer output.

6. The data processing system of claim 5, wherein the first detection algorithm includes more states than the second detection algorithm.

7. The data processing system of claim 6, wherein the first detection algorithm is a sixteen state data detection algorithm, and the second detection algorithm is a four state data detection algorithm.

8. The data processing system of claim 5, wherein the equalization circuit further comprises:
an adaptive Viterbi circuit operable to update edge mean values based at least in part on the center phase detected output and a known input, wherein application of the second data detection algorithm by the center phase channel detector circuit is controlled at least in part by the edge mean values.

9. The data processing systems of claim 8, wherein the edge mean values are only updated when a possible error event is detected, wherein the possible error event is defined as a path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path.

10. The data processing system of claim 8, wherein updating the edge mean values includes calculating a delta K value in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,



wherein L is the length of the possible error event,
wherein edge meank+iknown data path branch is the expected output along the known data path, and wherein edge meank+idecision data path branch is the expected output along a decision path of the data detector circuit.

11. The data processing system of claim 10, wherein the edge mean values are only updated when a value of delta K is less than a threshold value.

12. The data processing system of claim 8, wherein updating the edge mean values is done in accordance with the following equations:


edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),



edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

wherein μ is a gain factor, wherein L is the length of the possible error event, wherein edge meank+iknown data path branch is the expected output along the known data path, and wherein
edge meank+idecision data path branch is the expected output along a decision path of the data detector circuit, yk+i is the center phase detected output.

13. The data processing system of claim 1, wherein the data processing system is implemented as an integrated circuit.

14. The data processing system of claim 1, wherein the data processing system is incorporated in a device selected from a group consisting of: a storage device, and a data transmission device.

15. A data processing method, the data processing method comprising:
converting an analog input into a series of digital samples provided as a data input;
equalizing the data input using a left phase equalizer circuit to yield a left phase equalized output, wherein the left phase equalized output is offset from a center phase by a phase offset;
equalizing the data input using a center phase equalizer circuit to yield a center phase equalized output, wherein the center phase equalized output is not offset from the center phase;
applying a second data detection algorithm to the left phase equalized output to yield a left phase detected output;
applying the second data detection algorithm to the center phase equalized output to yield a center phase detected output;
selecting one of the left phase detected output or the center phase detected output as an equalizer output;
applying a first data detection algorithm to the equalizer output to yield a detected output; and
updating a feedback output based upon a combination of the equalizer output and the detected output.

16. The method of claim 15, wherein the first detection algorithm includes more states than the second detection algorithm.

17. The method of claim 15, wherein the method further comprises:
updating edge mean values based at least in part on the center phase detected output and a known input, wherein applying the second data detection algorithm by the center phase channel detector circuit is controlled at least in part by the edge mean values.

18. The method of claim 17, wherein the edge mean values are only updated when a possible error event is detected, wherein the possible error event is defined as a path beginning at the divergence between a known data path and a decision data path and ending at re-convergence of the known data path and the decision data path.

19. The method of claim 17, wherein updating the edge mean values includes calculating a delta K value in accordance with the following equation:




  
    
      Δ
      k
    
    =
    
      
        ∑
        
          i
          =
          0
        
        L
      
      ⁢
      
        {
        
          
            
              
                
                  
                    (
                    
                      
                        y
                        
                          k
                          +
                          i
                        
                      
                      -
                      
                        edge
                        ⁢
                        
                          
                        
                        ⁢
                        
                          mean
                          
                            k
                            +
                            i
                          
                          
                            known
                            ⁢
                            
                              
                            
                            ⁢
                            data
                            ⁢
                            
                              
                            
                            ⁢
                            path
                            ⁢
                            
                              
                            
                            ⁢
                            branch
                          
                        
                      
                    
                    )
                  
                  2
                
                -
              
            
          
          
            
              
                
                  (
                  
                    
                      y
                      
                        k
                        +
                        i
                      
                    
                    -
                    
                      edge
                      ⁢
                      
                        
                      
                      ⁢
                      
                        mean
                        
                          k
                          +
                          i
                        
                        
                          decision
                          ⁢
                          
                            
                          
                          ⁢
                          data
                          ⁢
                          
                            
                          
                          ⁢
                          path
                          ⁢
                          
                            
                          
                          ⁢
                          branch
                        
                      
                    
                  
                  )
                
                2
              
            
          
        
        }
      
    
  
  ,



wherein L is the length of the possible error event,

wherein edge meank+iknown data path branch is the expected output along the known data path, and wherein edge meank+idecision data path branch is the expected output along a decision path of the data detector circuit.

20. The method of claim 19, wherein the edge mean values are only updated when a value of delta K is less than a threshold value.

21. The method of claim 17, wherein updating the edge mean values is done in accordance with the following equations:


edge meank+iknown data path branch=edge meank+iknown data path branch+μ(yk+i−edge meank+iknown data path branch),



edge meank+idecision data path branch=edge meank+idecision data path branch−μ(yk+i−edge meank+idecision data path branch),

wherein μ is a gain factor, wherein L is the length of the possible error event, wherein edge meank+iknown data path branch is the expected output along the known data path, and wherein edge meank+idecision data path branch is the expected output along a decision path of the data detector circuit, yk+i is the center phase detected output.

22. A storage device, the storage device comprising:
a storage medium;
a head assembly disposed in relation to the storage medium and operable to provide a sensed signal corresponding to a data set on the storage;
a read channel circuit including:
an analog to digital converter circuit operable to sample the analog signal derived from the sensed signal to yield a series of digital samples synchronized by a sampling clock;

a loop feedback circuit including:
a state detector based equalization circuit operable to equalize the digital samples to yield a equalizer output, wherein the state detector based equalization circuit includes:
a first means for equalizing the data input to yield a first phase equalized output, wherein the first phase equalized output is offset from a defined phase by a first phase offset;
a second means for equalizing the data input to yield a second phase equalized output, wherein the second phase equalized output is offset from the defined phase by a second phase offset; and
a third means for equalizing the data input to yield a third phase equalized output, wherein the third phase equalized output is offset from the defined phase by a third phase offset.