Abstract:
The present invention relates generally to a data recovery algorithm and a serial link data receiver adopting the same. The data recovery algorithm includes receiving a serial data stream and a reference clock signal from a transmitting end, generating a plurality of overclock signals based on the received reference clock signal, oversampling the received serial data based on the plurality of overclock signals, and comparing values sampled by the respective overclock signals and outputting the most effective value as a data value that corresponds to the reference clock signal while considering a transition position of a data bit.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates generally to a data recovery algorithm and a serial link data receiver adopting the same and, more particularly, to an algorithm, which enables a data receiving end for receiving data serially transmitted by a data transmitting end and recovering the data to stably recover data without loss even though seriously distorted data that deviates from the valid window of the data by 50% due to the generations of data skew (i.e., a phenomenon in which a difference occurs in the time that respective bits take to arrive at a termination device. Mainly, the phenomenon occurs due to the difference between the lengths of cables or board lines) and transformation is received, and a serial data receiver adopting the algorithm.  
         [0003]     2. Description of the Related Art  
         [0004]     Generally, in data transceiving between two devices mounted on a circuit board or digital transceiving between communication devices spaced far apart from each other, when data is serially transmitted and received, there are many advantages in that the compression of the data is easy, the number of device pins can be reduced, a circuit board can be simplified and a signal interference possibly occurring between parallel signals can be prevented, so that a method of serially transceiving digital data has been applied to various systems. Generally, chips referred to as a serial link are operated with a transmitting end and a receiving end forming a pair, and the two chips are connected to each other by a transmission cable. Meanwhile, serial link-series chips that are frequently used for image signal transmission, such as a Low Voltage Differential Swing (LVDS) transceiving chip or a Transition Minimized Differential Signaling (TMDS) transceiving chip, are characterized in that the data transmission and clock transmission between the transceiving chips are performed through different channels. Generally, for data output from a transmission chip, even though the data is synchronized with a clock at the time of output, the skew between the data and the clock may be generated when the data arrives at a receiving end due to various reasons, and further a serious data distortion phenomenon, such as the transformation of a data valid window, may occur. In this case, the pattern of the data is not input in an ideal condition in which the recovery is easy, so that a receiving end chip must be provided with characteristics capable of recovering the data to a normal state in all cases, and a recovery algorithm.  
         [0005]      FIG. 3  is a view showing one of conventional circuits for adjusting the above data skew. According to the circuit, when transition exists between adjacent data, the data is recovered in such a way as to detect the edge of the data, compare the positions of the data edge and a reference edge, and adjust the data to be delayed based on the difference between the positions.  
         [0006]     With reference to the construction of  FIG. 3 , the data recovery is described in detail below. First, serial data and a clock signal output from a transmitting end are input to the input buffer  31  and clock buffer  35  of the receiving end  30 , respectively, through a data bus or a cable. A clock generator  37  generates a transition clock signal and a central clock signal based on the input clock, and supplies the transition clock signal and the central clock signal to a data sampler  33 . Thereafter, the data sampler  33  continuously samples the transition position between two adjacent serial data bits in response to the clock, samples the accurate center position of each data bit, and transmits a result value to an edge comparator  34 . The edge comparator  34  compares the sampled value with an ideal logic critical value. If there exists a difference therebetween, it is determined that data skew is generated. In this case, the comparator  34  determines the extent of the data skew according to the magnitude of the difference, generates a skew control signal, and transmits the skew control signal to a data delay cell  32 . The data delay cell  32  delays the data in response to the skew control signal to carry out adjustment so that a reference clock is accurately located at the center position of each serial data bit.  
         [0007]     There are three major problems in the conventional method. First, since the conventional method is constructed to detect skew existing on current data intended to be recovered and adjust the skew of next input data, there is no way to adjust a data recovery error caused by the skew of the current data. Second, in the case where the data is transformed by skew and transformation by 50% or more, that is, the phase of the data is changed by ½ of a cycle or more, it is difficult to accurately recover data because the extent of the skew cannot be accurately detected. Furthermore, since relatively many additional circuits are required to implement the conventional method, it is problematic in that power consumption increases and the size of a chip increases.  
       SUMMARY OF THE INVENTION  
       [0008]     Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to provide a data recovery algorithm using data position information detection, which can stably and accurately recover data even though seriously distorted data, which deviates from the valid window of the data by 50% or more because the skew and transformation of the data occur, is generated when a serial data stream is received.  
         [0009]     Another object of the present invention is to provide an algorithm that can accurately recover even an initial input data without an error.  
         [0010]     Still another object of the present invention is to provide a serial data receiver that can be simply implemented by adopting the data recovery algorithm.  
         [0011]     In order to accomplish the above object, the present invention provides a data recovery algorithm using position information detection, including receiving a serial data stream and a reference clock signal from a transmitting end, generating a plurality of overclock signals based on the received reference clock signal, oversampling the received serial data based on the plurality of overclock signals, and comparing values sampled by the respective overclock signals and outputting the most effective value as a data value that corresponds to the reference clock signal while considering a transition position of a data bit.  
         [0012]     In order to accomplish the above object, the present invention provides a serial data receiver, including an input buffer for receiving and storing a serial data signal output from a transmitting end, a clock buffer for receiving and storing a reference clock signal output from the transmitting end, a clock generator for generating a plurality of overclock signals based on the reference clock signal, a data sampler for oversampling the received serial data based on the plurality of overclock signals, and a position detector for comparing values sampled by the respective overclock signals and outputting the most effective value as a data value that corresponds to the reference clock signal while considering a transition position of a data bit. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]     The above and other objects, features and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:  
         [0014]      FIG. 1  is a block diagram showing the construction of a receiver adopting a recovery algorithm in accordance with the present invention;  
         [0015]      FIG. 2  is a view showing the pattern of data and oversampling clocks used for the recovery algorithm of the present invention;  
         [0016]      FIG. 3  is a block diagram showing the construction of a conventional receiver;  
         [0017]      FIG. 4  is a view showing the pattern of data and oversampling clocks used for a conventional recovery algorithm;  
         [0018]      FIG. 5  is a view showing the normal pattern of input data and sampling clocks; and  
         [0019]     FIGS.  6  to  7   d  are views showing the patterns of the input data and sampling clocks in which skew and distortion have been generated. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0020]     Reference now should be made to the drawings, in which the same reference numerals are used throughout the different drawings to designate the same or similar components.  
         [0021]     The characteristic construction and operation of the present invention are described with reference to the attached drawings in detail below.  
         [0022]     Generally, an oversampling algorithm is frequently used to stably recover serial data. When the oversampling algorithm is used, data can be recovered without problems in the case where the pattern of input data and sampling clocks are in a normal state, as shown in  FIG. 5 . In this case, D n−1 , D n  and D n+1  indicate successive data bit strings, respectively, and L n , M n  and R n  indicate the oversampling clocks of an n-th data bit string, respectively. In the case of the normal data and oversampling clocks, if oversampling is performed on the data D n  intended to be recovered using the oversampling clocks L n , M n  and R n , D n s are achieved as outputs. That is, the following result can be achieved. 
 
