In the multiprocessor computer systems environment, clock pulses from a common source are distributed for controlling many widely separated circuit modules. Time delays associated with the passage of clock and data signals through parallel, but not identical, paths are not uniform; signals can arrive at their destination in skewed time relation to each other. Source synchronous clocking is often utilized whereby parallel data signals and a synchronous clock are distributed to widely separated circuit modules. The forwarded clock acts as a capture clock for data at the destination. The capture clock edge is optimally positioned between successive data edges so the receiving capturing device has equal setup and hold time margins. Often, finite time delay is added to each signal to correct for skew and to optimally position the forwarded capture clock edge relative to the deskewed data edges.
It is possible to limit a certain amount of signal skew by applying careful attention to layout and design. Examples of methods to reduce clock pulse skew are shown in U.S. Pat. No. 4,514,749 by Skoji and U.S. Pat. No. 4,926,066 by Maimi et al. Such methods fail, however, to correct for skew from various divergent clock pulse path interconnections. In addition, such skew compensations, once implemented, cannot accommodate variations in skew caused by such factors as component aging, operating environment variations, and so forth.
Within a computer system, data is passed from register to register, with varying amounts of processing performed between registers. Registers store data present at their inputs either at a system clock transition or during a phase of the system clock. Skew in the system clock signal impacts register-to-register transfers, i.e., skew may cause a register to store data either before it has become valid or after it is no longer valid.
As system clock periods shrink there is increasing pressure on the computer architect to increase the amount of determinism in the system design. Clock skew, like setup time, hold time and propagation delay, increase the amount of time that data is in an indeterminable state. System designers must be careful that this indeterminable state does not fall within the sampling window of a register in order to preserve data integrity.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a system and method for reducing skew between parallel signals within electrical systems.