用软件测试“电源品质好坏”、“电压输出准确与否”可靠吗?
最近使用AIDA64、3DMark或者OCCT一类测试软件对电源输出质量和品质进行测试的做法又不断涌现。这种使用测试软件(Benchmark)对电源进行测试的方法是基于什么样的原理?它测试出来的电压值或者说这个测试方法本身可靠吗?在这个背景下我写了本文,从基本的原理出发,介绍一下目前测试软件的原理和误区。
老一辈玩家对于使用软件测试电源的看法:不可取
关于使用测试软件测试电源的做法,老一辈的玩家在 2010 年前后有过非常多的探索和讨论,结论是这种做法并不可取。
可能是中间的这些年份缺乏科普,在过了将近十年之后,很多新玩家并不了解电源和电子电路方面的知识,使用软件对电源进行测试这一种不科学的做法又不断涌现。那么使用测试软件对电源进行测试是基于什么样的原理?为何会说它是一种不可取的做法?
测试软件的原理及其不足
计算机硬件行业发展至今,用于 DIY 硬件测试的软件种类非常多,CPU、内存、显卡、存储设备都有对应的跑分和检测软件,例如 CPU-Z、 GPU-Z、3DMark、Furmark、SuperPI,被用于电源测试的则是 AIDA64、OCCT 等软件(注意我用的语态是“被用于”)。
AIDA64 是一款综合性的检测软件,其中的传感器页面能显示主板传感器所能读取的众多数据,常用于读取温度、电压和风扇转速等状态值。
OCCT 全称为 OverClock Checking Tool,即是一款检验超频稳定性的软件,由于它能够让 CPU、显卡等高功耗部件同时、连续地运行,间接让电源处于负载的状态,并且生成相应的电压图表,通过图表中电压的波动值便可以让用户评判电源输出品质的优劣,以致于后来被认为是一款针对电源的测试工具,然而事情并没有这么简单,我认为这更多的是一个误会。
无一例外,以上的硬件测试软件的共同点是它们所读取的数据都来自于主板上的监控芯片(传感器)。
整个电压检测的流程大致是这样:
被检测电压 → 取样电阻 → ADC → 监控芯片 → BIOS → 操作系统 → 测试软件
监控芯片所采集的数据的准确性受到主板线路设计、取样电阻、ADC精度、BIOS等多种因素的干扰,又时候还受到操作系统和测试软件版本不同的影响。
整个测试流程有太多的干扰因素叠加在一起,也没有形成一个闭环反馈,所采集的电压数据的精确度很有限,很难确保测试软件最终读取到的数据就是主板实际使用的电压值。
软件开发商的态度:数据不准是常有的
AIDA64 的官网上面有这样一条 FAQ 也指出这个问题(Frequently Asked Question]):
27.The temperature, voltage or fan rotation values on the Computer / Sensor page are inaccurate. For example, a bogus “Aux” temperature is displayed with a nonsense value; or the CPU and motherboard temperatures are reversed; or the -5V or -12V lines display a completely off positive value. How to make the sensor values more accurate?
Unfortunately there is no standard for sensor chip registers layout, hence in several cases the registers layout that AIDA64 uses could fail to be accurate. In such cases please contact us through the AIDA64 Discussion Forum, under the “Hardware Monitoring” forum. When you open the new topic, please make sure to indicate the version number of AIDA64 you’re using, the model of your motherboard; and also copy-paste the full content of the Computer / Sensor page into the new topic you open.
这条 FAQ 所说的内容是 AIDA64 中的计算机/传感器页面在某些情况下可能会显示一些错误的温度、电压或者风扇转速值,例如一个毫无意义的 Aux 温度值、CPU 和主板的温度颠倒过来或者是 -12V、-5V 这类应该为负数的电压值显示为正值。
FinalWire 对此的回答是主板关于传感器这一模块的设计并没有固定标准,因此在一些情况下,AIDA64 内置的一些传感器方案可能会失去准确性。
实测检验
检验测试软件是否准确的方法很简单,采用测试软件读数和数字万用表直接测量进行对比,看是否存在相关性,如读数一致且存在相关性,则使用软件进行测试的方法有效。
测试平台:
Intel Core i7 7700K OC 5.0G
华硕 ROG MAXIMUS IX APEX
海盗船 铂金统治者 DDR4-3200 16Gx2
东芝 Q200EX 240G
海韵 Prime Titanium 750
仪器和软件:
胜利仪器四位半数字万用表,精度±0.05%
OCCT v4.5.1
AIDA64 Extreme v5.92.4312
首选测试选择在主板BIOS中,读取主板BIOS显示的电压值和万用表测量值进行对比,万用表的取样点为主板24Pin接口。
Intel ATX12V规范中对于各组电压的输出范围有着明确的要求,在整个负载范围内,+12V、+5V、+3.3V和+5Vsb的输出范围应不超过±5%,对-12V的要求则是±10%。
12V的情况,BIOS显示12.096V,而万用表显示12.102V。
5V,BIOS显示5.040V,万用表显示5.026V。
3.3V,BIOS显示3.344V,万用表显示3.329V。
作为一块高端主板,华硕这张ROG MAXIMUS IX APEX 的BIOS 的电压测量值和万用表的测量值比较接近,但并不是完全一致。万用表的读数比较接近之前评测时使用Chroma电子负载进行测试时所抓取到的数值(见下表),因为是同一颗样品,所以万用表的测量值还是比较准确的。
桌面待机的情况,在Windows 10系统中同时开启OCCT和AIDA64,OCCT显示电压值为12.1V(OCCT这也太不严谨了,只有小数点后一位数),AIDA64相对较好,显示12.096V,和此前在BIOS中显示的一致,但是丝毫没有波动,即便跑OCCT的测试,OCCT生成的电压波形图也是如此。万用表显示12.099V,小数点后第三位有轻微波动。
5V的情况,OCCT显示5.04V,AIDA64显示5.040V,万用表显示5.027V。
3.3V的情况,OCCT显示3.33到3.34V跳动,AIDA64显示3.328到3.344V两个值来回跳动,万用表显示3.329V到3.330V跳动。
运行OCCT的电源测试,OCCT和AIDA64的电压读数没有波动,从测试开始到结束都保持12.096V,OCCT生成的电压波形图是一条直线。
运行OCCT电源测试,OCCT和AIDA64的电压读数也没有波动,都显示5.04V。万用表显示5.024V。
3.3V的情况,OCCT显示3.33V~3.34V,AIDA64显示3.328V~3.344V,万用表显示3.327V。
结论:测电源起码需要一个数字万用表,别用软件测
从以上的测试来看,使用OCCT或者AIDA64对电源进行测试,软件显示的电压值和实际的电压值有一些偏差,软件测得的电压波动跟实际电压波动没有相关性,几乎没有参考价值可言。
此外,需要特别注意,目前主流的PC平台满载功耗大约在200W到400W,用户所使用的电源的额定功率大都也是在400W到850W为主,使用测试软件让CPU和显卡同时满载所能提供的总功耗有限,无法让电源满载。即便测得的数据是准确的,也只能代表电源在200到400W之间的输出电压表现,无法挖掘电源在临界状态下的表现。
由于原理上的差异,用软件测试电压或者电源参数都不会有很准确的数值。此外,无论是软件也好,万用表也好,同样都存在采样率不够高的问题,只能测量时间大概在1s左右的平均电压。
回到文章开头提到的“用软件测试电源可取吗?”的疑问,如果以衡量电源品质出发,使用测试软件对电源进行测试,测试项目、功率覆盖和测试精度都无法满足,如果只是测量输出电压值,那么一般还是推荐使用数字万用表。
OCCT和AIDA64这类软件更多的是检验超频之后系统是否稳定,而不适合拿来衡量电源的输出质量。
一直以为bios还是比较准确的,没想电压表才是爸爸