[ntp:questions] IEEE 1588 (PTP) at the nanosecond level?
magnus at rubidium.dyndns.org
Mon Mar 17 22:31:19 UTC 2014
On 17/03/14 09:48, Martin Burnicki wrote:
> William Unruh wrote:
>> On 2014-03-16, Joe Gwinn <joegwinn at comcast.net> wrote:
>>> I keep seeing claims that Precision Time Protocol (IEEE 1588-2008) can
>>> achieve sub-microsecond to nanosecond-level synchronization over
>>> ethernet (with the right hardware to be sure).
>>> I've been reading IEEE 1588-2008, and they do talk of one nanosecond,
>>> but that's the standard, and aspirational paper is not practical
>>> hardware running in a realistic system.
>> 1ns is silly. However 10s of ns are possible. It is achieved by Radio
>> Astronomy networks with special hardware (but usually post facto)
> Why should 1 ns be silly?
> If you have a counter chain clocked by 20 MHz then the timestamps
> captured when PTP packets are going out or are coming in have a
> resolution of 50 ns.
> If your hardware can be clocked a 1 GHz then the resolution could be
> increase to 1 ns.
> Of course I know high resolution is not the only thing you need for high
> accuracy, but it's a precondition.
> You'd need hardware (FPGA?) which can be clocked at 1 GHz, and even in
> the hardware signal processing you'd need to account for a number of
> signal propagation delays which you can eventually ignore at lower clock
> So of course the effort becomes much higher if you want more accuracy,
> but this is always the case, even if you compare NTP to the "time"
> protocol, or PTP to NTP.
You don't need to count at 1 GHz, you can achieve the resolution with
*much* lower frequencies. One pair of counters I have achieve 2,7 ps
single-shot resolution using 90 MHz clock. Interpolators does the trick.
There is many ways to interpolate.
Achieving the necessary resolution then turns into the troublesome issue
of precision, which require calibrations and systematic studies.
>>> I've seen some papers reporting tens to hundreds of nanoseconds average
>>> sync error, but for datasets that might have 100 points, and even then
>>> there are many outliers.
>>> I'm getting PTP questions on this from hopeful system designers. These
>>> systems already run NTP, and achieve millisecond level sync errors.
>> Uh, perhaps show them to achievement of microsecond level sync errors?
>> That is already a factor of 1000 better than they achieve.
>> One of the key problems is getting the packets onto the network (delays
>> withing the ethernet card) special hardware on teh cards which
>> timestamps the sending and receiveing of packets on both ends could do
>> better.a But it also depends on the routers and switches between the two
> Of course all involved network nodes needed to be able to timestamp at
> this high resolution, otherwise the overall accuracy would be degraded.
> And, it would probably be easier to achieve this accuracy with an
> embedded device with dedicated hardware than with a a standard PC and a
> NIC connected via the PCI bus.
There is a whole myriad of issues you end up with when you try to get
down that low.
> If there were a 1 GHz oscillator on the NIC used for timestamping then
> you still have to provide a way to relate the timestamps from the NIC to
> your local system time. If the only way to do this is via the (PCI?) bus
> then the accuracy could suffer from bus latency, arbitration, etc.
> On a dedicated hardware the same oscillator/high resolution counter
> chain could be used for system timekeeping, and to timestamp network
> packets, which makes things much easier.
You end up with quite dedicated hardware if you want to go there, yes.
Regardless of how you do it.
More information about the questions