问题 1:该技术能够同时打开所有核心吗?
 
在早期的 big.LITTLE 软件模型中(集群迁移和 CPU 迁移),软件在核心之间切换,不能同时打开所有核心。在更新的软件模型“全局任务调度”中,软件可以让所有核心同时处于活动状态,因为操作系统能够识别系统中的 big 和 LITTLE 核心,而且直接控制可用核心之间的线程分配。使用全局任务调度,操作系统电源管理机制会继续让未使用的核心保持空闲状态,这与当前标准多核系统中的做法相同。
 
                                                                                                                                           一个架构 "" 三种主要软件使用模型                                                                                                         
 
 

 
 
问题 2:软件是否类似于 DVFS 和 SMP 调度等现有机制?(负载均衡,在大小核之间进行任务切换)

在当前的智能手机和平板电脑中,人们使用动态电压和频率调节 (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 系统上运行吗?

  1. 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 核心,以便实现持续的后台性能。

 
此外,在全局任务调度软件模型下,当 Cortex-A15 CPU 负载已满时,操作系统可将额外工作分配给 Cortex-A7 CPU。当前,这种技术在 Antutu、Geekbench、NdeBench 基准测试中和其他多核工作负载中最有优势,但是,随着软件日臻成熟,更加充分地利用其他核心,big.LITTLE 系统中的其他核心的存在将能实现更高整体功能。

最后,我们还发现,当前的很多重要工作负载(例如网络浏览)会产生一个或两个具有苛刻性能要求的线程(Android 中的 WebViewCoreThread 和 SurfaceFlinger)。big.LITTLE 非常适合处理这种类型的工作负载 – 高性能线程可以各自分配给高性能的 Cortex-A15 CPU,而后台线程可以调度给一个或多个 LITTLE CPU。通过将低性能线程分配给 LITTLE CPU,我们可将高性能核心的整个容量专门用于处理性能要求最苛刻的线程,从而实现更高的整体性能。

 

 

问题 5:big.LITTLE 如何实现更出色的节能,而不仅是降低电压?

 
最新一代 big.LITTLE SoC 中的 Cortex-A15 集群和 Cortex-A7 集群可在独立频率下运行。其他技术倾向于使用相同的核心,通过异步电压调整来降低能耗。使用 big.LITTLE 技术,big 核心和 LITTLE 核心可将强度较小的工作迁移到能效高出3倍的更简单流水线,从而调整电压和进一步降低能耗。在 LITTLE CPU 核心的整个性能范围内,它们可以实现远优于仅使用电压调整的节能效果。

只有 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 的所有优势(高速全局任务切换、最佳效率、更高的性能),因为 ARM 和 ARM 合作伙伴在完成所有集成工作时就考虑到了这个问题。ARM 提供了 big.LITTLE 的一个示例硬件实施,使用 Versatile Express V2P-CA15_A7 CoreTile,非常适合作为评估的起点。
 
 
 

有关big.LITTLE,你需要知道的十件事情的更多相关文章

  1. 转载:关于 Token,你应该知道的十件事

    关于 Token,你应该知道的十件事 原文地址:http://alvinzhu.me/blog/2014/08/26/10-things-you-should-know-about-tokens/ 原 ...

  2. 开始3D编程前需注意的十件事

    http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...

  3. 拿到offer过后--大学最后时光最想做的那十件事

    昨天--2014.10.26,历史性的一刻,激动的签了欢聚时代(YY)的前端开发offer,工作地点是我喜欢的珠海(仅仅由于那边有我所向往的海还有自行车队,如今想想都乐开怀了,绕着海边骑单车的感觉真妙 ...

  4. IT技术开发人员35岁之前应该做的十件事

    第一,学会本行业所需要的一切知识并有所发展.已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司.每个人在年轻时都可能有过彻夜不眠.刻苦攻读,这在20 ...

  5. 关于Git和Github你不知道的十件事

    Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...

  6. 关于iOS7 设计师需要了解的十件事

    在今年的WWDC上,苹果推出了采用全新设计语言打造的iOS7.新系统弃用了诸如皮革.木质一类的伪3D拟真效果,取而代之的是更加简洁轻量的设计路线,其中文字排版成了重头戏,另外在某些方面也受到了扁平化设 ...

  7. 十件你需要知道的事,关于openstack-trove(翻译)

    开源数据库即服务OpenStack Trove应该知道的10件事情 作者:Ken Rugg,Tesora首席执行官 Ken Rugg是Tesora的创始人,CEO和董事会成员. Ken的大部分职业都是 ...

  8. HTML5须知十件事

    英文原文:10 things you should know about HTML5 一两年前,HTML5似乎还是一个模糊的概念,只有少数几个互联网的书呆子才会关心.而现在,却感觉仿佛HTML5无所不 ...

  9. java程序员最不愿意看到的十件事

     0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...

随机推荐

  1. cocos2dx loading界面 预加载资源 与 资源释放

    预加载图片: 1.CCTextureCache::sharedTextureCache()->addImage("icon.png"); 2.CCTextureCache:: ...

  2. POJ1061 青蛙的约会-拓展欧几里得

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...

  3. 前端开发框架Bootstrap和KnockoutJS

    江湖中那场异常惨烈的厮杀,如今都快被人遗忘了.当年,所有的武林同道为了同一个敌人都拼尽了全力,为数不多的幸存者心灰意冷,隐姓埋名,远赴他乡,他们将唯一的希望寄托给时间.少年子弟江湖老,红颜少女的鬓边也 ...

  4. 【转】git push 出现401 错误

    错误信息:error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.n ...

  5. x265编译

    x265 HEVC Encoder Mission Statement Online documentation Mailing list x265-devel@videolan.org HOWTO  ...

  6. [2015hdu多校联赛补题]hdu5324 Boring Class

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324 题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小) ...

  7. jquery :checked(过滤选择器) 和 空格:checked(后代选择器)

    jquery 过滤选择器 和 后代选择器 <%@ page language="java" contentType="text/html; charset=UTF- ...

  8. JSP如何保存页面上众多的复选状态

    一.描述: 最近写的一个问题管理模块,录入问题时需要选择客户(也就是那些客户存在这些问题),当保存完问题后,再次编辑问题时,如何从数据库里读取上次选中的客户并展示位勾选状态呢?问题表cust_ques ...

  9. detection reading

    1512.07729v1 G-CNN an Iterative Grid Based Object Detector,先基于空间金字塔生成很多矩形框,然后把这些矩形框作为regions,进行fast ...

  10. 小甲鱼python视频第九讲(课后习题)

    1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...