Skew-Correcting Apparatus using Dual Loopback

Information

  • Patent Application
  • 20080031311
  • Publication Number
    20080031311
  • Date Filed
    August 03, 2006
    19 years ago
  • Date Published
    February 07, 2008
    17 years ago
Abstract
This algorithm and apparatus provides the ability to determine the amount of skew that should be injected into a high-speed data communications system comprising of a plurality of lanes comprising a data bus on a per lane basis, relative to a reference lane, for the purpose of compensating for inherent system skew. By knowing the relative amount of skew that each lane requires for alignment, an appropriate amount of skew can then be injected on each lane to provide alignment and thus compliancy with relevant standards, such as the SxI-5 standard, in terms of data skew specifications. These relative skew amounts for each transmitting lane are determined using dual loopback methods.
Description

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING


FIG. 1 is a block diagram of how the deskew algorithm may be implemented if only external loopback is used to achieve the dual loopback methodology.



FIG. 2 is a block diagram of how the deskew algorithm may be implemented if both internal and external loopback are used to achieve the dual loopback methodology.



FIG. 3 is a block diagram of how the deskew algorithm may be implemented if only internal loopback is used to achieve the dual loopback methodology.



FIG. 4 is a block diagram of how the skew injection technique may be implemented.





DETAILED DESCRIPTION OF THE INVENTION

On the transmit side, skew can be injected on a per-lane basis to compensate for any skew added by the system, such as Field Programmable Gate Array (FPGA) startup conditions. This injected skew achieves compliancy as specified by applicable standards, such as SxI-5. To determine how much skew should be injected to meet these standards, the following system is implemented.


The present invention consists of N+1 transceivers for the purposes of data transmission and reception. The system is designed such that dual loopback can be used to determine the necessary per-lane skew to be added for total lane alignment.


The term “dual loopback”, as used herein, refers to two transmit streams from the transmitters of two different transceivers that are looped back to the receiver portion of a transceiver. The transceiver that receives the loopback from the transmitters will also be one of the transmitting transceivers.


To allow for ordinary data flow in the receive direction, multiplexers are used to select between feedback lines or regular data lines. In the case where selectable internal feedback is used within the transceiver and this internal feedback capability is provided by the transceiver, the amount of inputs to the multiplexer can be reduced or the need for an external multiplexer may be eliminated entirely.


In accordance with the present invention, it may be necessary to use a fanout buffer to mitigate any extra stress on the transmitting lane to preserve signal integrity. This occurs when transmitting lanes have multiple loads (i.e. output to the optics and several loopbacks to receivers).


A worker skilled in the art will understand that it is necessary for one of the transceivers to be chosen as the reference. This reference transceiver can be chosen as one of the active transceivers or may be a transceiver used solely for the purpose of providing a reference. All other lanes will have their skew determined relative to this reference.


The system of the present invention enables the calculation of the skew for each transmit lane, relative to one of the lanes. The following examples will illustrate the workings of possible systems mathematically. These examples will deal with smaller 3 transceiver systems. The 3 transceiver example is easily expandable into an SFI-5 system with 17 transceivers, or any other transceiver-based system. Transceivers are herein referred to also as MGTs (Multi-Gigabit Transceivers).


The following examples are set forth to gain a better understanding of the skew-detection portion of the invention described herein. These examples are provided for illustrative purposes only and they should not limit the scope of this invention in any way.


EXAMPLE 1
External Loopback Only

The system in this case is a dual loopback system implemented using external feedback from two different transceivers as shown in FIG. 1. In this example a multiplexer with a minimum of three inputs will be necessary—two inputs for the external feedback lines and one input for the regular receive line.


In Example 1, dual loopback is achieved by utilizing only external loopback to determine the relative skew amounts for each lane as illustrated in FIG. 1. The variables and constants used in this example are defined as:


Definition List 1
















Term
Definition









R1
Unknown receive skew for MGT_1



R2
Unknown receive skew for MGT_2



T0
Unknown transmit skew for MGT_0



T1
Unknown transmit skew for MGT_1



T2
Unknown transmit skew for MGT_2



X01
Unknown external skew for path from




MGT_0 to MGT_1, from buffer, MUX, and




PCB trace skew



X02
Unknown external skew for path from




MGT_1 to MGT_2, from buffer, MUX, and




