MobiCore:一种适用于Android设备的高效CPU管理的自适应混合方法外文翻译资料

 2022-04-10 22:28:50

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


MobiCore:一种适用于Android设备的高效CPU管理的自适应混合方法

1 、Lucie Broyde 1、KentNixon 2、陈翔 3、Hai(helen)Li 3、陈毅然

1匹兹堡大学 宾夕法尼亚州 美国

2 乔治梅森大学 华盛顿哥伦比亚特区 美国

3 杜克大学 达勒姆 北卡罗纳州 美国

概括:

由于各种各样的app,智能手机正在成为我们日常生活中必须的设备。为了满足不断增长的的性能需求,一部手机中cpu核心的数量也在增加,这对手机的电量消耗有很大的影响。本文介绍了一系列分析,以了解当前的Android资源管理策略如何调整CPU功能。我们的研究结果显示,现代Android智能手机的CPU能效显着提升,然后,我们提出MobiCore - 一种高效的CPU管理方案,可以优化使用动态和频率电压缩放(DVFS)和动态核心扩展(DCS)技术,对CPU带宽进行精确控制。实际的测量结果证明,相比最先进的架构,MobiCore可以大大降低CPU功耗。

引言:

移动设备对计算性能的需求每年都在上升,它也成为移动应用程序充分利用现有嵌入式硬件资源潜力的关键。多核架构的进化帮助达到这些要求,但当多核同时激活时也导致了严重的能耗问题时。另一方面来说,由于一些实际问题约束,用更多的核心不一定能带来更好的性能或者用户体验,因此,需要调节核心数来降低手机的能耗。

对于手机来说,安卓是一个主流的平台。安卓的系统是基于linux之上的,在linux架构中有两种机制去减少能耗:动态和频率电压缩放(DVFS)和动态核心扩展(DCS)技术。前者是用来减少/增加cpu核心的管理频率,后者是用来启动/关闭cpu核心。这两种技术分别为cpu的调频管理器和热插拔处理机制所实现,它们一起工作并且通常表现良好。然而,这两个技术在实际实现中会产生不协调,因为它们在Linux体系结构中有2种不同的接口。如果可以同时使用它们,让它们相互补充,系统的功率效率存在相当大的改善

在这项工作中,我们首先全面的分析CPU核心数量和核心的工作频率对安卓的性能表现和功耗的影响。根据分析,基于DVFS和DCS的优点,我们提出了mobicore–混合自适应方法在Android设备的CPU电源管理相结合,根据要处理的工作量的数量,我们优化的解决方案将确定要采用的CPU内核的状态(即激活和频率)。为了获得一种响应更高的突发/非突发模式的算法,我们分析了工作负载的变化,以确定下一步的计算需求,并使用一个比例因子来减少或扩展CPU带宽。因此,我们的方法可以在节电和性能之间达到很好的平衡 。我们在这项工作的主要贡献可总结了如下:

bull;我们对真正的Android MO设备进行了定量研究,讨论了在应用程序工作负载变化时,改变核心数目和它们的频率之间的权衡。

bull;基于以上的分析,我们提出可以同时优化mobicore主动CPU内核的数量和每个核心的工作频率,以及分配的CPU带宽控制的方法。

bull;我们在Nexus 5智能手机实现mobicore,并且通过不同的计算性能需求评价其有效性。

我们的实验表明,同时优化CPU内核的数量化和工作频率,并在分配CPU带宽提供了高达11.7%的CPU功率以降低对Android设备的敏感控制。

本文的其余部分安排如下:第2节提供了一些,关于智能手机的功耗的初步知识;第3部分提出Android设备的功率和性能分析;4节介绍了mobicore方案;第5节显示了我们的实验结果和相关讨论;6部分给出了相关的工作;第7总结我们的研究。

2.初步

2.1智能手机的CPU的功耗

计算性能需求的快速增长促使智能手机制造商将越来越多的CPU集成到移动设备上。然而,这样的做法也导致了高功耗问题。为了验证这一现象,我们进行了实验并加强(意味着CPU的功能,如CPU利用率、频率被调整),如图1所示的CPU核心。同一计算需求下不同手机平均功耗的变化。

图1

图2

图2:实验测量了在2010到2014年间发布的的多个手机的cpu应用程序(关于该应用程序的更多细节将在第三节中给出)

