[ntp:questions] Re: ntpd PLL and clock overshoot

Martin Burnicki martin.burnicki at meinberg.de
Fri Oct 20 07:53:14 UTC 2006


Maarten,

Maarten Wiltink wrote:
> "Martin Burnicki" <martin.burnicki at meinberg.de> wrote in message
> news:lcsh04-btd.ln1 at gateway.py.meinberg.de...
> 
>> [...] At least in Windows 2000 the clock tick interval seems to depend
>> on the CPU speed or whatever. I've seen nominal tick reload values
>> of 100144 (10.0144 ms tick interval) on older systems, whereas the
>> same version of the OS installed on a system with more CPU power had
>> 156250, resulting in a timer tick interval of 15.6250 ms.
> 
> That still doesn't mean that the time can't be queried to better than
> 1/100 or 1/64 of a second.

Don't know what you mean here. Event though some of the Windows APIs return
time stamps in 100 nanosecond resolution, those time stamps have exactly
the same value during a whole timer tick interval. After the next timer
tick the time stamp has increased by the interval time. 

I've written a little command line utility for Windows called wclkres which
continuously reads those Windows system time stamps and prints the
difference whenever the value of the returned time stamp changes:
http://www.meinberg.de/download/utils/windows/wclkres-1.1.zip

The behaviour mentioned above is exactly the reason why the Windows port of
ntpd runs a real time thread which interpolates the system time between 2
timer ticks using the Windows performance counter.

> Is it possible that installing a .Net framework changes the clock tick
> from 100Hz to 64Hz?

I don't think this is the reason. I've installed the same W2K version from
the same CD on different machines, and on the older slower ones the tick
adjust value was 100144 while on faster machines it was 156250. 

Don't know what XP and newer does on slow machines, though. On all current
installations I've seen the tick value is 156250, but this may me because
all those machines have fast CPUs.

I've written a little command line utility for Windows called log_adj which
also displays the current tick adjustment value and its offset from the
default tick value: 
http://www.meinberg.de/download/utils/windows/log_adj-1.4.zip

The readme file in the ZIP archive explains what the program does.


Martin
-- 
Martin Burnicki

Meinberg Funkuhren
Bad Pyrmont
Germany




More information about the questions mailing list