电子说
在本文中,我们提供了CPM的一个概述,这是一个基于约束的电源管理(Constrained Power Management)的跨越多层的框架,我们提出了一个实际的案例应用。这个框架涉及到一个典型的嵌入式系统的不同层次,从设备驱动程序到应用程序。CPM的主要目标是:(i)总和应用的QoS要求,及(ii)利用它们来支持有效地协调不同驱动程序之间的本地优化策略。这一角色由全系统的(system-wide)和多目标的(multi-objective)优化策略来支持,也可以在运行时改变。在本文中,我们主要集中在一个实际的案例,来显示用CPM来管理QoS要求和硬件的交叉相关性的开销非常低,这是不能直接在本地优化策略中考虑的。
1. 引言
资源管理,进而也包括节约能源,已成为嵌入式多媒体移动设备(如智能手机)的一个高优先级的设计目标。这种设备通常是基于使用系统芯片(SoC)的平台,其中嵌入了一些外围设备,共享一些资源,并竞争对资源的使用。这些具有多个处理器的嵌入式系统通常是由一组工作模式界定,每一个模式相应于功率和性能的不同配置。
与此同时,现代消费电子产品提供多种功能,包括从传统的电话呼叫,到更复杂的用例,涉及网络接入和音频视频播放。这些多种应用场景通常导致对有限的可用资源的竞争,并且还可能涉及到对底层硬件相互冲突的要求。
因此,现在新一代平台的资源和电源管理,已经成为一个越来越复杂的附加值。这就要求寻找在用户可感知的省电和性能之间的最佳权衡。因此,值得把它当作一个优化问题,有针对性的定义解决方案,使得很容易在不同的产品间移植。
鉴于这些因素,为了有效地支持整个平台的优化,有必要:(i)收集和聚合应用的QoS要求,以及(ii)在一个动态的系统范围内的优化策略中利用他们。这一全局性的优化策略,我们认为,应该有针对性地对已经存在的低层次和设备特定的优化策略提供粗粒度的调整。
本文的其余部分组织如下。在下一节中,我们简要地介绍了目前最先进的相关技术的概述。第二部分介绍我们的系统范围内的优化框架。一个典型应用在第三节说明,而相关的实验结果在第四节中提出。在第五部分得出结论。
A. 相关研究工作
在计算系统中,用以降低功耗的技术的范围,从物理层设计到较高的软件抽象层次[1]。具有成本效益的解决方案需要在所有的抽象层次同时解决这个问题,因此开发综合性的办法(holistic approaches),从多层汇总数据进入到PM决策,是一个热门的研究课题。事实上,许多基于跨层次适应(cross-layer adaptations)的方法已经被提出[2],[3],[4]。不幸的是,这些方法都没有真正实现为商业可用的产品。
Linux操作系统(OS)作为许多新一代移动设备的共同选择,已经具有了不同的框架,提供了良好的支持,以将硬件的节电功能利用到单一设备(例如,CPU)或子系统(例如,时钟树)。然而,这个操作系统仍然缺乏一个良好的总体协调和全系统范围的优化策略。这种缺乏一直是几个扩展建议的主题。然而,要么是这些方法并没有被有效地集成在Linux中[5],[6],要么是基于复杂的模型构建在不同的平台上,因此不容易移植[7]。
2. 基于约束的电源管理概述
CPM是一种用来管理整个平台的系统资源和电源的方法。它允许从应用程序收集QoS要求,以及以分布式的方式协调设备驱动程序,以支持所请求的QoS等级,相对于可以指定优化能耗或性能的全系统的动态优化策略。
A. 基本概念
CPM模型基于一些理论概念:
全系统指标(System-Wide Metrics,SWM)是用来描述一个正在运行的系统的行为参数,并代表QoS要求。他们可能是“抽象的”(ASM),或“依赖于平台的”(PSM)。前者被暴露给用户空间,并可以由应用程序使用,以声明QoS要求。而后者被定义在平台的代码中,并被用于跟踪硬件的相互依存关系(interdependencies)。
设备工作区域(Device Working Regions,DWR)定义设备的操作模式和SWM之间的映射,从而也就定义每种模式下所支持的QoS级别。
可行的系统配置(Feasible SystemConfigurations,FSC)是每个设备至少一个DWR的n维交集(其中n是已定义的SWM个数)。他们确定了目标平台全系统的工作点,被授予一定的QoS等级。
SWM的约束(Constraintson SWMs),根据应用程序或驱动程序在这些参数上对QoS的要求,在运行时定义。对同一SWM的所有QoS要求,都被使用取决于参数类型的聚合函数(aggregation function)翻译成约束(constraint);该聚合函数可以是加法/减法或最小值/最大值。
优化策略(Optimization Policy)是基于线性规划(Linear Programming)的概念。它支持一个多目标的优化(multi-objectiveoptimization):可以考虑不同的性能参数(performanceparameters),通过分配一个权重给每个SWM来实现;以及能量消耗(energy consumptions),通过给每个FSC分配一个功耗度量(power consumption measure)来实现。
B. CPM如何工作
我们可以区分三个主要阶段,降低计算复杂度和提高执行频率:
FSC识别(FSCIdentification):在启动时,所有的驱动程序注册到CPM中,暴露他们的DWR。通过执行DWR的交集,所有FSC可以被自动识别出来。
FSC排序(FSCordering):每当优化的目标发生变化时,都根据全局优化策略来对FSC排序。这通常发生在设备的使用情况改变时。
FSC选择(FSCselection):在运行时应用程序可以声明对一个特定SWM的QoS要求。这些要求被聚合起来,以为每个SWM产生一个新的约束(constraint)。这些约束(constraint)可能会使一些FSC无效(invalidate),如果当前FSC也被无效,那么就根据在排序阶段(ordering phase)定义的顺序选择一个新的FSC。
最后,所有的驱动程序被通知新的FSC,并需要相应地更新其操作模式。
CPM模型已经被实现为Linux内核框架(版本2.6.30),并使用了一些用例测试以评估其开销。在下一节中,我们将介绍这些场景之一,以表明这种方法的好处。
3. 一个有意义的用例
本文描述的用例的目的,是为了展示使用CPM根据实际的应用需求来管理资源,同时正确地跟踪不同的子系统之间的依赖关系的好处。
所考虑的平台是由意法半导体(ST)生产的STn8815系统芯片,其中有一个ARM主机CPU,而多媒体业务采用一个音频DSP(DSP A)和一个视频DSP(DSP V)。主机CPU时钟为CPU_CLK,两个DSP的时钟都为DSP_CLK。该SoC的内部架构强制严格的CPU_CLK和DSP_CLK之间的依赖性,如在图1a中所示。 当一个或两个DSP工作在某个频率时,也被CPU也被约束到一个兼容的频率工作。因此,必须在运行时适时地通知有关此约束给处理器的优化策略。
A.用例描述
现代智能手机的一个相当普遍的情形是,从网络上下载一些数据,同时通过互联网播放一些音频,视频内容。此情景涉及到两个应用程序:一个控制流内容的下载和播放,另一个下载其他数据,例如邮件帐户同步。这两个应用程序共享一个共同的资源,连接带宽,并可能需要一个最小的QoS等级。例如,不同的视频质量要求不同的连接速度。
用例中所涉及的设备是一个3Gmodem,两个DSP和一个CPU。该modem支持多种连接模式到移动数据网络。每个模式具有对应的最大带宽容量,通常也对应于不同的能量消耗水平。音频和视频DSP支持不同的编码标准,对应于不同的处理工作负荷,并因此可能需要适当的工作频率。该CPU被一个优化策略(optimizationpolicy)控制,根据其过去的工作量独立地选择工作频率。
B. 集成CPM
被考虑过的ASM包括:
连接带宽(connection bandwidth):应用程序竞争的资源。一个求和函数(additive function)被用来聚合由应用程序声明的总的要求,并对该资源确定一个QoS等级的约束(constrainton the QoS level)。
音频和视频编解码器:有关应用必须播放的多媒体内容的信息,因此它直接影响到DSP的操作模式。
PSM(CLK_DSP和CPU_CLK)是特定于平台的信息,在平台的代码中定义,用以跟踪目前所描述的硬件之间的相互依存关系。最后,每个涉及的设备驱动程序利用ASM来定义其自己DWR,如示于图1b,1c和1d。
C. 用例的动态
用例开始于用户选择要播放的视频流的内容。只要音频和视频数据下载开始,播放器应用程序就开始收集能获得良好的播放质量(264千比特/秒)所需要的连接带宽,编码的内容所需要的音频编解码器(MP3)和视频编解码器(H.263)等信息,并设置相应的ASM的QoS要求。这些要求是通过对ASM bandwidth的下界值(lower bound value),以及ASM audio codec 和ASM video codec的单个值来表示的;它们由图1b,1c和1d中的橙色约束(orange constraints)代表。
声明这些约束就会无效当前的FSC。因此,CPM协调选择一个新的FSC,且将相应的DWR通知给modem和DSP以达成分布式协定(distributed agreement)。所需的编解码器被绑定到一个特定的DSP_CLK频率:DSP A 设为50MHz,DSP V 设为60MHz。平台的 DWR(图1a)允许管理CPU_CLK的依赖,因此就被设置以支持所需的频率。因此,CPU频率优化策略将可以根据所施加的约束调整处理器的频率(>=100.8MHz)。达成协议后,候选FSC被激活,所有涉及的子系统迁移到新的工作模式,例如,modem从GPRS切换到EDGE1。
用例继续下去,在播放过程中,从网络上下载数据的应用程序开始,例如,电子邮件更新应用程序。这个新下载应用程序声明200 kb/s的带宽要求。由于ASM 带宽的聚合函数类型为求和(additive),该聚合函数考虑所有先前声明的要求,并累加出总和(sum)。因此,464 kbit/s就成为带宽的新活动约束(active constraint),因此,一个新的FSC被选中,使modem迁移到的EDGE2工作模式,以满足要求。要求的聚合由图1b中蓝色约束(blue constraint)表示。
最后,视频流播放结束,相应的带宽和编解码器的要求被撤销。这导致一个新的对带宽的聚合,结果是在ASM带宽上减法该值。
在这时候,只有下载应用程序仍处于活动状态,从而选择一个新的FSC并激活。
4. 实验结果
每个驱动程序都已更新,以提供必要的信息给CPM接口,例如其DWR的定义。修改驱动程序代码以支持CPM很容易,且对开发和维护设备驱动程序的影响也很低。例如,图2显示了 ASM和modem的DWR是如何在驱动程序编码的。
所描述的用例在修改后的平台上已经被执行,代表性的结果列在下面的图中。
A. 资源管理(Resources Management)
要求的声明和聚合(requirementsdeclaration and aggregation)允许对已经被使用的和仍然可用的系统资源保持一个正确且精确的视图。这可以被利用来配置硬件设备的最佳可行的操作模式,用以支持对资源的需求。此方法的正效应(positive effect)是可以实现的节能(energy saving),通过为每个QoS需求选择最佳工作模式,不仅相对于一个多目标的性能优化策略,而且也考虑到全系统的功耗,可以关联到每个FSC。
B. 跟踪依赖性(Dependency Tracking)
CPM可以追踪SOC的不同的子系统之间的硬件依赖性,(如果依赖性被破坏)可能会阻止系统的正确操作。不是对每个设备驱动程序打补丁,以适应平台,而是让开发人员声明平台DWR来解决依赖关系问题。通过这种方式,提高了代码的可移植性。
C. 识别可行的系统配置(Feasible System-wide Configurations)
FSC的自动计算可以找出整个平台所有可行的工作点。这是通过利用独立地在每个设备驱动代码所定义的信息。其他PM方法需要手工编程所有的工作点。考虑到所展示的用例中的总FSC个数高达415个,我们理解能够自动计算出这些点是多么有趣。因此,这本身就是一个有关的结果。此外,提高了在不同的平台的可移植性,因为允许重用驱动程序定义的信息。
D. 开销和时间域(Overheads and TimeDomains)
我们已经测量了FSC的识别和选择的算法的执行时间,获得的结果在图3中。开销测量(overhead measurements)是指用例的60秒执行,并关注最坏情况。
这个测量证明了框架的影响可以忽略不计,相比于一个不使用该框架的系统。事实上,对一个相当复杂的具有4096个可行的配置(feasibleconfigurations)的系统(这远远超过所考虑的用例的415个),识别算法只显示了2.5%的开销。这意味着,在60秒的用例执行期间,约1.5秒致力于框架的执行。然而,应当考虑到,该算法只是在系统引导时运行一次,且可以方便地由查找表替换。 实际上,尤其是在嵌入式系统中,最终产品的平台配置一般不会改变,所有的FSC可以预先计算,然后在启动时加载。
虽然识别算法具有一定的复杂性,是FSC数目指数,选择算法不仅具有一个更好的(线性)的复杂性,绝对值也是三个数量级更好。这是另一个重要结果,因为识别算法更频繁地执行,即在每次一个新要求由应用程序声明时。实验考虑了每10秒运行一次,且测量结果表明开销确实可以忽略不计,因为始终小于0.01%。
5. 结论
在本文中,我们提出了CPM,一个Linux内核框架,应用到一个实际的案例。所提出的方法允许一个基于SoC的平台的不同的子系统协调运作,以开发硬件的节电功能。 CPM从应用程序收集和聚合QoS要求,并协调设备的工作模式的重新配置,以支持预期的QoS等级。特别是,CPM机制允许跟踪硬件的依赖关系,并获得正确且精确的已经被使用的和仍然可用的系统资源的全貌,同时支持全局的系统范围内的QoS和能源的优化,归功于动态策略的定义。
6. 参考资料
[1] V. Venkatachalam and M. Franz, “Powerreduction techniques for microprocessor systems,” ACM Comput. Surv., vol. 37,no. 3, pp. 195–237, 2005.
[2] S. Mohapatra, R. Cornea, N. Dutt, A.Nicolau, and N. Venkatasubramanian, “Integrated power management for videostreaming to mobile handheld devices,” in MULTIMEDIA ’03: Proceedings of theeleventh ACM international conference on Multimedia. New York, NY, USA: ACM, 2003, pp. 582–591.
[3] Y. Fei, L. Zhong, and N. K. Jha, “Anenergy-aware framework for dynamic software management in mobile computingsystems,” ACM Trans. Embed. Comput. Syst., vol. 7, no. 3, pp. 1–31, 2008.
[4] N. AbouGhazaleh, B. Childers, D. Mosse,R. Melhem, and M. Craven, “Energy management for real-time embeddedapplications with compiler support,” in LCTES ’03: Proceedings of the 2003 ACMSIGPLAN conference on Language, compiler, and tool for embedded systems. New York, NY, USA: ACM, 2003, pp. 284–293.
[5] H. Zeng, C. S. Ellis, A. R. Lebeck, andA. Vahdat, “Ecosystem: managing energy as a first class operating systemresource,” SIGPLAN Not., vol. 37, no. 10, pp. 123–132, 2002.
[6] M. Anand, E. B. Nightingale, and J.Flinn, “Ghosts in the machine: interfaces for better power management,” in MobiSys’04: Proceedings of the 2nd international conference on Mobile systems,applications, and services. New York, NY, USA: ACM, 2004, pp. 23–35.
[7] D. C. Snowdon, E. L. Sueur, S. M. Petters,and G. Heiser, “Koala: a platform for os-level power management,” in EuroSys’09: Proceedings of the 4th ACM European conference on Computer systems. NewYork, NY, USA: ACM, 2009, pp. 289–302.
全部0条评论
快来发表一下你的评论吧 !