测试手机,即三星Nexus S,摩托罗拉mb810,三星Galaxy S II,LG Nexus 4、Nexus 5、LG G3,使用不同的CPU核心的数量,如图1所示。从图中可以看出,手机的总功耗与CPU核心数几乎成线性关系。在CPU数量相同的手机中,新手机的总功耗也比旧手机略高一些,这显示了单核计算能力的增长。为了了解计算能力对智能手机的总功耗有多大的影响,图2(a)描述了由红外线传感器(1)拍摄的两台安卓手机的红外图像。左边的是一个只有一个CPU核心的三星Nexus S,而右边的是一个有四个相同CPU核心的Nexus 5。所有的手机都使用相同的内核应用程序运行在最高的计算状态。在这两款手机,我们可以很容易地找出CPU核心的温度水平明显比别人高(图上清晰的):Nexus 5的CPU面积达42.1°C而一个Nexus S达到26.9°C,这意味着在Nexus 5上的多核架构比Nexus S的单核心架构更耗电。注意,Nexus s和Nexus 5的总平均功耗分别为2403.82兆瓦和980.6兆瓦。

2.2智能手机CPU的利用

CPU利用率(或CPU工作负载)被定义为计算任务所需的CPU周期百分比。对于多核心的情况下,总的CPU利用率的定义是所有的CPU内核利用的平均值。两个基于Linux的架构–DVFS和DCS的默认的电源管理策略在Android中,使用所有的CPU的利用率作为其管理方案的一个重要指标。基本原则是公平分配可用的CPU资源,平衡核心之间的工作量,以实现理想的多任务。在Android系统默认的调节器是按需分配的

图3:在100%的CPU利用率下,不同频率的有源磁芯的平均功耗超过这个频率。

这种方法确保在CPU核心空闲时,提供所需的CPU性能和节省功耗。然而,这个策略很久以前就被引入,最初是为单核心移动架构而设计的。获得多核体系结构限制,默认的运行策略,即mpdecision,会按照工作量的大小来启用或禁用cpu。这种方法可以有效地从运行过程中达到性能要求,但最终不会优先考虑节电方案。此外,不存在一个系统的引导甚至一个机制同时应用这两项政策来达到节能和充分的性能。我们的工作是尝试在实际应用中缩小Android系统开发的明显差距。

3、功率与性能分析

先前的工作已经表明,手机的功耗和性能受到CPU核心、核心频率和工作负载的影响。为了理解这些特性如何在智能手机使用中发挥作用,我们在这一节中对它们进行了评估和调整。

3、1实验台设置

我们的实验测试用的手机Nexus 5具有以下特点:它有一个四核2.3ghz 的CPU Snapdragon 800芯片组。四个相同的CPU内核,可以在14个不同的300kHz~2.2656mh之间的频率工作。这部手机已经被root了,并且使用的纯净的安卓6.0系统。对于功率测量,我们使用了一个功率计从外面连接到移动设备,称为power monsoon。我们事先移除了手机的电池,直接在电源引脚上测量功率消耗。实验装置如图2(b)所示。启用了飞机模式,关闭了屏幕,以消除功耗对通信和显示组件的影响。设置了默认的Android策略。采用了两低,两高,和一个中间频率的频率作为代表各种可用的频率。GPU的频率被设置为最高的频率,所以理想的CPU核心不必等待GPU处理它们的任何请求,以尽量减少它对运行进程的影响。

3.2实证测量

3.2.1 CPU利用率

在改变硬件特性时,我们使用内部内核应用程序来测量CPU利用率对手机功耗的影响。这个应用程序的特点是busy loops可配置。它允许我们更改活动CPU内核的数量、允许的总体CPU利用率和每个核心的频率,这完全可以调整和强调CPU特性。

图4:在100%的CPU利用率下,不同频率的有源磁芯的平均功率消耗标准化。

图5:1内核时平均功耗和CPU频率超过100%的CPU利用率

在后台运行它会生成一个记录硬件状态历史信息的文件。

图3描述了五种不同频率的CPU利用率对手机功耗的影响,我们描述了一个app在使用一个cpu核心工作一分钟的效果。将CPU利用率从10%提高到100%,最高频率增加74%,最低频率增加62.5%。在100%的CPU利用率下,缩放频率降至最低频率,功耗从28.2%提高到71.9%。这表明,越是繁忙越会消耗更多的能量,而只有修改后的dvf才能在大幅降低频率的情况下实现良好的节能效果。

3.2.2成本额外的内核

