有关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都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...
随机推荐
- V$RMAN_BACKUP_JOB_DETAILS
V$RMAN_BACKUP_JOB_DETAILS展示了rman备份的相关细节.比如,rman备份持续时间.rman备份的执行次数.每一次rman备份工作的状态(failed or completed ...
- DataTable排序(转)
DataTable 排序 DataRow[] rows = dataTable1.Select("", "ord asc"); DataTable t ...
- 制作HP MicroServer Gen8可用的ESXi 5.x SD/TF卡启动盘
前些日子看到HP公司和京东在搞服务器促销活动,于是就入了一个 ProLiant MicroServer Gen8 的低配版 相比上一代产品,新一代 MicroServer系列微型服务器可更换处理器,还 ...
- 树莓派3 Windows 10 IoT Core
下载地址:https://developer.microsoft.com/zh-cn/windows/iot/Downloads 先下载安装 Windows 10 IoT 核心版仪表板: 安装完成后运 ...
- INI 文件的读写操作
在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...
- mac 使用技巧 (实时更新)
一.部分快捷键. 这个在网上有一大堆,不过笔者认为,还是应该看个人习惯和使用环境吧.如果用得顺手,那就是快捷键,如果用得不顺手,那应该称其为“辅助键”吧. 下面介绍几个常用的快捷键: 1.截图. 屏幕 ...
- 洛谷P3366 【模板】最小生成树
P3366 [模板]最小生成树 319通过 791提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 里面没有要输出orz的测试点 如果你用Prim写了半天都是W- 题目 ...
- COOKIE&&SESSION
---------------------------------------------------------------------------COOKIE------------------- ...
- 初学matlab----函数用法(随学习更新中)
sort(A) 若A是向量不管是列还是行向量,默认都是对A进行升序排列. sort(A)是默认的升序,而sort(A,'descend')是降序排序. sort(A)若A是矩阵,默认对A的各列进行升序 ...
- Fiddler抓包测试App接口
Fiddler抓包测试App接口 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理. 抓包过 ...