这确实是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:视窗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”司机
所有这一切说我们如何访问这些额外的分辨率是多少? 我可以截断并从以前的计算器的论文中,而不是 - 只要搜索HPET,你会发现关于如何获得更精细的定时器工作
http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Problems显然,HPET的某些实现具有讽刺意味的是由于读取缓慢或漂移等问题而产生精度问题。尽管如此,在大多数情况下仍然可以使用,特别是对于媒体播放/同步(因为这就是它最初的意思)。 – Alex 2015-05-15 20:43:57