[ntp:questions] Re: Windows timekeeping - sudden degradation - why?

John Allen allen{at}vo{dot}lu at ntp.isc.org
Thu Dec 15 21:05:44 UTC 2005

David J Taylor wrote:
> John Allen wrote:
> []
>> I found references to possibly using a different HAL (Hardware
>> Abstraction Layer). I then did what was probably not wise, which was
>> to change from "ACPI Uniprocessor PC" to "Advanced Configuration and
>> Power Interface (ACPI) PC". I also set the BIOS option "FSB Spread
>> Spectrum" to "disabled".

> I would have though that "spread spectrum" (implying a continually 
> changing random frequency) was definitely something to avoid for accurate 
> timekeeping!  As you say, changing the HAL is not something to be 
> undertaken lightly.
> I wonder if you could check just the effects of the spread-spectrum being 
> enabled or not?


Yes, I have checked with and without FSB Spread Spectrum with both HALs.

My observations for the 4 combinations are:

Motherboard: A7N8X-X (nForce2)  Windows XP SP 2

HAL: "ACPI Uniprocessor PC" (with APIC, halaacpi.dll):
1) FSB Spread Spectrum = 0.50% :  system clock unstable, NTP did not synchronise
2) FSB Spread Spectrum = disabled :  system clock unstable, NTP did not synchronise

HAL: "Advanced Configuration and Power Interface (ACPI) PC" (no APIC, Halacpi.dll)
3) FSB Spread Spectrum = 0.50% :  system clock stable, NTP synchronised
4) FSB Spread Spectrum = disabled :  system clock stable, NTP synchronised

It's a bit anecdotal, but it seems that FSB Spread Spectrum may not make a big 
difference. However, I'm still running (3), I'll have to check its behaviour 
over a longer period.

It should be mentioned that according to the Microsoft KB article
there is a quite fundamental difference between the two DLLs:
- Halaapic.dll: uses the Real Time Clock (RTC) to generate clock interrupts
- Halacpi.dll: uses the 8254 Programmable Interval Timer (PIT) to generate clock 



John Allen
Bofferdange, Luxembourg

More information about the questions mailing list