PCB trace skew



X11
Unknown external skew for path from




transmitter to receiver of MGT_1, from




MUX and PCB trace skew



X22
Unknown external skew for path from




transmitter to receiver of MGT_2, from




MUX and PCB trace skew



E01
Known external skew constant from




MGT_0 to MGT_1



E02
Known external skew constant from




MGT_0 to MGT_2



E11
Known external skew constant from the




transmitter to receiver of MGT_1



E22
Known external skew constant from the




transmitter to receiver of MGT_2










Constants e01, e12, e02, and e21 may be determined through empirical means, such as testing with a training sequence. This empirical information is collected by the receiver.


With reference to FIG. 1, the following equations can be formulated:






T0+R1+X01=e01   (1)






T1+R1+X11=e11   (2)






T0+R2+X02=e02   (3)






T2+R2+X22=e22   (4)


From equations (1) and (2), R1 can be equated, giving:






e01−T0−X01=e11−T1−X11


Therefore,






T1=T0+e11−e01+X01−X11


Similarly from equations (3) and (4) by equating R2,






e02−T0−X02=e22−T2−X22


Thus,






T2=T0+e22−e02+X02−X22


And in general,






T[n]=T0+e[nn]−e[0n]+X[0n]−X[nn]


By taking T0 (the transmit skew for MGT0) as a reference, it is shown that T1 can be found relative to this skew, and similarly, T2 can be found relative to T0's skew, with 2 unknowns still remaining in each equation—X[0n] and X[nn], where [n] corresponds to the MGT number.


Each X[0n] and X[nn] value can be calculated using standard procedures for trace length and PCB characteristics, as well as taking into account the skew added by each MUX and the optional buffer. These values can be calculated to an approximate theoretical value with some amount of uncertainty in each calculation. Therefore, each X[0n] and X[nn] value can be broken into the theoretical calculated value and a statistical variation from this value:






X[0n]=y[0n]+Z[0n]






X[nn]=y[nn]+Z[nn]


where y[0n] and y[nn] are the theoretical calculated values, and Z[0n] and Z[nn] are the statistical variations from this value.


Thus, the equations can be written as:






T[n]=T0+e[nn]−e[0n]+y[0n]−y[nn]+Z[0n]−Z[nn]


where Z[0n] and Z[nn] are the only unknowns.


As shown by the equation above, the amount of skew between T[n] and T0 is:






e[nn]−e[0n]+y[0n]−y[nn]+Z[0n]−Z[nn]


Since the following values are known:






e[nn]−e[0n]+y[0n]−y[nn]


this amount of skew can be injected into each lane to provide total lane alignment to within the resolution of the receiver.


Thus, the values for Z[0n] and Z[nn] in addition with the resolution of the receiver has to be less than the allowable skew specified by the communication system or applicable standard (2 UI for SxI-5 compliancy). The buffer, MUX, and PCB constraints have to be chosen such that this value is met.


To increase the number of transceivers from 3 to a higher number, the following procedure can implemented and describes a general way to interconnect any number of transceivers. We will assume sequential names for the transceivers, i.e MGT0, MGT1, MGT2, . . . MGT_N.

  • From the N+1 transceivers, a reference transceiver must be chosen, e.g. MGT0.
  • The receiver of each transceiver, with the exception of the reference transceiver, will require a 3:1 MUX. One of the inputs to this MUX will be the normal data line from an external source.
  • The transmission of the reference transceiver can be used as an input to the MUXs for each of the next transceivers in sequence, i.e. MGT1 to MGT_N, if MGT0 is chosen as the reference.
  • The transmission of each transceiver after the reference transceiver, MGT1 to MGT_N to continue with the current naming convention, can be used as an input to the MUX for that same transceiver, i.e. the transmitter of MGT1 goes to the receiver of MGT1, the transmitter of MGT2 goes to the receiver of MGT2, etc.
  • By using this method, dual loopback is achieved using only external loopback methods.
  • It may be necessary to use a fanout buffer to mitigate any extra stress on the transmitting reference lane to preserve signal integrity.


By following this process, all skew values for each transmit lane can be determined relative to a single reference lane. Once the skew for each transmit lane is known relative to this single lane, then the appropriate amount of skew can be injected into each lane to provide total lane alignment in compliancy with relevant standards, such as SxI-5. In order to accomplish this, the resolution of the receiver (typically 0.5 UI due to the RX PLL CDR) and the uncertainty added by any buffers, MUXs, and traces have to be accounted for and be within the allowable skew values for the standard.


