相关阅读
时间计算惹祸,HWBOT宣布Windows 8跑分成绩全部无效
Hwbot封杀Win8后续:Windows 8.1也有问题,AMD不受影响
Windows 8是RTC bug唯一原因,AMD平台跑分照封不误
Windows 8不招人待见是有原因的,普通玩家也就吐槽下Metro界面不习惯而已,但是对超频玩家来说Windows 8带来的影响更大,因为最近的测试发布Windows 8系统的RTC计时器有问题,不同的基频但是同样的频率下跑出的结果确实不同的。
最初的发现是Windows 8影响了跑分,之后的测试发现AMD平台的跑分不受影响,因为hwbot封杀Windows 8跑分时给了AMD一个例外,不过最新的测试结果又回到原点:RTC Bug是Windows 8系统自带的,AMD也一样会受影响,只是不如Intel平台那么严重。
Ocaholic网站近日对这个问题做了深入的测试,揭示了这个bug到底是如何影响的,不过测试之前我们需要了解一点有关的背景知识,认识下软件及硬件系统上的各种计时器。
ACPI Timer:ACPI计时器,这个也叫PM Timer(Power Management Timer,功耗管理计时器,MSDN链接),这是个外置计时器,固定运行在3.579545MHz。
HPET Timer:高精度事件计时器,也是外置计时器,固定运行频率14.31818MHz。
RTC Timer:实时频率计时器,这是一个软件计时器,靠读取硬件计时器来计时,这是Windows系统及大部分软件所用的计时器。
TSC Timer:时间戳计时器(TimeStampCounter Timer),这是一个硬件计时器,有各种频率。它的频率等效于处理器频率,不过很多处理器都支持各种节能技术,其频率要受到功耗管理及扩频技术的影响。现在这个问题已经解决了,TSC频率目前已经独立于处理器频率。
QPC Timer:查询性能计数器计时器(QueryPerformanceCounter Timer),这是Windows API原生的高精度计时器,用于计算已消耗的时间,换句话说这也是一个依赖硬件计时器的软件计时器,之前使用TSC计时器做来源,不过现在已经转向引用ACPI计时器之类的固定频率计时器了。
DMI频率:换个说法可能更好理解,这是Intel平台上的BCLK频率,AMD平台上的HTT总线频率,它也是固定频率运行的,不过可以在BIOS中调节。
了解了基本概念之后我们还缺少一个工具,原文是找了高手帮助,CPUID网站的Franck.D给他们提供了一个小工具,可以读取各种计时器的频率,我们首先来看下Intel平台的Windows 8跑分。
◆ Intel平台测试:RTC与QPC联动
100MHz正常频率下一切都是OK的
基频降低到95MHz
把基频从100MHz降低到95MHz,根据hwbot之前的测试我们知道这种情况下RTC计时器会受影响,现在来看QPC计时器一样也会受影响。
下一步直接从BIOS中以95MHz基频启动系统,看看情况如何。
看起来跟100MHz下的情况是一样的,时间都恢复到了180秒,不过仔细看下就知道了,QPC计时器频率从之前的3.42MHz降低到了3.25MHz,这意味着改变总线频率已经影响到了计时器频率,再来算下100MHz/3.42MHz=95MHz/3.25MHz=29.24,看起来QPC频率使用的计时器来源是DMI频率或者是某种以DMI频率为基础的计时器。
小节:
Intel平台的RTC和QPC计时器使用相同的硬件资源(计时器或者频率),而且这个资源对DMI频率改变很敏感,也就是说Windows 8使用的是外置计时器或者直接基于DMI频率而非HPET或者ACPI这样固定频率的外置计时器。
◆ AMD平台测试:默认不受影响
现在再来看一下AMD平台的计时器测试。
正常情况下的计时器情况
将总线频率降低到180MHz
这就是之前测试得出的结果,降低总线频率并没有影响RCT或者QPC的结果,不过仔细看下也会发现QPC计时器的频率从4.12MHz提高到了14.32MHz。
跟Intel平台一样,在BIOS中更改总线频率后重启系统,看看情况如何。
情况跟之前的测试相比并没有变化。
AMD平台的QPC计时器看起来是使用的HPET计时器(因为他们的频率相同),禁用之后会有什么情况呢?
禁用HEPT计时器之后的情况
HEPT计时器禁用之后就无法显示了,QPC计时器不能再使用HEPT计时器了,现在转向ACPI计时器,其中显示的3.58MHz频率正是ACPI计时器的频率。
再次开启HEPT计时器之后的情况
再次启用HEPT计时器之后,QPC计时器频率就恢复到了原来的频率。
小结:
AMD平台得出的结果显示:在AMD平台上安装Windows 8系统之后,QPC看起来会跟Intel平台那样使用一样的计时器,重启之后就会使用HEPT计时器,如果后者可用的话。
默认情况下,AMD平台使用HEPT计时器做来源,如果HEPT计时器不可用,就会转向ACPI计时器。
RTC和QPC计时器使用相同的硬件计时器来源,而且AMD现在是不受Windows 8的RTC bug影响的。
◆ 将AMD平台安装的Win8转移到Intel平台
为了进一步验证是平台还是Win8导致的bug,他们又做了一个测试,直接把AMD平台安装的Windows 8系统的硬盘接到Intel平台上。
QPC频率显示14.32MHz
情况很有趣,QPC计时器显示的还是AMD平台的14.32MHz频率,而Intel平台原来是3.42MHz,这说明现在的QPC频率使用的还是HEPT计时器频率。就如之前看到的那样,现在所有的计时器都不再受DMI频率影响了。
看起来好像AMD治愈了Intel的顽症了。(Intel会感谢AMD不?)
别着急,下面才是见证奇迹的时刻!
他们使用BCD编辑器改变了Windows 8启动菜单的名字,他们注意到有个参数是出现在AMD平台上的,而原来的Intel平台是没有的,这个参数就是useplatformclock,在AMD平台参数的结果是Yes,而Intel平台上没有。
现在把这个参数改成NO来看下什么情况。
如图所示,Windows 8的RTC Bug又回来了,QPC计时器的频率显示它又用回DMI频率了。
小节:
Intel平台上useplatformclock参数是没有的(设置成NO了),而AMD平台上是有的(设置成Yes)。如果在Intel平台上的加上这个参数并设置成Yes,Windows 8的RTC bug就没有了,如果删除这个参数,那么bug又回来了。
现在基本可以确定这个bug是Windows 8自身的问题,不过我们还是再来验证一下AMD平台真的对这个bug免疫吗?
◆ 改个参数,AMD平台一样会受影响
删除useplatformclock参数之后一样会受到影响
正常的情况下,AMD的平台使用的是HEPT计时器,不会受总线频率影响,但是这并不是AMD平台完全不会受影响。测试显示,如果将useplatformclock参数设置成NO或者直接删除这个参数,AMD平台一样会收到影响。
删除或者修改useplatformclock参数命令:
bcdedit /set {current} useplatformclock No
bcdedit /deletevalue {current} useplatformclock
不过这种方式只对下一次启动有效,因为在那之后Windows 8系统会自动将这个参数改回默认设置。
◆ Windows 7平台验证及总结
Windows 7的情况我们之前已经知道了,不过这里还是来看一下到底是什么情况。
总线频率降低到95MHz
验证之后可以看到,Windows 7的QPC计时器频率默认下也依赖DMI总线频率,而RTC计时器跟是QPC计时器使用的不是同样的来源,它对DMI总线频率并不敏感,意味着它使用的是HPET或者ACPI这样的计时器。
在Wind7中添加useplatformclock参数之后的情况
QPC频率现在使用HEPT频率,也没有受到总线频率影响。
总结:
在经过了详细的测试之后,现在我们可以确定,Windows 8系统的RTC bug是它自己的原因,Windows 7因为RTC计时器跟QPC计时器使用的不是同一来源而不受影响。
AMD平台默认下是不受影响的,但是改个参数的话一样也能受影响。Intel平台的bug其实也可以改个参数的方式来修复。
总之,出现这个问题的根源还是Windows 8自己的问题,RTC与QPC计时器频率挂钩导致超频跑分中很容易使用RTC来作弊。
超能网友终极杀人王 2013-09-05 13:57 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(2) | 反对(0) | 举报 | 回复
7#
游客 2013-09-05 12:40
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(0) | 反对(0) | 举报 | 回复
6#
超能网友一代宗师 2013-08-26 10:11 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(3) | 反对(0) | 举报 | 回复
5#
游客 2013-08-21 11:55
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(1) | 反对(0) | 举报 | 回复
4#
游客 2013-08-21 10:14
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(0) | 反对(0) | 举报 | 回复
3#
游客 2013-08-21 10:14
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(0) | 反对(0) | 举报 | 回复
2#
游客 2013-08-19 15:03
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(0) | 反对(0) | 举报 | 回复
1#