Win8因它被封杀:RTC Bug深究、解决之道
  • 上方文Q
  • 2013年08月26日 15:35
  • 0

Windows 8 RTC Bug被确认之后,超频平台HWBot封杀了所有基于它的跑分成绩,智利网站ocaholic.ch则研究发现似乎只有Intel平台才受影响

那么,这个Bug究竟是怎么回事儿?Windows 8到底在使用什么计时器?AMD平台真的那么“清白”么?能否不等微软而自己解决这个问题?ocaholic.ch这些天又对此做了更详尽的研究,还找来了CPU-Z的作者Franck D.合作,利用了他提供的计时器和频率读取工具。

【背景知识】

ACPI计时器(ACPI Timer):也叫PM计时器,是一种外部硬件计时器,固定频率3.579545MHz。

HPET计时器(HPET Timer):高精度事件计时器,也是外部硬件计时器,固定频率14.31818MHz。

RTC计时器(RTC Timer):实时时钟计时器,是软件计时器,需要读取硬件计时器来计算。它是Windows和据大多数软件衡量时间的参考时钟。

TSC计时器(TSC Timer):时间戳计数计时器,是基于硬件的计时器,但频率可变。以前它就等于处理器频率,在早些年不是问题,但后来处理器不断加入会降低频率的扩展频谱、电源管理等功能,就有问题了,于是后来设计的时候将其改为和处理器频率相独立。

QPC计时器(QPC Timer):查询性能计数计数器,是一个可访问高分辨率计时器的原生Windows API,用来计算已流逝时间。换言之,它也是读取硬件计时器的软件计时器。它最初使用TSC计时器,但后来改成了使用ACPI、HPET之类的固定频率计时器。

DMI频率:也叫总线频率,Intel平台上的BCLK,AMD平台的HTT,俗称外频。也是固定的频率,但是可以在BIOS、Windows里自行更改。

Win8因它被封杀:RTC Bug深究、解决之道

【Intel Windows 8平台实测】

Win8因它被封杀:RTC Bug深究、解决之道

不改变总线频率,所有计时器都表现正常,给出了各自的频率和时间。

Win8因它被封杀:RTC Bug深究、解决之道

在Windows 8系统中,将总线频率从100MHz降至95MHz,ACPI、HEPT计时器不变,但是RTC、QPC计时器都不正常了。

Win8因它被封杀:RTC Bug深究、解决之道

接下来在BIOS里将总线频率改为95MHz并启动,所有计时器的时间都是正常的,但是注意QPC计时器的频率从3.42MHz降低到了3.25MHz,简单计算可知其变化幅度就是总线频率的5%。

这不但证明RTC计时器的变化仅仅是在Windows里改变频率才受影响,也说明QPC计时器是以DMI频率为计时源的。

在转向AMD平台之前,我们不妨猜测:

1、RTC、QPC计时器使用相同的硬件源(计时器或者频率)。

2、硬件源对总线频率的变化很敏感。换言之,Windows 8则似乎使用的是内部硬件计时器或者直接用DMI频率,而不是用外部计时器。


文章纠错

  • 好文点赞
  • 水文反对

此文章为快科技原创文章,快科技网站保留文章图片及文字内容版权,如需转载此文章请注明出处:快科技

观点发布 网站评论、账号管理说明
热门评论
查看全部0条评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0