EXAMPLE 2
Both Internal and External Loopback

Using the present invention, when internal loopback is used within a transceiver, one of the inputs to the multiplexer can be eliminated. The internal loopback takes the place of one of the external loopbacks. Since the internal loopback can be selected or de-selected within the transceiver, the need for an input to the multiplexer for this particular line is eliminated. Thus, the multiplexer only needs a minimum of 2 inputs for this configuration. This example is shown in FIG. 2.


In Example 2, dual loopback is achieved by utilizing internal and external loopback to determine the relative skew amounts for each lane as illustrated in FIG. 2. The variables and constants used in this example are defined as:


Definition List 2
















Term
Definition









R1
Unknown receive skew for MGT_1



R2
Unknown receive skew for MGT_2



T0
Unknown transmit skew for MGT_0



T1
Unknown transmit skew for MGT_1



T2
Unknown transmit skew for MGT_2



X1
Unknown external skew for path from




MGT_0 to MGT_1, from buffer, MUX, and




PCB trace skew



X2
Unknown external skew for path from




MGT_1 to MGT_2, from buffer, MUX, and




PCB trace skew



i1
Known internal skew constant for MGT_1



i2
Known internal skew constant for MGT_2



E1
Known external skew constant from




MGT_0 to MGT_1



E2
Known external skew constant from




MGT_1 to MGT_2










Constants i1, i2, e1, and e2 may be determined through empirical means, such as testing with a training sequence.


With reference to FIG. 2, the following equations can be formulated:






T0+R1+X1=e1   (5)






T1+R1=i1   (6)






T0+R2+X2=e2   (7)






T2+R2=i2   (8)


From equations (5) and (6), R1 can be equated, giving:






e1−T0−X1=i1−T1


Therefore,






T1=T0+i1−e1+X1


Similarly from equations (7) and (8) by equating R2,






e2−T1−X2=i2−T2


Thus,






T2=T0+i2−e2+X2


And in general,






T[n]=T0+i[n]−e[n]+X[n]


By taking T0 (the transmit skew for MGT0) as a reference, it is shown that T1 can be found relative to this skew, and similarly, T2 can be found relative to T0's skew, with 1 unknown still remaining in each equation—X[n], where [n] corresponds to the MGT number.


Each X[n] value can be calculated using standard procedures for trace length and PCB characteristics, as well as taking into account the skew added by each MUX and the buffer. These values can be calculated to an approximate theoretical value with some amount of uncertainty in each calculation. Therefore, each X[n] value can be broken into the theoretical calculated value and a statistical variation from this value:






X[n]=y[n]+Z[n]


where y[n] is the theoretical calculated value and Z[n] is the statistical variation from this value.


Thus, the equations can be written as:






T[n]=T0+i[n]−e[n]+y[n]+Z[n]


where Z[n] is the only unknown.


As shown by the equation above, the amount of skew between T[n] and T0 is:






i[n]−e[n]+y[n]+Z[n]


Since the following values are known:






i[n]−e[n]+y[n]


this amount of skew can be injected into each lane to provide total lane alignment to within the resolution of the receiver.


Thus, the value for Z[n] in addition with the resolution of the receiver has to be less than the allowable skew specified by the applicable standard (2 UI for SxI-5 compliancy). The buffer, MUX, and PCB constraints have to be chosen such that this value is met.


To increase the number of transceivers from 3 to a higher number, the following procedure can implemented and describes a general way to interconnect any number of transceivers. We will assume sequential names for the transceivers, i.e MGT0, MGT1, MGT2, . . . MGT_N.

  • From the N+1 transceivers, a reference transceiver must be chosen, e.g. MGT0.
  • The receiver of each transceiver, with the exception of the reference transceiver, will require a 2:1 MUX. One of the inputs to this MUX will be the normal data line from an external source.
  • Each transceiver, with the exception of the reference transceiver, will employ internal loopback from the transmitter to the receiver of the transceiver. This internal loopback must be selectable within the transceiver to eliminate the need for any external circuitry.
  • The transmission of the reference transceiver can be used as an input to the MUXs for each of the next transceivers in sequence, i.e. MGT1 to MGT_N, if MGT0 is chosen as the reference.
  • By using this method, dual loopback is achieved using both internal and external loopback methods.
  • It may be necessary to use a fanout buffer to mitigate any extra stress on the transmitting reference lane to preserve signal integrity.


