» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

问什么采用big.LITTLE的晓龙CPU耗电感人。

这里我和大家讨论一下问什么当今流行的晓龙CPU为何耗电感人。文章本着客观详实的态度,希望可以避免安卓爱好者的无脑言论。
大家知道,安卓的APP与硬件之间隔着这么几层,APP-> Android -> Java 虚拟机 -> Linux -> 具体硬件。当我们讨论耗电时,如论如何也绕不开Linux和具体硬件。
Linux中任务调度模块直接与CPU打交道。Linux至诞生以来,任务调度的首要目标就是提高CPU的吞吐量以及加快任务的响应速度。但是随着移动应用铺天盖地的的发展,如何在任务调度的同时耗用最少的电源一下子成为了Linux任务调度器所追寻的目标。那么如何更省电呢?
首先CPU处于休眠状态下最省电,换句话说,完成一件任务CPU休眠越多越省电。很自然的大家就会想到,在多CPU的情况下,把尽可能多的任务集中到尽可能少的CPU上完成则最省电。这种设想是对的,但是当今的硬件设计却不是这样。假如说有8核,并不是每个核心都可以单独的进入休眠状态,因为这些核心是“相关联”的。假如4个核心相关联,只要有任何一个核心无法进入休眠状态那么其他的也无法进入休眠状态,这是因为它们共享着cache等等。大量的实践表明,在当今的硬件设计上,尽可能的把任务平均的分配到每一个CPU上,以并期望任务尽可能快的完成,这才是最省电的方法。但是有一点,如果这个任务执行的时间非常短,那么把它挪到某个CPU上运行所耗费的电量可能会比不挪它还要多。
所以现在Linux的任务调度机制大概可以这么描述--把任务尽可能的平均分配到每个CPU上,并且把那些非常短小的任务一开始就分配到固定的CPU上。比如有CPU 1-8,其中1-2,3-4,5-6,7-8是“相关联”的CPU。那么任务调度程序会把非常短小的任务尽量集中在CPU 1-2 上,然后尽量把其他任务平均分配在 3-8 上。
我说这么多到底有什么意义呢,这与big.LITTLE到底有什么关系呢?问题的关键是我上面的描述一切都是建立在处理器是SMP的基础上,SMP的意思就是说每一个CPU对称的,换句话说就是性能是一样的。而big.LITTLE不是SMP结构。现在ARM的big.LITTLE架构非常奇怪,它要么4个低功耗低性能的CPU运行,要么4个高功耗高性能的CPU运行。Linux现有的机制无法适应这个结构。对Linux任务调度机制的修改通常会涉及到非常多的问题,所以进展意向都非常缓慢。采用big.LITTLE设计的CPU想实现其耗电与性能均达到优秀的初衷还有相当一段路要走。


本帖最近评分记录
  • allensakura 激骚 -6 IDC 2015-4-3 11:56
  • gogoler 激骚 +1 最骚 Rated by wap 2015-4-2 17:23

TOP

引用:
原帖由 蓝翔技校 于 2015-4-2 16:56 发表
不对啊,MTK也有MT6595是A17+A7的也可以8核同开,也耗电感人?

那615呢?8个全是A53理论上没问题了吧?耗电怎么同样感人?
如果8个全是A53,那么不会有现在的问题。但问题是8个全是A53的话,那么它本身也没打算省电了。。。



TOP

引用:
原帖由 aszx21 于 2015-4-2 17:02 发表

A53 A57搞清楚了吗
A53还是A57,在我和他的对答中有啥区别?


TOP

posted by wap, platform: iPhone
引用:
原帖由 @allensakura  于 2015-4-3 11:45 发表
三棒實現八核全開、單核上線都一年多了,虛擬內存大神能不能更新點資訊?
你是傻逼吗,标题看不懂?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @大象吃大西瓜  于 2015-4-3 18:53 发表
连骁龙几个字都写不好就不要出来丢人了,回去被人插菊花照样能高潮,和必一天到晚在论坛一个人高潮呢。
文中还有那么多错别字你不一一例举啦?哈哈,傻逼就是傻逼,尽搞些脑残玩意。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @卖哥  于 2015-4-3 19:18 发表
http://www.gsmdome.com/wpcontent/uploads/2015/03/Screenshot409.jpg
开始我还以为虚拟大神有810不支持HMP的消息呢
结果不是这样呀,810明明可以八核同时运行。
我什么时候谈过此事?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @卖哥  于 2015-4-3 20:37 发表
大概是这段。
这与810有什么关系?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @卖哥  于 2015-4-3 22:21 发表
哦,那么是哪款骁龙?还是说真的有晓龙这个品牌。
我在说big.LITTLE的问题,你举个其他例子想说明啥?

TOP

