有关big.LITTLE,你需要知道的十件事情

.png)
在当前的智能手机和平板电脑中,人们使用动态电压和频率调节 (DVFS) 来适应所需性能的即时变化。big.LITTLE 迁移模式延伸了这一概念,当 LITTLE 核心超过最高 DVFS 运行点时,它会将任务迁移到“big”CPU 核心。这种迁移需要大约 30微秒。相反,DVFS 驱动程序通常每 50 毫秒对操作系统和各个核心的性能进行一次评估,有些实施的采样稍微更加频繁。它需要大约 100 微秒来改变电压和频率。由于迁移 CPU 或集群所需的时间短于 DVFS 更改时间,甚至比 DVFS 更改需要的操作系统评估时间短一个数量级,因此 big.LITTLE 迁移让处理器能够在更低的运行点运行,运行频率更高,而且让用户丝毫察觉不到。
在全局任务调度模型中,DVFS 机制仍然在工作,但操作系统内核调度程序可以识别系统中的 big 和 LITTLE 核心,并设法将高性能线程分配给高性能核心,而将低性能或内存限制的线程分配给高能效核心,从而达到负载平衡。这类似于当前的SMP 负载平衡器,它可在系统中的可用核心之间自动平衡线程,让未使用的核心保持空闲状态。在 big.LITTLE 全局任务调度中,同样的机制仍然在工作,但操作系统会跟踪每个线程的加载历史记录,并且使用这些历史记录,结合实时性能采样,在 big 核心和 LITTLE 核心之间适当平衡线程。
问题 3:在未对 Android 进行任何更改的情况下,它可以在 Android 系统上运行吗?
- big.LITTLE 软件是以 Linux 内核的补丁集形式提供的。在 Android 系统下,它在内核中有效运行。全局任务调度软件(ARM 的“全局任务调试”实施在开源树中称为 big.LITTLE MP)托管在 Linaro git 树上,可供所有用户自由访问,正处在上游提交过程中。该补丁集可以应用于 Android 系统下运行的标准 Linux 内核。ARM 已经在多个开发板上演示了全局任务调度,还与主要合作伙伴在量产芯片上进行了演示,包括在私人活动以及全球移动大会和国际消费电子展上。big.LITTLE 的第一次量产实施使用了集群迁移和 CPU 迁移模式,因为这些系统的软件冻结日期是在 2012 年。全局任务调度预期在 2013 下半年开始在量产系统上应用。
问题 4:big.LITTLE 如何实现更高的性能?
由于存在高效率的 Cortex®-A7 核心,SoC 设计人员可以调节 Cortex-A15 处理器,使其专门用于处理高性能工作负载,同时确信平均功耗可保持在现有移动电源范围内。这使我们能够满负荷地使用较高吞吐量的 Cortex-A15 CPU 来处理突发的高性能,抑制电压和频率,随后再将工作迁移至 LITTLE 核心,以便实现持续的后台性能。
问题 5:big.LITTLE 如何实现更出色的节能,而不仅是降低电压?
只有 big.LITTLE 具有调节微架构的优势,其效率比高性能 CPU 高出三倍以上。
- LITTLE 核心是采用与核心完全不同的微架构构建的,由于本身具备设计简易的特性,LITTLE 核心可以节省功耗,另外还具有电压和频率调整的优势。
- 可以实施核心,以降低耗散功率和提供更适当的性能点,独立于通常调节为高频率运行的核心物理实施。
最终,这意味着 big.LITTLE 提供更好的节能机会,优于单个 CPU 微架构实施。CPU 集群内部的异步 DVFS 具有一些强大优势。我们将异步 DVFS 视为可扩展性能概念的体现,它本身也是一种很好的解决方案。但是,big.LITTLE 技术相比异步 DVFS 具有一定优势。这些技术的并行开发展示了 ARM 生态系统的强大能量 – 它们为了提高在市场上的采用率而展开竞争,与单种架构和实施一统市场相比,这种竞争可以促进每种方法以更快的步伐发展。
问题 6:big.LITTLE 可以在系统级别上提供显著节能吗?
在系统级别上,它可以节省 CPU 子系统的 50% 以上功耗,这是非常可观的节省。与 DVFS、电源门控、时钟门控和保持模式相结合,big.LITTLE 在移动设备的整体电源管理中扮演着重要角色,随着软件电源管理策略的演进,它还将为未来的节能带来机会,可以通过协调的策略,更加密切地协作管理关闭、核心迁移、电压和频率。总之,目前的节能效果非常好,未来还会更好。
问题 7:在执行高性能任务方面,big.LITTLE 也能够节省功耗吗?
高性能应用程序也有低强度的时段,例如在等待用户输入时或 GPU 处于活动状态时。在这些时段内,现有的智能手机 SoC 会调低至较低的 DVFS 点和/或让核心空闲。从下图中,我们可以看出,在运行高清赛车游戏时,DVFS 机制让双核Cortex-A9 CPU 在将近一半时间处于空闲状态,同时在 90% 以上时间在低于 1GHz 的频率下工作。所有这些空闲时段和低频率状态非常适合转移到 LITTLE 核心,即便对于GT Racer 高清游戏这样的高性能工作负载,它也提供了节省能耗的机会。
高性能工作负载也有低强度时段,我们还可以举出很多其他例子。在一个页面呈现之后的网络浏览,在存储器上处于等待状态的高性能任务,等等。由于从 big 核心迁移至 LITTLE 核心的速度极快,即便很短的低强度时段,也可将工作负载转移至 LITTLE CPU,从而节省能耗。
问题 8:为了支持 big.LITTLE,需要更改多少用户级代码?
不需要。使用 big 核心还是 LITTLE 核心由操作系统决定。big.LITTLE 是一种电源管理技术,对于用户级软件是完全不可见的,与动态电压和频率调节 (DVFS) 或多核 SoC 中的 CPU 关闭非常相似。
如果使用 big.LITTLE 的动因是用户空间,则又会有可以利用的机会。用户空间可以知道某个线程对于用户体验是否重要,并允许用户界面线程使用 big CPU,同时阻止后台的线程/应用程序使用 big CPU 等等。其他示例包括在屏幕关闭时阻止使用 big 核心,或者在您知道只能使用 LITTLE 核心进行计算的情况下(例如在通话过程中)锁定线程。用户空间可以提供更多特性,但这些技术都不是必需的,big.LITTLE 也不要求具有用户空间意识以节省能源和提供高性能。
问题 9:big 核心和 LITTLE 核心的数量可以不同吗?
有了全局任务调度,软件可以自动支持不同数量的 big 核心和 LITTLE 核心。这对系统没有任何额外要求,软件可在不同数量和类型的核心之间自动平衡负载。我们预期,随着 big.LITTLE 全局任务调度技术在 2013 下半年开始进行更广泛部署,具有不同数量的 big 核心和 LITTLE 核心的这种非对称系统拓扑将得到更普遍的使用。
问题 10:我听说这种技术很难使用... 它有多复杂?
软件实际上非常简单。无需在用户级别或中间件级别上进行任何代码更改。big.LITTLE 软件完全在内核空间中,以相对较小的补丁集形式提供,并由芯片供应商在电路板和芯片支持库中应用。芯片供应商和 OEM 进行了一些调整,类似于在当前标准多核系统中对 DVFS 运行点和核心关闭策略的调整方式。该补丁位于内核中,因此对于用户是透明的 – 供应商生产芯片并进行调整之后,它就可以工作。
有关big.LITTLE,你需要知道的十件事情的更多相关文章
- 转载:关于 Token,你应该知道的十件事
关于 Token,你应该知道的十件事 原文地址:http://alvinzhu.me/blog/2014/08/26/10-things-you-should-know-about-tokens/ 原 ...
- 开始3D编程前需注意的十件事
http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...
- 拿到offer过后--大学最后时光最想做的那十件事
昨天--2014.10.26,历史性的一刻,激动的签了欢聚时代(YY)的前端开发offer,工作地点是我喜欢的珠海(仅仅由于那边有我所向往的海还有自行车队,如今想想都乐开怀了,绕着海边骑单车的感觉真妙 ...
- IT技术开发人员35岁之前应该做的十件事
第一,学会本行业所需要的一切知识并有所发展.已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司.每个人在年轻时都可能有过彻夜不眠.刻苦攻读,这在20 ...
- 关于Git和Github你不知道的十件事
Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...
- 关于iOS7 设计师需要了解的十件事
在今年的WWDC上,苹果推出了采用全新设计语言打造的iOS7.新系统弃用了诸如皮革.木质一类的伪3D拟真效果,取而代之的是更加简洁轻量的设计路线,其中文字排版成了重头戏,另外在某些方面也受到了扁平化设 ...
- 十件你需要知道的事,关于openstack-trove(翻译)
开源数据库即服务OpenStack Trove应该知道的10件事情 作者:Ken Rugg,Tesora首席执行官 Ken Rugg是Tesora的创始人,CEO和董事会成员. Ken的大部分职业都是 ...
- HTML5须知十件事
英文原文:10 things you should know about HTML5 一两年前,HTML5似乎还是一个模糊的概念,只有少数几个互联网的书呆子才会关心.而现在,却感觉仿佛HTML5无所不 ...
- java程序员最不愿意看到的十件事
0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...
随机推荐
- Js 设置class,兼容ie,火狐的方式
var trs = document.getElementsByTagName("tr"); trs[0].className="color2"; //设置c ...
- 56. Edit Distance && Simplify Path
Edit Distance Given two words word1 and word2, find the minimum number of steps required to convert ...
- 关掉apache2服务器日志文件
磁盘空间突然满了,才发现是这个东西占空间.11个G的空间 修改:/etc/apache2/size-available/default <VirtualHost *:80>ServerNa ...
- springMVC下载FTP上的文件
springMVC下载FTP上的文件 今天没时间写.先上传 一个工具类 工具类 package com.utils; import java.io.File; import java.io.FileO ...
- 教你用Ossim平台检测网络的Shellcode攻击
教你用Ossim平台检测网络的Shellcode攻击行为 教程: http://www.tudou.com/programs/view/-hxTm0q1tDY/ 以下是视频截图: 更多视频内容: 本文 ...
- python函数,lambda表达式,三目运算,列表解析,递归
一.自定义函数 定义函数时,函数体不执行:只有在调用函数时,函数体才执行.函数的结构: 1. def 2. 函数名 3. 函数体 def func_name(): 函数体 4. 返回值 如果没有声明返 ...
- windows无提示关闭页面
今天碰到个问题,需要自动关闭网页,网上找了方法,一直在火狐测试,一直没反应,还以为写错了,后来发现用火狐需要进行设置(后文有提供方法),IE可正常使用... 下面提供部分代码: 需要自动关闭网页,可以 ...
- C++中关于string类型究竟能不能用cout输出的问题
先让我讲下故事哈 一次在MFC中用cout输出一个string类型字符串,编译时出现这样一个错误: error C2679: binary '<<' : no operator defin ...
- set QUOTED_IDENTIFIER ON事故记录
作业执行失败: 看了一下执行脚本 delete top(8000) from "interface"."完成" where loggid in( selec ...
- ZOJ3778--一道水题
Description As we all know, Coach Gao is a talented chef, because he is able to cook M dishes in the ...