这确实是 PC 历史上的一个特征。最初的 IBM-PC 使用了一种称为实时时钟的芯片,该芯片由电池供电(您还记得需要更换这些电池吗?)这些芯片在机器断电并保持时间时运行。这些频率为 32.768 kHz(2^15 周期/秒),这使得在 16 位系统上计算时间变得容易。然后将这个实时时钟写入 CMOS,CMOS 可通过旧操作系统中的中断系统获得。
微软和英特尔推出了一个更新的标准,称为高精度事件计时器,它指定了 10MHz 的时钟速度
http://www.intel.com/hardwaredesign/hpetspec_1.pdf
甚至更新的 PC 架构也采用了这个并将其放在北桥控制器上HPET 可以调谐到 100MHz 甚至更高。在 10MHz 时,我们应该能够获得 100 纳秒的分辨率,而在 100MHz 时,我们应该能够获得 10 纳秒的分辨率。
已知以下操作系统无法使用 HPET:Windows XP、Windows Server 2003 和更早的 Windows 版本、更早的 Linux 版本
已知以下操作系统能够使用 HPET:Windows Vista、Windows 2008、Windows 7、基于 x86 的 Mac OS X 版本、使用 2.6 内核和 FreeBSD 的 Linux 操作系统。
使用 Linux 内核,您需要更新的“rtc-cmos”硬件时钟设备驱动程序,而不是原来的“rtc”驱动程序
所有这一切都说明了我们如何访问这个额外的分辨率?我可以从以前的 stackoverflow 文章中剪切和粘贴,但不能 - 只需搜索 HPET,您就会找到有关如何让更好的计时器工作的答案