A method and apparatus are provided that allow processing engines to be
synchronized to each other with high accuracy. In one embodiment, the
invention includes obtaining a processor tick counter value from a first
processing engine, comparing the obtained processor tick counter value to
a processor tick counter value from a second processing engine and
determining a timing offset for synchronizing the first processing engine
and the second processing engine using the comparison. The invention may
further include obtaining a processor tick counter value by sending a
request message from the second processing engine to the first processing
engine, and receiving a reply from the first processing engine at the
second processing engine. The processor tick counter value at the second
processing engine can be determined by recording the time at which the
request message is sent and by recording the time at which the reply is
received. The invention can further include obtaining a processor
frequency from the first processing engine, obtaining a processor
frequency from the second processing engine and correcting the timing
offset for any difference between the first processing engine frequency
and the second processing engine frequency.