Out( L   n )=Out( M   n )=Out( R   n ) 
 
         [0023]     In this case, since every output has a correct value, effective data recovery can be achieved even though any one is output.  
         [0024]     Meanwhile, referring to  FIG. 6  showing an input pattern and oversampling clocks in which skew and distortion have been generated, it can be understood that skew, which generally has moved to the right with respect to the sampling clocks, is generated compared to  FIG. 5  showing the normal input state. The pattern shown in  FIG. 6  is described in detail below. The eye window of data D n−1  (i.e., the pattern of a valid window in which data can be accurately recovered) is broadened, while the eye window of data D n  is considerably narrowed. In the case of the data D n−1 , the eye window is distorted but the eye window is broadened, so that there is no problem in recovering the data. The reason for this is because the oversampling clocks L n , M n  and R n  are within the valid window of the data D n−1  However, in the case of the data D n , a distortion phenomenon occurs, in which the eye window is narrowed, so that only the oversampling clock R n  is within the eye window of the data D n  but other oversampling clocks L n  and M n  are within the valid window of the data D n−1 . Accordingly, it is considerably difficult to recover the data even though the oversampling algorithm is used. When the oversampling algorithm is used in a normal case, the recovery capability of data can be increased by sampling the single data a number of times. However, in the case of recovering data, such as the seriously distorted data D n , the oversampling clocks L n  and M n  sample the data D n−1 , but only the oversampling clock R n  samples the data D n , so that the data D n−1  sampled by two of three oversampling clocks is recovered to data corresponding to the normal data D n , and D n  sampled by the oversampling clock R n  is processed to be incorrect data.  
         [0025]     The present invention enables the data sampled by the oversampling clock R n  to be detected as the normal data even in the above case. The data position detection algorithm of the present invention can accurately detect a position where the valid window is located even in the case of the distorted data, and stably recover the data.  
         [0026]     The principle of the data position detection algorithm of the present invention capable of accurately recovering data is described in detail below. In the case where there is the distortion of data as shown in  FIG. 6 , if oversampling is performed using clocks L n , M n  and R n , the results in which Out(L n )=D n−1  and Out(R n )=D n  are obtained, so that Out(L n )!=Out (R n ). In this case, it cannot be directly understood which of Out(L n ) and Out(R n ) is an effective value, but only that the distortion of the data is generated by the influence and skew of adjacent data D n−1  and D n+1 . That is, the stable recovery of data cannot be performed using only the sampling of the data D n , but it is required to consider relationships with the adjacent data. An algorithm of the present invention capable of meeting this condition is described below.  
         [0027]     First, the case where Out(L n )=Out(R n ) is described. Even in the case where output values sampled by sampling clocks L n  and R n  are identical with each other, it cannot be concluded that there is no distortion of data. Accordingly, in this case, the algorithm of the present invention determines that there is no distortion of the data only when the transition of the data exists at least one locations between the clocks L n  and M n−1 , or between the clocks R n  and M n+1 , as understood from  FIG. 5 . Accordingly, if there is the transition of the data, any of Out(L n ) and Out(R n ) can be output as an effective output. In contrast, if there is no transition of the data between the clocks L n  and M n−1 , and between the clocks R n  and M n+1 , the most effective data is Out(M n ), so that Out(M n ) is selected as an effective output. For example, if it is assumed that D n−1 =1, D 1 =0 and D n+1 =1, Out(L n )=Out(R n ) is satisfied, but the distortion of the data is generated. In this case, no transition of the data exists between the clocks L n  and M n−1 , and between the clocks R n  and M n+1 , so that Out(M n ) is selected as an effective output.  
         [0028]     Next, the case where Out(L n )!=Out(R n ) is described. This case must include the distortion of data. In this case, the algorithm of the present invention detects the position of data transition, and determines that Out(R n ) is an effective output if the data transition exists only between the clocks R n  and M n+1 . For example, if it is assumed that D n−1 =1, D n =0 and D n+1  in  FIG. 7   b , Out(L n ) !=Out(R n ) is satisfied and the data transition exists only between the clocks R n  and M n+1 , so that Out(R n ) is selected as an effective output. In contrast, if the data transition exists only between the clocks L n  and M n−1 , it is determined that the Out(L n ) is an effective output. For example, if it is assumed that D n−1 =1, D n =0 and D n+1 =1, Out(L n ) !=Out(R n ) is satisfied and the data transition exists only between the clocks L n  and M n−1 , so that Out(L n ) is selected as an effective output. If there is no transition of the data between the clocks R n  and M n+1 , and between the clocks L n  and M n−1 , it is determined that Out(M n ) is an effective output value for the recover of the data. For example, if it is assumed that D n−1 =0, D n =0 and D n+1 =1, Out(L n )!=Out(R n ) is satisfied and there is no data transition between the clocks R n  and M n+1 , and between the clocks L n  and M n−1 , so that Out(M n ) is selected as an effective output.  
         [0029]     By applying the algorithm of the present invention, the recovery of all data patterns transformed not to deviate from the sampling limitation of a minimum clock L n  and a maximum clock R n  can be achieved even in the cases except for the above-described case. If the frequency of the oversampling clock is three times the frequency of a reference clock as described in the above example, the data transformed within 75% can be accurately recovered. However, the frequency of the oversampling clock can be further increased depending on embodiments, in which case, data can be more accurately recovered.  
         [0030]     With reference to  FIG. 1 , the construction and operation of a serial data receiver adapted to implement the above algorithm are described below. As shown in  FIG. 1 , a serial data receiver  10  of the present invention includes an input buffer  11 , a clock buffer  14 , a clock generator  15 , a data sampler  12 , and a position detector  13 . A serial data signal and a reference clock signal output from a transmitting end is received by and stored in the input buffer  11  and the clock buffer  14 , respectively. The clock generator  15  receiving the reference clock signal through the clock buffer  14  generates an oversampling clock signal whose frequency is N times that of the reference clock (in this case, N is a positive integer), based on the reference clock signal, and inputs the oversampling clock signal to the sampler  12 . In this case, it is preferable that the integer N is at least three. That is, the oversampling clock frequency is at least three times the reference clock frequency. The data sampler  12  performs the oversampling of the received serial data based on the oversampling clock, and transmits a sampling result value to the position detector  13 . The algorithm of the present invention is performed in the position detector  13 . The position detector  13  compares the sampled values in accordance with the above-described algorithm. For example, Out(L n ) and Out(R n ) are compared to determine to whether they are identical or not. Thereafter, the transition position of data is detected based on the result and a sampling value determined as an effective value is output. In this case, by successively outputting the data onto a plurality of data buses in accordance with the number of original data bits according to an embodiment of the present invention, the values output from the position detector  13  can be constructed to be not serial data but parallel data.  
         [0031]     Meanwhile, using the algorithm of the present invention, it is possible to determine whether the data leads (i.e., data arrives faster than reference time) or lags (i.e., data is delayed). When the lead/lag of the data is determined using the algorithm of the present invention, the case where Out(L n )!=Out(R n ) is generally used. The above case is described in detail below.  
         [0032]     First, it is determined that Out(L n ) is an effective output if Out(L n )!=Out(R n ) is satisfied and the transition of the data exists only between the clocks R n  and M n+1 . In this case, the data is in a data lag state. For example, in  FIG. 6  showing the data lag state, if it is assumed that D n−1 =1, D n =0, and D n+1 =1, (Out(L n )=1)!=(Out(R n )=0) is satisfied and the transition of the data exists only between the clocks R n  and M n+1 , so that it is determined that Out(R n ) is an effective output. Accordingly, it can be understood that the data is in the data lag state.  
         [0033]     Thereafter, if Out(L n )!=Out(R n ) is satisfied and the transition of the data exists only between the clocks L n  and M n−1 , it is determined that Out(L n ) is an effective output. In this case, the data is in a data lead state. For example, in  FIG. 7   d  showing the case of the data lead state, if it is assumed that D n−1 =1, D n =0 and D n+1 =1, (Out(L n )=0)!=(Out(R n )=1) is satisfied and the transition of the data exists only between the clocks L n  and M n−1 , so that it is determined that Out(L n ) is an effective output. Accordingly, it can be understood that the data is in the data lead state.  
         [0034]     Last, the case where Out(L n )!=Out(R n ) is satisfied and there is no transition of the data between the clocks R n  and M n+1 , and between the clocks L n  and M n−1  is described below. According to the algorithm of the present invention, it is already described that in the above case, it is determined that Out(M n ) is an effective output. Accordingly, the case requires one more process to determine whether the data is in the lead or lag state. That is, a clock whose output value identical with that of Out(M n ) is sampled is detected. If the clock is R n , the data is in the data lag state. If, as a result of the detection, the clock is L n , the data is in the data lead state. For example, in  FIG. 7   b  showing the case of the data lag state, if it is assumed that D n−1 =0, D n =1 and D n+1 =1, (Out(L n )=0)!=(Out(R n )=1) is satisfied and there is no transition of the data between the clocks L n  and M n−1 , and between the clocks R n  and M n =1, so that it is determined that Out(M n ) is an effective output. In this case, Out(L n )=Out(R n ) is satisfied, so that it can be understood that the data is in the data lag state. Furthermore, in  FIG. 7   c  showing the case of the data lead state, if it is assumed that D n−1 =0, D n =1 and D n+1 =1, (Out(L n )=0)!=(Out(R n )=1) is satisfied and there is no transition of the data between the clocks L n  and M n−1 , and between the clock R n  and M n+1 , so that it is determined that Out(M n ) is an effective output. In this case, Out(L n )=Out(R n ) is satisfied, so that it can be understood that the data is in the data lead state.  
         [0035]     Such a data lead/lag determination algorithm and a circuit are applied and used to generate a feedback signal for synchronizing a signal in various ways. Furthermore, the position detector  13  of the serial data receiver  10  of the present invention can be constructed to output an effective value and simultaneously output a data lead or lag signal.  
         [0036]     The characteristics of the present invention have been described in detail above. According to the present invention as described above, the accurate recovery of all data patterns transformed not to deviate from the sampling limitation of a minimum clock L n  and a maximum clock R n  can be implemented. The algorithm of the present invention can be simply applied to all serial link receiving circuits. Accordingly, the present invention is advantageous in that a more accurate, higher performance serial link receiver can be inexpensively provided. Furthermore, by applying the algorithm of the present invention, it is possible to simply determine whether the data is in a lead or lag state.  
         [0037]     Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.