mcuzone发布了rk3308的功耗测试。我自己实测了一下,结果基本一致。单核功耗大致是56mA*5v=280mW
ARM发布cortex A35的时候宣称28nm工艺下1GHz功耗是90mW。莫非这300MHz的频率,要多出190mW的功率?在linux下如何把rk3308的频率设置在1GHz恒定?有办法调整cpu核心电压么?
另外, 有rk3308板的网友,可否也帮忙测试下?
离线
你测的是核心板的功耗,3308本身应该没这么大功耗。不得不说rk3308的能耗比还是挺厉害的
增量测试(4核心运行,3核心,2核心,1核心),这样核心板的静态功耗就被去除了;另外测试本身是针对cpu的,ram与flash读写并没有相应的增加。所以测试应该是有效反应cpu核心功耗的
离线
ARM说的功耗应该不包括外设吧。而成品SOC肯定包含很多外设
增量测试可以有效减少外设带来的静态功耗;
测试本身不使用外设,而且几乎不会带来额外的ram与flash读写。测试详情见mcuzone的测试说明
离线
ARM发布cortex A35的时候宣称28nm工艺下1GHz功耗是90mW。 arm公司发布的是理论功耗,各个厂商实际做出来的功耗并不一定能达到这个水平。
这个应该不是理论功耗吧,至少应该是tape out然后测试过。
主要是差的有点大,要是百分之几十倒还觉得可能是测试条件或设计方面引起的差异
离线
arm的这个是纯cpu的功耗,rk3308除了cpu本身还有各种外设,这些外设即使不使用也会有损耗的。所以你的功耗参考标准不应该是arm,而应该是rk3308的手册或是datasheet中描述的功耗为标准。
你指的外设是什么?
前面的帖子我提了下,主要有两点,一是增量测试,即测量静态功耗(cpu空闲),单核满载,双核满载,3核满载,4核满载,作差来计算单核功耗;二是测试的命令中,几乎不包含ram和flash的读写
这样外设的影响可以认为很小
离线
猜一下可能的原因。
首先还是有可能会出现与每个核相关的功耗,比如LDO(用于控制单核电压)之类的,这个还是要看架构。
其次,90mW可能是最低配置下的结果。像Cortex-A系列的应用处理器,至少cache容量是可调的,这也会显著影响功耗。
最后,频率和功耗肯定是有关的。我们知道在活动时动态功耗通常是占主要地位,而对于单个寄存器来说P=αCV^2f,其中C是电容,V是电压,f是时钟频率,α是翻转概率。虽然P和f是线性关系,但是在频率提升时通常也要适当提升电压,因此功耗上升的速度要快于频率的上升速度。
其实可以看一下桌面级CPU的功耗曲线,每提升一定频率消耗的功耗会越来越多,这个是必然的。
顺便贴一下可能的信息来源:New ARM Cortex-A35 Processor Extends the ARMv8-A Architecture Deeper Into Mobile and Embedded Markets
这个有所了解。
有办法手动设置电压和设定频率么
离线
你能确定增量一定是线性的吗?
真的还挺线性的,每增减一个核,电流的变化几乎都是相同的
离线
翻了一下RK3308的TRM(在Firefly上有),似乎有一部分是可以设置的。不过我没用过RK3308,不清楚具体怎么做。
另外补充一点,可能也和运行的任务有关,毕竟不同任务下CPU各个组件的运行状态有所差异,功耗也不一样。ARM官方的说法是a range of 32-bit mobile workloads,而这个测试帖用的是dd if=/dev/zero of=/dev/null,应该还是不一样的。
非常感谢!你指出的测试方法可能很重要,毕竟这决定了cpu是否满载,以及内部器件的开关频率。ARM的测试方法中并没有指出是cpu满载功耗。
DVFS可能要在固件编译时设置,晚点研究下。
非常感谢你的热心指点
离线
那可能功耗就是那么大,如果功耗不满足要求,只能换更低功耗的cpu了。据我了解能运行linux的低功耗cpu,运行功耗都挺大的(大概都在40~50ma即使频率降到最低),睡眠功耗倒是有很低的,比如君正的x1000,m200s,atmel和飞思卡尔也有睡眠能在ua级别的。
也可能是标的指标太好,让人期望太高了。毕竟ARM在宣传的时候号称是低功耗
非常感谢你的热心指点
离线