Windows 8 RTC Bug analyzed and fixed!
Published by Christian Ney on 22.08.13 (36897 reads)
As soon as the Windows 8 RTC issue appeared, we started our own investigation and found out, that only Intel setups were affected. But still there were quite a few questions unanswered like for example: which timer is Windows 8 actually using, are there really no issues on AMD and why is the issue fixed, when you move to an Intel when you installed Windows 8 using an AMD platform? Credit also goes to Franck D. from CPUID, who was kind enough to provide us with a tool to read out different timers and their frequency.
Background informationACPI Timer: Also known as PM Timer is an external hardware timer that has a fixed frequency of 3.579545 MHz.
HPET Timer: HPET stands for High Precision Event Timer, it is an external hardware timer that has a fixed frequency of 14.31818 MHz
RTC Timer: RTC stands for Real-Time Clock. It is a software timer that reads an hardware timer to count. It is being used by Windows and most softwares as the reference clock to measure time.
TSC Timer: TSC stands for TimeStampCounter. It is an hardware based timer that has a variable frequency. Its frequency was equal to the processor's frequency and that was a problem as it would be affected by spread-spectrum and power management features lowering the processor's clock speed implemented on newer processors. This was eventually solved in later processor designs by making the TSC clock independent of the processor frequency.
QPC Timer: or QueryPerformanceCounter is a native Windows API that access a high resolution timer and is used to calculate elapsed time. In other words a software timer that reads an hardware timer too. It was originally designed to use the TSC Timer but then modified to use a fixed frequency timer such as ACPI or HPET.
DMI Frequency: Better known as bus frequency is the BCLK on Intel platforms and HTT on AMD platforms. It's a fixed frequency that can be changed in the BIOS or on the fly in Windows.