本帖最后由 royalk 于 2010-10-4 14:29 编辑
前言:本文仅代表个人观点,由于不是官方的一手资料,正确性不能保证。只是给大家一个参考,本文来自PCEVA,由royalk原创。转载请注明作者和出处。
历史背景
AMD的Cool 'n' Quiet,中文名“凉又静”,以下和大家一样简称CNQ。最早可以追溯到K6-2+时代,那时候AMD把节能技术叫做PowerNow!技术,只有在移 动版的CPU上可以实现低负载时候降低CPU的倍频,从而降低处理器的功耗,当然对于桌面版CPU也可以通过硬改变成移动版,并通过某些方法实现这个功 能,不过那已经随着历史的车轮而消失,在这里不再过多讨论。到K8的时代(2003年),PowerNow技术改名为CNQ,同时AMD也正式把CNQ技术应用在桌面版CPU上,并且在降频的同时实现了降低CPU的VID,从而降低CPU的工作电压,让节能效果进一步提升。到了现在K10平台,CNQ的版 本已经进步到3.0,除了能实现上述的降频降压功能之外,还可以单独控制处理器每个核心的倍频,在某些核心空闲的时候单独降低工作频率,但是电压却没法单独控制,因为一个CPU,每个核心都有一个FID,但VID只有一个。
工作原理简介
就如上边提到的,如今的CNQ 3.0,可以实现对每个核心的倍频分别控制。CNQ 3.0可令K10的处理器有四个工作状态,我们分别称为P0、P1、P2和P3。四个状态分别对应着处理器的FID(倍频)和VID(电压),而FID又是可以每个核心单独控制。对于K10之后已经独立出来的CPU-NB频率,CNQ则不可控制。
CNQ的默认工作流程大约如下:
1. 待机:假设CNQ已打开,系统在空载的时候,处理器处于P3状态,FID为0,DID(倍频除频)为1(也就是除以2)。也就是4x倍频。在不超频的情况下,处理器的运行频率为800MHz。电压(VID)大约在1v-1.1v之间。
2. 提高状态的激活条件:系统检测到某个核心大于60%的负载,并持续500ms(0.5秒)后,(注意这两个条件很重要),系统会将那个核心提升到P2状态。并会再次检测以上两个条件,如果满足的话,就会陆续把该核心提升到P1状态和P0状态。
3. 电压:当有至少一个核心处于较高的状态时,则处理器的电压就提高到相应的状态。例如,有一个核心处于P1的状态,而其它三个核心处于P3,那么当前电压为P1状态下的电压。
4. 降低状态的激活条件:系统检测到某个核心小于20%的负载,并持续2000ms(2秒)后,系统会降低该核心的状态,并做重复的检测,直到降到P3状态。当最后一个核心从高状态降下来时,CPU电压降低。
也就是说,P1和P2状态为两个过渡状态,P0为全速工作状态,P3为节能状态。
作用及影响
AMD的CNQ技术,在K8时代官方给出的功耗规格,在待机时开启CNQ,处理器的 功耗大约为20-30W,而现在晶体管大幅增加,但是随着工艺的进步,也差不多是这个数(具体请看下集功耗分析)。然而,在降低频率达到节能目的同时,也会带来性能的牺牲,这将给我们带来什么样的影响呢?
所以,在此我提出我的论点:
CNQ会给处理器性能带来一定的影响,主要表现在两方面:
1. 提高状态的延迟,从P3提高至P0总共要做3次判断,耗时至少1.5秒。在这1.5秒之前,处理器是无法以全速运行的。
2. 在非多核心的应用程序中,由于windows会自动分配多线程,导致每个核心未必满载,达不到提高状态的激活条件。
这两方面,只要开启了节能就不可避免的存在,但是实际应用测试上,到底会对性能造成多大的影响?主板对这两个问题是否又考虑到?下面我们一一论证,来看测试。
测试平台
CPU:AMD Phenom II X6 1055T 3.6GHz
主板:技嘉 890GPA-UD3H
内存:芝奇 F3-12800CL7D-4GBECO
显卡:技嘉 GTX460 1G
硬盘:西数320G
电源:海盗船VX550W
散热器:超频三 南海自立版
测试还是分为理论运算测试和游戏测试,代表了大家的绝大部分对处理器性能要求的日常应用。
从测试结果我们可以看到一些出人意料的现象,同时也暴露出技嘉的这个主板的BIOS上的一些细节问题,下面我们一一讨论。
1. 由上边说到的CNQ的激活条件可知,处理器在检测到负载变频的头1.5秒内,性能应该是没法达到最大化的,也就是说测试持续的时间越短,这个1.5秒对性能影响应该会越大。但是从测试结果来看,理论测试中除了3Dmark06的CPU分数和CineBench之外都属于短时间测试,我们可以看到CNQ对测试结果的影响并不大,有些项目反而有所提升。说明至少这张主板对CNQ的优化还是比较到位的,相信K10平台经过两年的发展,各大主板厂商BIOS对这方面的优化也已经足够成熟,基本消除了状态改变的延迟对性能的影响,之前我们提出的论点一可以被推翻。
2. 之前提到的有些测试结果反而有所提升,这并不是偶然现象,因为我运行过多次测试以消除误差。而且这个提升在持续时间较长的CineBench R10测试中尤为明显,达到5%以上,这绝非误差所致。而测试条件并没有任何改变,所以我把问题的焦点放在了BIOS上,技嘉的BIOS在对CNQ做优化的同时,是否忽略了不开节能时的性能?或者说,在BIOS上是否还有对性能的优化空间?带着这个问题,我把测试平台转移至华硕的M4A89TD PRO上,同样分别测试打开和关闭CNQ时的CineBench R10成绩,发现差距非常小。所以这个疑问,恐怕只能让技嘉自己用实际行动来证明。
3. 再来看3D方面的测试结果,除了3DMark06受CPU影响较大而有所提升之外,其它成绩均是开启节能比不开节能稍微有所降低。但是这个差别从宏观上来看,都非常小,因为游戏对CPU的性能其实并不是特别敏感。而从细节上看,在一些游戏,例如在失落的星球2的benchmark中,开了节能就出现偶尔的跳帧现象。这个跳帧持续的时间非常短,甚至连自带的测试结果曲线和Fraps都没法录到,但是最低FPS是有到10以下,这个情况在关闭节能的时候不会发生。因此,转回我们的论点二,这个测试结果说明论点二还是有存在的可能的。
4. 下面我们来对比一下Intel平台的EIST节能技术对性能的影响,测试项目完全和上边相同,注意两个平台的测试数据不具有可比性,这里有可比性的是开启和关闭节能对性能影响的误差。
从测试结果来看,Intel的EIST在测试持续时间极短的Everest Memory Read项目中被抓到把柄,打开节能后,内存的读取速度慢了5%左右,我可以肯定这也不是误差造成的。而是EIST同样会造成一定的延迟。但是在其它项目,尤其是游戏中,Intel的EIST表现良好,误差都在1%以内。
究其原因,我觉得是EIST并不像CNQ那样,会把每个核心的倍频独立控制,而是有一个核心有负载的时候,就会把所有核心的倍频提高了。所以这样对性能影响就小一些。尤其是可以避免游戏的跳帧。
好了,最后留下几个问题给大家讨论:
1. CNQ的核心独立倍频控制,算是CNQ技术发展到3.0后的一个亮点,或许可以在有一部分负载的时候让节能依然发挥一定的作用。然而鱼和熊掌不可兼得,对于这个,大家如何取舍?
2. K10stat可以对CNQ进行一定的优化,比如可以自定义P3状态下的电压,可以实现比CNQ更加节能。但是K10stat是一个软件层的控制,所以会占用一定的系统资源,效率也没有优化后的CNQ高,对性能的影响更大,大家怎么看?
3. 大家说的开启CNQ后超频不稳定的问题,我没有遇到过,不知道大家所指的不稳定是什么?按道理,1.1v左右的电压,哪怕是跑300x4也是应该没有压力的。会不会是中间状态切换(P1或者P2)的时候电压不稳定所致? |