By following this process, all skew values for each transmit lane can be determined relative to a single reference lane. Once the skew for each transmit lane is known relative to this single lane, then the appropriate amount of skew can be injected into each lane to provide total lane alignment in compliancy with relevant standards, such as SxI-5. In order to accomplish this, the resolution of the receiver (typically 0.5 UI due to the RX PLL CDR) and the uncertainty added by any buffers, MUXs, and traces have to be accounted for and be within the allowable skew values for the standard.


EXAMPLE 3
Internal Loopback Only

In this example, internal loopback is used within a transceiver and between transceivers. This results in dual loopback and hence elimination of the entire multiplexer. The internal loopback takes the place of one of the external loopbacks, while the internal loopback between transceivers takes the place of the other external loopback. Since both internal loopback can be selected or de-selected within the transceivers, the need for an external multiplexer is eliminated. This example is shown in FIG. 3.


In Example 3, dual loopback is achieved by utilizing only internal loopback to determine the relative skew amounts for each lane as illustrated in FIG. 3. The variables and constants used in this example are defined as:


Definition List 3
















Term
Definition









R1
Receive skew for MGT_1



R2
Receive skew for MGT_2



T0
Transmit skew for MGT_0



T1
Transmit skew for MGT_1



T2
Transmit skew for MGT_2



I11
Known internal skew constant for MGT_1



I22
Known internal skew constant for MGT_2



I01
Known internal skew constant from




MGT_0 to MGT_1



I12
Known internal skew constant from




MGT_1 to MGT_2










Constants i11, i22, i01, and i12 may be determined through empirical means, such as testing with a training sequence.


With reference to FIG. 3, the following equations can be formulated:






T1+R1=i11   (9)






T2+R2=i22   (10)






T0+R1=i01   (11)






T1+R2=i12   (12)


From equations (9) and (11), R1 can be equated, giving:






i11−T1=i01−T0


Therefore,






T1=T0+i11−i01


Similarly from equations (10) and (12) by equating R2,






i22−T2=i12−T1


Thus,






T2=T1+i22−i12


By taking T0 (the transmit skew for MGT0) as a reference, it is shown that T1 can be found relative to this skew, and similarly, T2 can be found relative to T1's skew (which is in turn relative to T0.)


To increase the number of transceivers from 3 to a higher number, the following procedure can implemented and describes a general way to interconnect any number of transceivers. We will assume sequential names for the transceivers, i.e MGT0, MGT1, MGT_2, . . . MGT_N.

  • From the N+1 transceivers, a reference transceiver must be chosen, e.g. MGT0.
  • Each transceiver, with the exception of the reference transceiver, will employ internal loopback from the transmitter to the receiver of the transceiver. This internal loopback must be selectable within the transceiver to eliminate the need for any external circuitry.
  • The transceivers must be configured in such a way that internal loopback is able to be selected and de-selected between different transceivers without the addition of extra circuitry.
  • The transmission of the reference transceiver can be used as an input for the internal loopback of the next transceiver in sequence, i.e. MGT1 if MGT0 is chosen as the reference.
  • The transmission of the next transceiver after the reference transceiver, MGT1 to continue with the current naming convention, can be used as an input for the internal loopback of the next transceiver in sequence, i.e. MGT2.
  • This process continues until the last transceiver is reached, i.e. MGT_N. The transmission from this transceiver does not need to be used as an input to an internal loopback.
  • By using this method, dual loopback is achieved using only internal loopback methods.


By following this process, all skew values for each transmit lane can be determined relative to a single reference lane. Once the skew for each transmit lane is known relative to this single lane, then the appropriate amount of skew can be injected into each lane to provide total lane alignment in compliancy with relevant standards, such as SxI-5. In order to accomplish this, the resolution of the receiver (typically 0.5 UI due to the RX PLL CDR) has to be accounted for and be within the allowable skew values for the standard.


The previously explained loopback methods are only considered as examples. Different configurations of each are possible as long as dual loopback is achieved. Combined configurations of each are also possible as long as dual loopback is achieved.


