Disclosed are a method of and system for providing time synchronization
among first and second computer systems, where each of the computer
systems includes hardware, operating system software and a layer of
microcode operating between said hardware and said software. The method
comprises the steps of using the microcode of the first computer system
to provide a first timestamp, using the microcode of the second computer
system to provide a second timestamp and a third timestamp, and using the
microcode of the first computer system to provide a fourth timestamp. The
method comprises the further steps of using the first, second, third and
fourth timestamps to determine a timing difference between the first and
second computer systems, and adjusting the timing among said first and
second computer systems on the basis of said determined timing
difference. Preferably, the first and second computer systems are
connected together by a point-to-point link; and the first timestamp is
sent from the first computer system to the second computer system, and
the second and third timestamps are sent from the second computer system
to the first computer system over that point-to-point link.