Following on from my post “What is Time?”, a clock is simply a device that counts regular events from a common starting point. That applies to all clocks and calendars, with the possible exception of a sundial! The regular events might be days, months and years, or they might be pendulum swings, quartz vibrations, or atomic transitions.
For example, my watch counts the resonant vibrations of a quartz crystal. I manually set the time to a known starting point, usually by comparing to a clock that I assume has a more accurate version of the time in my time-zone, for example my cell phone. In turn, my cell phone gets its time from the cellular network, which gets its time from a time server, which gets its time from a national time server, which gets its time from UTC. In that way, there is a loose traceability of my watch right back to UTC time, even if it is somewhat inaccurate when it reaches my watch. The crystal frequency of my watch doesn’t exactly match UTC frequency, so the time gradually deviates from the correct value, and I periodically adjust my watch to keep it reading close to the correct time.
A PTP clock is no different. A PTP slave clock receives messages from a PTP master clock several times a second, and adjusts its time to match the incoming messages. In between these messages, it relies on a counting “ticks” of a local oscillator – typically quartz crystal vibrations – to keep the time advancing, just like my watch also relies on its internal crystal. PTP boundary clocks work on the same principle, they receive time messages from a grandmaster clock, adjust their own time, and then pass that time along to subsequent boundary clocks or slave clocks.
Clearly, at the end of the chain, the time is not as accurate as the start of the chain. Each clock introduces a certain amount of inaccuracy. For example, these errors might be caused by inaccuracy in the time adjustments, or by instability in the crystal, causing the time to deviate between adjustments. The performance of a clock can be defined in terms of four key parameters: noise generation, noise tolerance, noise transfer, and transient response or holdover. Noise generation is the amount of time error a clock introduces, measured with an “ideal” timing signal at the input. Noise tolerance is the amount of time error a clock can tolerate at its input and still function correctly. Noise transfer is how much noise a clock passes from its input to its output, or in other words, how much does the clock filter a noisy incoming signal. Holdover (sometimes called “long-term transient response” defines how long a clock will maintain accurate time if the input timing signal is lost. In subsequent posts will look in more detail at each of these parameters.