刚特意查了一下,810依然是big.LITTLE的结构。
https://www.qualcomm.com/products/snapdragon/processors/810
但是8个核心可以同时工作。
但它依旧是非对称结构,Linux依然不支持对这种结构作电源优化。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @cfqxd  于 2015-4-3 23:54 发表
Linus本人对ARM不感冒,都是各家公司出力让linaro来搞,同时自家的SoC还要自己来优化。曾经在华为时就有看到内部有个大牛带着一票人给920的调度做优化。其实810失败主要是TSMC的20nm工艺根本压不住A57,TSMC对20nm又不上心,这就是个缩小线宽的半代工艺,自然被14nm的7420吊打。另外华为好像下一代U是A53的鸡血版和A53自己组大小核吧,A57实在是太挫。我认为苹果走的大核心路子才是比较对的,性能容易发挥,功耗也容易控制
苹果软硬件搞了这么多年,应该深知软硬件相互配合的重要性。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @卖哥  于 2015-4-4 00:38 发表
所以你说的是骁龙对吧,可以全开对吧,那么能把“要么四小核,要么四大核”的发言收回么?

然后……biglittle属于SMP。
ASMP的特征是各有各的特殊用途,比如wiki用了这么一张图
http://upload.wikimedia.org/wikipedia/en/0/0b/Asmp_2.gif
显然,这两个处理器都可以访问内存,但只有其中一个能够访问硬盘,换句话说,只有一个处理器可以访问到虚拟内存。
这种模式就是ASMP。
biglittle虽然有两种核心,但是他们都是全功能的,任何一个核心都允许独立支撑整个系统的运行,所以属于SMP。

至于说linux能否优化。我要说,作为从工控、到移动平台、到超级计算机,各种奇葩环境都过来的linux,没有它不能优化的系统。我可以举一个例子,近代ASMP的处理器的代表Cell,就是运行linux的。
再往回退,分时多任务下各线程以时间片管理,一个无法拆分的单线程任务,从开始到注销,可能所有8个核心都去过一遍,由于强核心单位时间内处理的任务更多,所以这个任务有更多的时间片自然会是在强核心中执行的。这是一种自然的分配模式,如果系统要想让更多的任务在强核执行,不需要特别指定这个程序在强核执行,只需要让强核保持在高频率即可。
我为什么要收回?我在讨论为什么Linux无法对某种结构进行电源优化,你扯一个根本就不是我说的结构的东西。你想说明啥?完全就是莫名其妙。
还bigLITTLE属于SMP,笑死人,谁告诉你能同时访问内存就是SMP?你发明的定义?照你这么说Cell还是SMP呢。
你说Linux能优化,但你举的例子都是说的性能优化,可这里是讨论Power-aware scheduling, OK?
要是你认定Linux mainline已经支持对ASMP的power-aware scheduling你能告诉我是哪个版本吗?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @卖哥  于 2015-4-4 23:19 发表
目前要你收回的只是“它要么4个低功耗低性能的CPU运行,要么4个高功耗高性能的CPU运行。”这句话。
你是还觉得晓龙属于“它要么4个低功耗低性能的CPU运行,要么4个高功耗高性能的CPU运行。”,还是你觉得或者你全部论据全指望在这句上面了?

然后能访问全部内存当然不是SMP,SMP需要权限一致,正是因为可以做到只有低功耗低性能运行,恰恰证明biglittle完全是SMP,它每一个核心都拥有全部权限。
顺便一提,Cell的SPE不能访问内存,SPE要处理内存数据需要由PPU通过DMA将指定内存地址的数据复制到SPE那256KB的SRAM空间内。

下面说分时多任务在电源管理上的自优化,那就是只要降低一个核心的频率,这个核心执行的时间片就会更少,而关闭核心,这个核心就不会执行时间片。所以只要构建一个有限状态机,处理器温度,处理器的负载,各任务的处理器占用率,还有时间作为状态改变条件,而处理器各核心频率和是否关闭构成有限状态机的状态就可以实现电源管理。
至于说linux能不能这么来的证据,找一台安卓来,下载perfmon,打开perfmon,选择CPU,再随便干点不同的事情看看是不是处理器的开启和频率是不是随着负载和温度在变化。
如果真的找不到安卓设备,或者触碰安卓设备违反教条要处以石刑什么的,我前面也给了自己的截图。
http://club.tgfcer.com/attachments/day_150403/20150403_22944d93611399ac8dbeUsuGgUOmAsiA.jpg
这张图perfmon显示三个A7位于开启状态,其中两个使用最高频率1690mhz,一个使用494mhz。这就是一个有限状态,我可以告诉你前1s大概是三个核心都1690,后1s大概是第三个关闭,前两个继续1690,再后1s是第三个继续关闭,前两个变为1144。
我那句话可以导出所有的big.LITTLE结构都不支持芯片同时运行?
有你说的这么简单怎么mainline迄今为止都不支持?

TOP

发新话题
     
官方公众号及微博