In order to inject the appropriate amount of skew into each lane to provide lane alignment, the unaligned transmit (TX) data lines enter a buffer for the purposes of lane deskewing. The skew values to be injected for each lane are supplied to the buffer. The buffer then shifts each lane the appropriate amount to ensure lane-to-lane alignment. A representation of a possible embodiment of this injection system is shown in FIG. 4. The output from the buffer is the aligned TX data lines, which can then be categorized as being within skew specifications for relevant standards.


REFERENCES CITED

U.S. Patent Documents

















6557110
April, 2003
Sakamoto et al.
713/503


6690757
February, 2004
Bunton et al.
375/371


6820234
November, 2004
Deas et al.
714/814


6839862
January, 2005
Evoy et al.
713/503


6907552
June, 2005
Collins
714/700


6920576
July, 2005
Ehmann
713/400


6996738
February, 2006
Chiang
713/503









Other References

  • OIF, System Framer Interface Level 5 (SFI-5), Jan. 29, 2002
  • OIF, System Interface Level 5 (SxI-5), October 2002

Claims
  • 1. An apparatus for the purposes of determining the amount of skew in each transmitting lane, relative to a reference lane, of a parallel data transmission system comprising: (a) a plurality of lane pairs with a transceiver (i.e. transmitter and receiver pair) for each, with one lane pair, and thus transceiver, chosen as the reference;(b) dual loopback to the receiver of each transceiver, with dual loopback to the receiver of the reference transceiver being optional;(c) the ability to switch between loopback modes and regular data flow;(d) an empirical means of determining skew constants between and/or within transceivers.
  • 2. A skew-finding apparatus according to claim 1, where the reference transceiver chosen may be used as a part of the data communication path or may be added solely for the purpose of providing a reference for the other lanes.
  • 3. A skew-finding apparatus according to claim 1, where dual loopback may be achieved by using both internal and external loopback for each transceiver, with loopback for the reference lane being optional.
  • 4. A skew-finding apparatus according to claim 1, where dual loopback may be achieved by using only external loopback for each transceiver, with loopback for the reference lane being optional.
  • 5. A skew-finding apparatus according to claim 1, where dual loopback may be achieved by using only internal loopback for each transceiver, with loopback for the reference lane being optional.
  • 6. A skew-finding apparatus according to claim 1, where if internal loopback is used as a means to achieve dual loopback, it shall be selectable within the transceivers so that either normal data flow or loopback can be chosen.
  • 7. A skew-finding apparatus according to claim 1, where if external loopback is used as a means to achieve dual loopback, it shall be selectable through a multiplexer so that either normal data flow or loopback can be chosen.
  • 8. A skew-finding apparatus according to claim 1, wherein the internal skew through the internal loopback in and between each transceiver, with the possible exception of the transceiver of the reference lane, is known or can be determined through empirical testing, such as with a training sequence.
  • 9. A skew-finding apparatus according to claim 1, wherein the external skew between the external loopback of different transceivers, with the possible exception of the transceiver of the reference lane, is known or can be determined through empirical testing, such as with a training sequence.
  • 10. A skew-finding apparatus according to claim 1, wherein each multiplexer used for external loopback purposes has inputs for the external loopback and inputs for the regular data lanes, with the output of each multiplexer going to the receive terminal of each transceiver, with the possible exception of the reference transceiver.
  • 11. A skew-finding apparatus according to claim 1, wherein an empirical means of determining the skew constants may be implemented through the use of a training sequence, such as a PRBS (pseudo-random bit sequence) pattern.
  • 12. A skew correction apparatus for the purposes of adding skew to each transmitting lane in order to align the lanes relative to a reference lane, comprising: (a) a plurality of lane pairs with a transceiver (i.e. transmitter and receiver pair) for each, with one lane pair, and thus transceiver, chosen as the reference;(b) a buffer to delay each lane by a specified amount;(c) a pointer to the buffer with details on the amount of skew to inject into each lane to achieve lane alignment.
  • 13. A skew correction apparatus according to claim 12, where the reference transceiver chosen may be used as a part of the data communication path or may be added solely for the purpose of providing a reference for the other lanes.
  • 14. A skew correction apparatus according to claim 12, where the buffer used for lane delay may be implemented using a FIFO (first in, first out) buffer.