赞
踩
在项目需求单里有一项是要求有CPU和内存的功耗传感器,在查阅Intel相关Spec后应该有三种方式
1.利用ME的Node manager来获取两者的功耗,具体查看
Intel® Intelligent Power Node Manager 5.0
Page 81 的Get Node Manager Statistics IPMI command
2.根据CRB的设计,板子上有几个电流监控芯片,可以用来读CPU和Memory的功耗、电流电压
12v的输入,这个PXE1110C支持Pmbus接口,可以按照interface的格式来解析
然而我使用ME来获取功耗发现CPU和内存的功耗值都是错误的,和PTU下跑压力得出的值不一样。
使用第二种方法直接读芯片,发现内存的PIN非常不稳定,PTU下两根dimm平均6watts,但是读芯片返回经过计算只有3watts
上图是使用ADM1293芯片的计算样例,具体计算方法不在本文范围内。
上面两种方法GG后决定还是使用PECI来对功耗计算
3.使用PECI RdpkgConfig命令获取Energy值 计算功耗
查看PECI spec有发现两个RdPkgCfg的命令
index 0x3获取CPU energy ,index 0x4获取DDR energy
根据 W= J * s,我们只需要间隔一秒读一次,然后减去上一次的读数即是功耗
上面的index 0x3还提到了一个
Energy units for this read are determined as per the PACKAGE_POWER_SKU_UNIT settings
他的意思是我们读出来的值,还需要经过PACKAGE_POWER_SKU_UNIT的单位进行一次计算,才是我们的energy值,SKU_UNIT格式如下表
这里spec有错误的地方,好在不影响Energy Unit
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。