如何评价 ARM 的 big.LITTLE 大小核切换技术?

先说结论:大小核挺好,调度是大小核的衍生,用不好会有问题,但它是免费的,不好可以不用。

看了 @北极 的答案,写的挺好,但是缺乏一点数据支撑。而 @winnie Shao 说的也对,只不过拿好几家用Big.Little来说明它好有点牵强。

为什么在网上找不到Big.Little的具体功耗数据呢?因为选用不同的核,用不同的工艺,使用不同的signoff条件,设计不同的电源/电压/频率域,运行不同的大小核切换软件(HMP/EAS),使用不同的功耗模型,跑不同的场景,得到的功耗曲线都是不一样的,没法一概而论。而这些东西,在流片以前是没法给出答案的,就算用了仿真环境,也没法跑复杂的场景,得到准确的答案。

另一方面,如很多人所述,对于安卓手机,大家都做8核,那么你的4核就算调度的再好,你也卖不上8核的价。市场上的安卓手机芯片就那么几个玩家,高通可以自己玩,其他的三星,MTK,海思,展讯,LG,联芯,RDA,中兴,ASR,松果,哪家的市场和管理敢扔开ARM的建议直接自己干?大小核再不好,它在市场和技术上都是经过考验的,谁敢在仿真都没法证明它不好的情况下去掉它直接流片?做产品不是拍脑袋,就算技术上不需要,那市场呢?谁敢保证做出来OEM都同意你的观点?就算OEM都同意,顾客会有什么反应?这难道是一个普通的手机芯片公司能定的事情?除了苹果恐怕没人敢这么说,这个相信大家都明白。

当然,还有一个例外,就是有低端和超低端手机芯片的,比如MTK,展讯,联芯和RDA等,为了面积成本考虑,根本就不会有很多电源/电压/频率域,由于芯片本身就小,用不到8核,功耗也低,不存在降功耗的需求,这时可以只用单一配置。

再补充一句题外话,ARM自己测出来的场景,最多用到6核,大小核是ARM提的,8核也是ARM提的,但10核确实不是ARM提的,并且ARM的调度软件都不支持10核,需要用户自己改。

而要看Big.Little的功耗到底好在哪,我们需要做一堆假设和简化。假设使用A73MP4/A53MP4,在TSMC16FF+节点,分别跑在2.3Ghz和1.5Ghz(具体Signoff条件我就不写了),无极调频。此时软件,模型和场景先省略,单看独自跑的时候需要多少电(基于Dhrystone):

A73@2.3G/0.8V需要500mW动态功耗(220mW/Ghz/core)和110mW的静态功耗(MP4,2MB L2C)

A53@1.5G/0.8V需要100mW动态功耗(63mW/Ghz/core)和7mW的静态功耗(MP4,1MB L2C)

(这两组数据来自ARM)

以上是单个核在全速跑的时候的数据,非常明显,A73需要610mW,而A53只需要107毫瓦,6倍。

而他们的性能呢?A73的SPEC2KINT是835/Ghz,A53是500/Ghz。乘上频率,分别是1920和750.

一个任务运行在A53运行,时间比A73多花2.5倍,能量可以少6倍,能效比是3.1/7.

那如果这个任务在低频 的A73运行呢?假设是1.5G,功率是440mW,性能1252,能效比2.8/7。

不过,降低A73的频率可以使用更低的0.72V,功耗可以再降20%,能效应该是3.4/7.

再假设A53也降频,到500Mhz,和2.3Ghz的A73比,能效就变成了3.1/7.5.

基于以上功耗数据,我们可以很明显看到,A53的能效一直是在A73的2倍以上。不考虑运行时间只考虑能效,所有的任务当然都是给A53比较好 。但同时,由于很多程序都是单线程的,为了用户体验,还是要放到A73上提高速度。在图形处理上,如果使用了OpenGL ES,单核CPU性能更重要,会直接成为GPU性能的瓶颈,到最新的 Vulkan才缓解。这两点放在一起,推动了大小核的产生, 虽然电源设计更困难,调度程序更复杂,IP需要买的更多。此外,如果把以上的功耗条件改掉,比如A53跑到极高的频率(意味着用极高电压和漏电极高的物理库,导致漏电成数倍上升),有可能 会造成小核的能效低于大核,那又是另外的情况了,并不能说明就该取消小核。

@北极 还提到,手机上非跑分情况下的用电大户不是 cpu,而跑分时调度又没有必要。这话没错,但是也不全对。平时的耗电大户是屏幕,玩游戏是 GPU,可是除此之外,所谓的待机功耗大部分都在 CPU和总线的静态功耗。DDR此时大多是关的,基带也是休眠的。如果我拿 一个A73来做待机核,他的漏电是 A53的十五倍。这样的芯片到了 OEM会被骂死。这一点,你就是找神仙也没法帮你优化。再说Vulkan,它使用了CPU多线程,使得以前只能在一个CPU大核跑的GPU驱动可以分散在多核小核。这时候谁用的电更少?调度软件会帮你决定,而单一大核就没有这个能力。

有人说那我功耗控制做的更精细些,然后去掉小核。不是不行,但是这需要额外面积和更复杂的软件,而且上面也说了,做不到小核那样低的漏电。还有,同样的优化也可以用在小核。并且,从A73下一代开始,arm可以把调度的单位做到单个核,而不是之前的一个簇。一个到八个核芯片公司完全可以定义八级大小,也可以独立的改频率,不存在四核八核十核十二核的概念了。

还有,都是大核难道就不需要切换和合并吗?也需要,只不过不一定在两个簇内,可能不需要通过总线。而 A73下一代就把这个改进了。

还有人提到了切换的代价,其实切换只是大小核的附带功能,而这个代价会越来越小。我就不上数据了。

总之,大小核是个好设计,省了功耗,间接省了面积。之前由于做的不够精细,导致多余的核产生,今年出的新设计就会改掉了。

来源:知乎 http://www.zhihu.com

作者:重走此间路

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。

点击下载

此问题还有 16 个回答,查看全部。

延伸阅读:

在移动领域,ARM 在哪些方面领先英特尔?

英伟达 Tegra 处理器的市场接受度为何一代不如一代?

Advertisements

Tags: