Apparatus,
system and method for
synchronizing one or more clocks across a
communication link. A
slave clock may be synchronized to a
master clock by means of a
synchronization signal sent from the master to the
slave clock side of the link. The
synchronization signal may be an expected
signal pattern sent at intervals expected by the slave side. The
slave clock may correlate received signals with a representation of the expected
synchronization signal to produce a correlation
sample sequence at a first sample rate which is related as n times the slave
clock rate. The synchronization
signal receipt time indicated by the correlation
sample sequence may be refined by interpolating the correlation
sample sequence around a best correlation sample to locate a best interpolation at an interpolation resolution smaller than the sample resolution. The best interpolation may in turn be further refined by estimating between interpolator outputs adjacent to the best interpolation output. The synchronization
signal receipt time thus determined is compared to the expected
time based upon the slave
clock, which is adjusted until the times match. After initialization, all slave
clock errors are preferably accumulated to prevent long-term slip between the slave and master clocks. Formerly independent master and slave clocks synchronized across the
communication link constitute a noncommon clock which may be compared on each side of the link to secondary independent clocks, and the secondary independent clocks may then be separately synchronized by adjusting one to have the same difference from its local noncommon clock as the secondary clock on the other side of the link has from its local noncommon clock.