我们使用相同的内核应用程序来测试活动CPU核心数对手机功耗的影响。CPU利用率固定在100%,以避免繁忙循环造成的任何影响。图4显示了五种不同CPU频率下的结果。有趣的是,所消耗的能量不是关于活动核的数目的线性函数(即,当从1到2个核或从2到4个核心时,它不按比例缩放)。事实上,对于相同的频率,即最高频率,从1个核心到2个核心,功耗增加了2,只有7.7%到4个核心的频率增加了28.3%。对于较低的频率,我们分别增加了17.3%和6.4%。总的来说,对于光和稳定的工作负载,从1到2个核心在功耗方面是积极的,从2到3个核心或从3到4个核心由于边际功率的增加更有利。但是,增加1, 2, 3或4个磁芯的频率对每种情况下的功率消耗都有大约70%的影响。这表明整个DVFS在功耗方面可能具有破坏性。总而言之,就节能而言,可以通过每个内核的DVFS和相应地选择适当数量的内核来实现平滑过渡。

3.2.3基准性能

为了了解不同配置对移动电话性能的影响,我们运行了基准应用程序GeekBench4(GB4)。这个应用程序在可用的CPU资源上执行一个复杂的基准,以通过提供与计算性能相对应的值来确保系统有意义的结果。该分数表示在每个CPU核心上运行1个单线程。首先,为了评估单个CPU核心的影响,我们将CPU利用率固定在100%,并且激活1个内核。图5确认性能随着频率的增加而提高,其次是功耗的增加。看来,在一个较高的频率时: 1.95ghz的实验中,两者的功耗和性能都达到一个高度。总之,CPU核心有一个稳定的行为并且停滞在这种状态因为频率增加引起的增益不利于更快地完成工作。为了查看在同时运行多个内核时这种行为是否是普遍的,我们在运行基准应用程序时评估了频率范围1核心和4内核的性能和功耗之间的比率,如图6所示。我们看到单心的比率是相当稳定的,并且随着对数趋势的增加而缓慢增长。从理论上讲,这是我们能达到的最佳状态。另一方面,在4核心运行,显示了一个完全不同的行为:达到一定次数后(即960mhz),比例开始下降,这证明了CPU内核的状态并不理想,性能转换不划算。图中没有显示出任何理想中的状态,因为没有稳定的行为(停滞)。这证明,在计算能力最高的情况下涉及太多内核,并不能带来功耗和性能之间理想的权衡。在多核情况下,用较少的硬件资源可以获得类似的结果。这些结果表明,显然需要更好地平衡移动设备中多核架构的功耗和性能之间的关系,而Android默认策略不能够实现这种折中。

4 mobicore系统设计。

在本节中,我们将在mobicore的设计之后解释它的理论。在这之后,我们将描述算法的流程图,然后介绍我们的优化解决方案的实现

4.1功耗表征

4.1.1 CPU能量模型

CPU的功耗模型(PCPU)是由动力学(PD)和静态(PS)的功率消耗。前者表示核心繁忙时的功耗,大约与频率(f)和CPU电压(V)的平方成比例,而后者表示当核心处于空闲状态(在线但不忙)时消耗的功率:

PCPU = Pd Pc, (1)

PCPU = CV2fnof; V. ISeak, (2)

图6。性能/功率比过频的CPU 1和4芯的WHERE pcache是由于内存和功耗的访问独立于核数。pcache和V是在频率依赖性。让我们将能源消费,电力消费在一段时间如下:

Eq.(7)是一段时间T中N核接受全球DVFS理论能耗(每个核心频率相同)

4.1.2最优DVFS mobicore

mobicore寻找CPU核心数量和各自的频率的最佳组合以适应工作量。在默认的调节器,我们建立mobicore并且由需求重新评估的频率作为选择:

n. fnof;new = nmas . fnof;ondemand . K, (9)

其中k是当前手机的总体利用率,n是活动CPU核心的数量。如果我们把公式(2)和(9),我们可以估算消耗由一个CPU核心与mobicore为动力:

在计算每个核心频率之前,我们在计算新频率之前重新计算CPU核心的数量;如果核心的单个工作负载在10%以下,我们假设我们可以关闭核心。此外,mobicore的意义是,它必须对工作量的变化反应从而回答某些应用的动态自适应的方案。为此,在Android体系结构中,存在一个称为配额的值,如果应用了比例因子,它可以被修改。这个值是给所有的CPU内核,任何修改必须仔细评价了。mobicore分析时间步长和时间步长t-1之间全球土地利用变化。如果差异大于某个阈值和正值,我们将面临一个突发模

全文共12358字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14276],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。