Abstract:
An arrangement and a method for synchronizing data to a local clock. The invention incorporates a self-tested self-synchronous two-phase input port, wherein a line or an element of parallel data is tested for data read failure using two different phases or edges of the local clock. If a data read failure is detected using one phase, the other of the two phases is selected for reading the data. The arrangement includes a data read device for reading parallel elements of the data stream using one of two different phases or edges of the local clock, a data read error detecting device arranged to sample at least one element of the data stream using the two different phases or edges of the local clock, and a decision making device.

Description:
FIELD OF THE INVENTION 
     The present invention relates to an arrangement and a method for synchronising data to a local clock. The invention is useful in transferring data between sub-systems. The invention incorporates a self-tested self-synchronous two-phase input port by means of which a line or an element of parallel data is tested for data read failure using two different phases or edges of the local clock. If a data read failure is detected the other of the two phases is selected for reading the data. 
     STATE OF THE ART 
     As the clock frequency on silicon chips increases, the clock phase becomes more difficult to calculate or predict. To avoid data read failure, global clock synchronisation is commonly used to keep a system working synchronously. However, the global synchronisation for example implemented with a balanced clock tree has many drawbacks. First, it needs more metal layers resulting in high costs. Second, the power dissipation for the clock distribution network is very large and for some state-of-the-art designs of microprocessors the power consumed by the clock network ranges from 18-40% of the total power. In addition, systems do not scale well because of constraints of timing. Furthermore, a PLL or DLL is needed to compensate for the propagation delay of the local clock driver, and significant effort is required to cope with delay and skew reductions. As for the system scaling and clock frequency, physical limits will eventually be reached for the future high-performance ULSI design unless we can avoid the global synchronisation. 
     The present invention relates to self-tested self-synchronisation implemented with a two-phase input port for high performance ULSI design. An input signal with unknown delay can be correctly latched without suffering from data read failure. 
     The idea of the method is to use the same clock frequency but with an arbitrary local phase in each sub-system, and it automatically selects a clock edge for sampling data so that an error free parallel data transfer is achieved. The self-synchronization may be accomplished with the help of inserting a test signal and the error status of test signal is used to select a clock edge or clock phase to get error free parallel data transfer between sub-systems. By this method, the global clock synchronization is avoided, so there is no need for a balanced tree for the clock distribution and skew reduction techniques. Therefore, significant simplification is achieved by this invention. The power consumed by the clock distribution is efficiently reduced because there is no need of using wide metal wires to shorten the delay, and it is more suitable to use distributed clock drivers in each sub-system. 
     SUMMARY OF THE INVENTION 
     Thus, the present invention relates to an arrangement for synchronising an incoming stream of data to a local clock. 
     According to the invention, the arrangement comprises a data read means for reading parallel elements of the data stream using one or two different phases or edges of the local clock, a data read error detecting means arranged to sample at least one element of the data stream using the two different phases or edges of the local clock, and a decision making means. If the data read error detecting means detects a data read error using one of the two different phases of the local clock, the other phase or edge of the local clock is selected by the decision making means for reading the parallel elements. 
     Preferably, said one element of the data stream is a special test signal having a fixed data pattern. 
     The invention also relates to a method for synchronizing an incoming stream of data to a local clock. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be described in detail below with reference to the accompanying drawings in which: 
     FIG. 1A is a schematic diagram of the prior art arrangement for data transfer, 
     FIG. 1B is a time diagram illustrating signal wave forms of the signals in FIG. 1A, 
     FIG. 2 is a schematic diagram of a first embodiment of an arrangement of the present invention, 
     FIG. 3A is a schematic diagram of a first embodiment of a detection circuit of the present invention, 
     FIG. 3B is a time diagram illustrating signal wave forms of the signals in FIG. 3A, 
     FIG. 4 is a schematic diagram of a second embodiment of a detection circuit of the present invention and 
     FIG. 5 is a schematic diagram of a third embodiment of an arrangement of the present invention. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     In FIG. 1A, data transfer using global synchronisation is schematically shown. The same clock K is used by the two units A and B for the data transfer therebetween. However, since the time delay of the dated transfer is not known the clock is received as two different clocks K A  and K B  at unit A and unit B, respectively, with an unknown time relation between the local clock K B  and the received data D B . The present invention relates to a synchronisation arrangement solving this problem and located in unit B. 
     In the following, we describe the principle of the invention and its implementation by a two-phase input port. We first introduce a failure zone concept and a failure detection method, and then apply them to the port self-synchronisation. Since influence of noise, etc. will worsen the synchronisation in parallel data transfer, an improved method which injects an artificial jitter in the test signal is presented to make the self-synchronisation more robust and reliable. 
     In the following sections, we will focus on the issue of how to get error free parallel data transfer between sub-systems by a two-phase input port. 
     The failure zone is defined as a forbidden time window for the half swing transient point (HSTP) of the input signal. When the input reaches HSTP within the failure zone, edge triggered flip-flops or latches may malfunction because of metastability. 
     A failure zone is shown in FIG.  1 B. Typically, data is sampled at the receiving unit B by means of a data latch or flip-flop having the characteristic of copying its input signal to its output at one of the clock edges, e.g. the positive edge. There will be a problem if data is changed at or near the clock edge, i.e. the clock edge falls within the failure zone. In this case a data read error may occur. 
     As many factors, such as process variation, parasitic parameters, fluctuations in power supply, etc. will affect the delay, the timing relation between input and clock is not easy to predict accurately in ULSI designs. In the worst case the timing relation can be considered as a random variable, which will be determined after the chip is fabricated. In addition, temperature and supply voltage etc. change during operation, which also impacts the status of the parallel data transfer. A phase margin is needed to protect the error free parallel data transfer. If the delay time within a clock cycle is uniformly distributed, the probability of data read failure is related directly to the failure zone. 
     Assume that the distance is large between two sub-systems where parallel data transfer is needed. We also suppose that a clock φ J0  and its reverse φ J1  are available in the receiving sub-system B. If the HSTP of input falls into the failure zone a data read failure will occur. In order to detect the data read failure, either one element of the parallel data or a test signal going along with the parallel data is used. (When the dimension of the parallel data m is large, adding an extra test signal is fully acceptable. A square pulse sequence of a fixed pattern at half of the clock frequency may be used as the test signal.) An architecture of self-tested selfsynchronisation implemented with two-phase input ports is illustrated in FIG.  2 . 
     In FIG. 2, a preferred embodiment of the present invention is shown. The arrangement comprises a data read unit PNET having the capability of sampling data triggered either by a positive or a negative clock edge. The arrangement also comprises a data read error detecting means having two data read detection circuits or devices PET and NET, which are also referred to herein as decision error detection devices. The detection units are connected to an RS flip-flop, the output of which is connected to the data read unit PNET. Parallel data m is received by the data read unit PNET. The units are clocked by a common clock K B  which may be received from the transmitting unit A, as in FIG. 1A, but because of time delay is considered a local clock. 
     The function of this arrangement is as follows. One of the elements of the incoming data word D B , called D B1 , is sampled at the positive as well as the negative edge of the local clock K B  by the circuits PET and NET, respectively. Each of these units has an output indicating if a data read or decision error has occurred. If no data read errors occur one of the two possible clock edges is selected by the decision means RS. The selected clock edge is then used for sampling the input data D B1  . . . D Bm  using the RS flip-flop. However, if one of the two units PET and NET detects a data read error, the flip-flop RS selects the clock edge at which the data read error was not detected using the flip-flop RS. Then this output is error free. This clock edge is again used for sampling the incoming data by way of the unit PNET. If all the elements of the incoming data word have the same time relationship to the local clock K B  all the elements will be error free. 
     In practice it may happen that the time relation between the incoming data words and the local clock changes with time. If initially there is no data read error but the actual point of time for change of data is located very near the currently used clock edge, then the change of the time relation may lead to a data read error occurring at the unit which is currently used for sampling data. In this case, the unit RS will immediately switch to the clock edge which is not indicating any error. Thereafter, the time of the data change is as far as possible from the clock edge which may cause error, which results in that the probability of a second error to occur is minimal. Thus, we can conclude that one error at the maximum can be expected to occur during operation of the arrangement according to the invention. A single error is not a serious problem since it may be corrected by ordinary coding and error correction methods. 
     In practice, another case may occur, namely that the different elements D M  of the data word have varying time relations to the local clock. If initially there is no data read error in the error detecting units but the actual point of time for data change is located very near the currently used clock edge, then a deviating time relation of the other elements of the data word may lead to a data read error in some of these elements but not in the data stream passed through the data error detection units. Such a data read error is not detected but may give rise to a sequence of errors in the output data. This condition may be corrected by an improved embodiment of the present invention. The improvement involves an enlarged time window around the clock edge within which a data change gives rise to a data read error. This enlarged time window of the error detecting units is larger than the time windows of the other data read unit PNET. In this way a safe zone is created within which the other elements of the data word may deviate without causing a data read error, in those cases where a data read error is not caused in the element sampled by the error detecting units. 
     One way to create a safe zone according to the present invention is to inject a jitter signal on the data or clock input to the error detection means. The effect of the jitter signal is to displace the edge of the data or clock signal from its nominal value within a certain interval which is equal to an enlargement of the time slot around which a data change gives rise to a decision error. 
     Three embodiments of decision units having the capability to detect decision errors according to the present invention are shown in FIGS. 3A,  4 , and  5 , respectively. 
     The embodiment shown in FIG. 3A employs data flip-flops (DFFs) consisting of two dynamic latches LM and LS, which are preferably D flip-flops. When a decision error occurs, the output of the last latch LS will take a value not equal to logical one or zero as shown in the wave form diagram of FIG.  3 B. This situation may be detected by means of two comparators Comp having switch voltages VI and V 2 , where VL&lt;V 1 &lt;V 2 &lt;VH, VL representing logical zero and VH representing logical one. If the outputs of the comparators are different, this means that a decision error has occurred. 
     Another embodiment of the data read or decision error detection unit is shown in FIG.  4 . Here the data signal D and a delayed version D′ of the data signal catch the clock by means of two flip-flops. Their outputs, T 0  and T 1 , contain information about whether there is a clock edge between the edges of D and D′ which information may be extracted by means of a logic network. By applying a suitable delay, this detection window can be made to coincide with the window of the data collecting flip-flops that cause the decision error. 
     A further development of the present invention is described below with reference to FIG.  5 . 
     Assume that the local clock phase used to trigger the parallel data is φ J0 . To guarantee error free parallel data transfer, the test signal is fed into two paths labeled with test 0  and test 1 , respectively. Each path consists of two DFFs and a failure detection circuit. The two test paths are identical except the different clock phases used in the first DFFs labeled with φ J0  and φ J1 . The phase φ J1  is the inverted φ J0 , so if a data read failure occurs in one test path the other will be error free. The failure detectors detect any potential failure during data read. A decision C is made by checking the present and historical states of being erroneous among the two test paths. C is used to control a clock switch in which a clock phase is selected to obtain the error free parallel data transfer. 
     The flip-flop marked with D* is inserted to retime the parallel data. If the HSTP of the incoming test signal falls in the failure zone, another clock phase will be selected to trigger. A suitable phase φ must be found to trigger D* so that the error free parallel data transfer is obtained for both the flip-flop and the next latch. 
     To become more robust, an artificial jitter injection is employed. The artificial jitter blurs the edges of test signal so that if this blurred test signal can pass, the data transfer is more safe. In effect, this may be viewed as an enlarged time window of detecting a data read error. 
     The artificial jitter may be a low frequency square wave pulse sequence. The jitter injection can guarantee that in the worst case only one error may possibly occur after a system starts to work. 
     The present invention also makes it possible to eliminate the influence the impact of temperature shift. Initially, when the system is cold and just started, an additional jitter signal having a relatively large amplitude is injected. The amplitude is selected such that the edge of the data or clock signal is displaced within an interval which is larger than the largest expected temperature shift. When the system has been warmed up, the jitter injection is decreased to a lower amplitude or stopped completely. Thus, if the additional jitter causes a larger “disturbance” than the temperature shift, the data transfer will not be effected by the temperature shift. 
     Thus, the present invention provides an arrangement and a method for synchronising data to a local clock in parallel data transfer between two sub-systems with arbitrary clock phase. The method of self-tested self-synchronisation of the invention removes the requirements of global synchronisation and the constraints on clock skew. The arrangement is also more robust if a proper artificial jitter is injected. 
     The present invention provides a solution to the problem of synchronisation for large ULSI systems, in which there is no need for a dedicated delay matching in the clock distribution, for clock deskew by DLL or PLL in each sub-system, or for the constraints on the delay of the parallel data transfer. The clock can be arbitrarily distributed and the power consumption caused by the clock distribution and the peak current resulting from synchronous switching will be reduced. There is no limitation on the scale of the systems. In addition, the mechanism of the invention makes design and design automation much easier. By the method of the invention, parallel data transfer can reach full speed so maximum throughput can be obtained. 
     The present invention has been described in great detail with reference to the preferred embodiments. The scope of the invention is only limited by the claims below.