Browse Prior Art Database

Trace Synchronization in a Multiprocessor Environment

IP.com Disclosure Number: IPCOM000108704D
Original Publication Date: 1992-Jun-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 2 page(s) / 113K

Publishing Venue

IBM

Related People

Doing, RW: AUTHOR [+2]

Abstract

Disclosed is a method for accurately time stamping events amongst multiple processors without requiring that all processor clocks be synchronized to the same time. Furthermore, the method permits the use of heterogeneous clocks across the processors.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Trace Synchronization in a Multiprocessor Environment

       Disclosed is a method for accurately time stamping events
amongst multiple processors without requiring that all processor
clocks be synchronized to the same time. Furthermore, the method
permits the use of heterogeneous clocks across the processors.

      The trace facility described below provides complete trace
synchronization for a multiprocessor system with unsynchronized
processors.  The method provides for maximum system performance and
minimum use of processor resources. Each processor must have access
to a clock/timer, and there must be a communication path to each
processor to allow data transfer.

      This trace synchronization facility can be tailored for any
number of processors.  Each processor will be tracing independently
and will maintain enough timer information to determine the exact
time difference between each trace entry in its trace buffer.  One of
the processors will control a table that contains time variations
between all of the processors.  Upon completion of a trace session,
this table is used in conjunction with the independent processor
timers to chronologically order all of the trace entries.

      At the processor level, each trace entry will contain a field
called a time stamp.  The time stamp can be thought of as a counter
which wraps in a given amount of time depending on its size and how
often it gets incremented.  Its purpose is to provide a precise time
difference between each trace entry.  A typical time stamp would have
a size of two bytes and be incremented in the order of milliseconds.
The size of this field depends on three factors:
1.   The amount of space that can be spared from each entry.
2.   The smallest possible duration between trace entries.
3.   How often the processors can feasibly be interrupted to place a
detailed time entry into the trace buffer.
This can be depicted by the following equation:
Wrap_Time = (Smallest_Trace_Increment) * (2**(#_Time_Stamp_Bits))

      To deal with the problem of the time stamp wrapping, a detailed
time entry is put into the buffer in increments of the wrap time.
Each time entry contains the complete time down to the granularity of
the time stamp and also contains the date, if available.  A
count-down timer can be used to signal the need for a time entry, by
adjusting the count-down time for slightly less than the wrap time.
Only one timer is necessary for all the processors.  The main
processor which can be called the "Master" handles and controls the
timer.  When the timer "pops", the Master processor writes a time
entry to its trace buffer and then signals each of the remaining
processors to do the same.  Upon completion, the Master processo...