(计算机科学与技术专业论文)基于cpu使用率的动态电源管理(dpm)研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于cpu使用率的动态电源管理(dpm)研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于cpu使用率的动态电源管理(dpm)研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于cpu使用率的动态电源管理(dpm)研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于cpu使用率的动态电源管理(dpm)研究与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 摘要: 动态电源管理主要是为了在满足用户需求时动态调整系统资源状态,达到系 统节能的效果。对于电池供电的嵌入式系统而言,延长电池的供电时间非常重要, d p m 系统为我们延长电池使用时间提供了良好的解决方案。 使用d p m 的系统中必须包含多功耗状态部件,通过动态调整部件的功耗状 态,使得该部件能满足系统需求的同时功耗最小,这是我们的最终目的。为了实 现基于c p u 的d p m ,我们必须预测下一个时间内c p u 的工作状态,通过预测 我们可以设置c p u 的电压和频率,因此c p u 不必维持最高的电压、频率,可以 达到c p u 的节能效果。系统c p u 使用率的预测是为c p u 设置状态的依据,是 基于c p u 使用率的d v s ( 动态电压调整) 的关键所在,预测准确性和系统节能 与性能之间关系重大。 在完成本论文的过程中,作者主要做了如下工作: 1 、针对嵌入式系统的功耗分析、节能可行性进行分析,从硬件指令集到软件 优化的不同层次进行分析,作为电源管理研究的首要工作。 2 、针对基于c p u 使用率的d p m 进行研究。在一种基于进程的静态预测算 法上进行了改进。由于静态算法缺乏对环境的适应性,改进算法通过历史 系统状态和历史预测效果来动态调整计算因子,是一种自适应预测算法。 实验结果显示,改进算法的预测效果可以接近静态预测的最佳效果。 3 、考虑到在低性能状态下预测系统高性能需求的困难,本文对原预测算法 进行了改进,提出了“预留空间”算法来进行修整。 4 、本文还提出了针对p x a 2 7 2 平台、l i n u x 2 6 内核的d p m 框架和实现。利 用自适应的c p u 使用率预测算法,结合2 6 内核计时器和进程的特性, 我们实现了一套基于动态t i m e o u t 监测的d p m 系统。 总而言之,本文比较系统地研究了动态电源管理,提出一种c p u 使用率预 测算法改进,在此基础上实现了一套d p m 系统。 关键字:d p m 、c p u 使用率、预测算法、l i n u x 、p x a 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 a b s t r a c t : d p mi sa i m e da tc h a n g i n gs t a t e so fs y s t e mc o m p o n e n t sd y n a m i c a l l yf o rp o w e rs a v i n g w h i l es a t i s f y i n gu s e r sp e r f o r m a n c er e q u i r e m e n t e x t e n d i n gt h eb a t t e r yl i f ei so fg r e a t i m p o r t a n c e ,e s p e c i a l l yf o re m b e d d e ds y s t e m s ,a n dd p m i so n eo ft h ec o n v e n i e n t m e a n st oa c h i e v ei t f i r s to fa l l ,w ea n a l y z et h ea v a i l a b i l i t ya n dt h ec a p a b i l i t yt os a v ee n e r g yf o r e m b e d d e ds y s t e m s d i f f e r e n tw a y sa r r a n g e df r o mi n s t m e t i o ns e tt os o f t w a r ef r a m e w o r k sc a l la t t r i b u t et o h e l pu sa n di t s t h ef i r s ts t e pt od or e s e a r c hi np o w e r m a n a g e m e n t t h e n ,w ef o c u s0 1 1 1 r e s e a r c ho nd p m as y s t e mt h a tw a n t st ot a k eu s eo fd p m m u s th a v es o m e c o m p o n e n t s ) s u p p o r t i n gm u l t i p l e s t a t e sw i t hd i f f e r e n t p o w e r - c o n s u m p t i o n t os e tt h ea p p r o p r i a t es t a t e ( s ) o ft h ec o m p o n e n t ( s ) i so u rm a i n t a r g e t u s u a l l y , t h es t a t ew es e tf o rac o m p o n e n ti su s e df o rt h en e x tp e r i o dt h a tt h e c o m p o n e n tw i l lb er u n n i n ga t t h e ni tc o m e st ot h eq u e s t i o n :w h e ns h o u l dw es e ta s t a t ef o rac o m p o n e n ta n dw h a ts t a t ei sa p p r o p r i a t e ? t h ea n s w e ri sap r e d i c t o r i nt h i s p a p e rw ed e s c r i b eap r e d i c t o rb a s e do na na d a p t i v ef a c t o rt h a ti so p t i m i z e df r o ma n e x i s t i n gs t a t i ca l g o r i t h m a n dt h ee x p e r i m e n t a lr e s u l t st e l lt h a tw eh a v em a d eab i g i m p r o v e m e n ti ni n c r e a s i n gt h es t a b i l i t yf o rp r e d i c t i n gc p u u t i l i z a t i o n a f t e rg i v i n gt h er e s u l t so ft h es o p h i s t i c a t e dc p uu t i l i z a t i o n p r e d i c t o r , w e i m p l e m e n tad p me x a m p l ea sal i n u xm o d u l ea p p l y i n gt h ep r e d i c t o ri nw o r kl o a d m o n i t o r i n ga tp x a 2 7 2 w h e nt h eb l u e p r i n ti sf i n i s h e d , t h ep r a c t i c i n gb e c o m e se a s y k e y w o r d s :d p m ,c p uu t i l i z a t i o n ,p r e d i c t i v ea l g o r i t h m , e m b e d d e ds y s t e m ,l i n u x 浙江大学硕士学位论文;基于c p u 使用率的动态电源管理研究与实现 1 、综述 随着电子技术的快速发展,特别是大规模集成电路的产生而出现的微型机, 使现代科学研究得到了质的飞跃,而嵌入式微控制器技术的出现则是给现代工业 控制领域带来了一次新的技术革命,随之而来的是嵌入式系统的广泛应用,无论 是军事领域还是民品上,嵌入式计算在电子产品类已经占据了相当大的组成部 分。由于嵌入式系统往往由电池作为整个系统的供电设施,为了延长电池使用时 间,也为了保障嵌入式设备连续使用时的正常性能,我们有必要提供较好的电源 管理措施。本文将针对嵌入式系统的动态电源管理技术进行研究分析,提出了一 种基于c p u 使用率预测算法的动态电源管理方案。 大量研究证明,系统处于空闲的时间占整个运行时间的相当大一部分。电源 管理就是为了减少系统在空闲时间的能量消耗,使嵌入式系统的有效能量供给率 最大化,从而延长电池的供电时间。 1 1 嵌入式系统 嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁 剪、适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机 系统 i 8 】。嵌入式系统是将先进的计算机软件技术、半导体技术、电子技术和 各个行业的具体应用相结合后的产物,这一点就决定了他必然是一个技术密集、 资金密集、高度分散、不断创新的知识集成系统。嵌入式计算机的外部设备中就 包含了多个嵌入式微处理器,如键盘、硬盘、显示器、网卡、声卡等均是由嵌入 式处理器控制的。现在,嵌入式计算机不仅在民品上而且在军事装备上也得到了 广泛地应用。 随着系统集成技术和无线通信技术的快速发展,嵌入式系统的应用日趋网络 化。尤其是无线通信系统中,人们对嵌入式设备提出了更高的要求:除了提供基 本的语音、数据通信等基本功能外,还需要事例复杂的多媒体应用。这就要求嵌 入式系统在满足必要的实时性前提下,提供更高的计算性能和大容量的存储空 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 间;在这些系统一般都带有电池部件并通过它向整个系统供电。满足高性能要求 的代价是更大的能量消耗,这就必须缩短电池的供电时间。大量研究证明,系统 处于空闲的时间占整个运行时间的相当大一部分。电源管理就是为了减少系统在 空闲时间的能量消耗,使嵌入式系统的有效能量供给率最大化,从而延长电池的 供电时间。 1 2 嵌入式系统动态电源管理 为了延长电池的使用时间,在硬件领域,低功耗硬件电路的设计方法得到了 广泛应用。然而仅仅利用低功耗硬件电路仍旧不够,进一步的,在系统设计技术 中,提出了“动态电源管理d p m ( d y n a m i cp o w e rm a n a g e m e n t ) ”的概念。 在d p m 中,普通的方法是把系统中不在使用的部件关闭或者让它进入低功耗模 式( 待机模式) 1 】,另外一种更加有效的方法就是动态可变电压d v s 和动态 可变频率d f s 。通过在运行时态动态地调节c p u 频率或者电压。可以在满足瞬 时性能的前提下,使得有效能量供给率最大化。 硬件上提供的低功耗机制,需要软件实现上来发挥它的效能。理想的条件下, 是希望在系统中,以“功率监控”的方法,管理不同的系统资源( 硬件和软件上的 资源) ,这样才能满足嵌入式系统高性能和低功耗的要求。据研究显示,系统范 围内能量的骤降,完全因为系统任务的工作负荷急剧增加和外设的频繁利用。必 然地,实时嵌入式操作系统就成了唯一理想的来实现软件上的d p m 。这是因为: 实时嵌入式操作系统可以决策不同应用任务的运行,可以收集任务相关的实时 限制信息和性能需求信息;实时嵌入式操作系统可以直接控制底层的硬件,利 用硬件提供的d p m 技术或者机制。 1 3l i n u x 电源管理 我们的研究将以l i n u x 嵌入式系统为平台,在p x a 2 7 2 上进行电源管理研 究。因此,本节首先介绍了l i n u x 在嵌入式系统上面的应用,然后向大家介绍 l i n u x 的电源管理实现。 2 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 1 3 1l i n u x 嵌入式系统介绍 随着硬件的发展,嵌入式系统变得越来越复杂,最初的控制程序中逐步的加 入了许多功能,而这些功能中有很多可以由操作系统提供。于是,在7 0 年代末 期出现了嵌入式操作系统( e m b e d d e do p e r a t i n gs y s t e m s ) ,它的出现大大 简化了应用程序设计,并可以有效的保障软件质量和缩短开发周期。简单的e s 一般并不使用操作系统,只包含一些控制流程,但是随着嵌入式操作系统在复杂 性上的增长,简单的流程控制就不能满足系统的要求,这是就必须考虑使用操作 系统做系统软件。因此,嵌入式操作系统应运而生。 l i n u x 是一个成熟而稳定的网络操作系统。将l i n u x 植入嵌入式设备具有众 多的优点。首先,l i n u x 的源代码是开放的,任何人都可以获取并修改,用之开 发自己的产品。其次,l i n u x 是可以定制的,其系统内核最小只有约1 3 4 k b 。 一个带有中文系统和图形用户界面的核心程序也可以做到不足1 h b ,并且同样 稳定。另外,它和多数u n i x 系统兼容,应用程序的开发和移植相当容易。同时, 由于具有良好的可移植性,人们已成功使l i n u x 运行于数百种硬件平台之上 1 9 。 1 3 2l i n u x 电源管理 目前,l i n u x 爱好者和开源代码的忠实拥护者们在电源管理上做出了许多 努力,也做出了相当大的贡献。虽然,电源管理的研究已经不再是一个新鲜的话 题,但是随着硬件平台的日益更新,系统的需求不断变化,特别是对于嵌入式系 统而言,电源管理却依然是一个非常重要、不可缺少的部分。l i n u x 内核开发人 员已经在内核中加入了电源管理模块,提供了电源管理的内核接口,但这些接口 的实现并不是针对所有硬件平台都实现了,也不是电源管理的最佳方案,充其量 只能说提供了l i n u x 系统下电源管理一般的通用方法,如a p m f a d v a n c e d p o w e rm a n a g e m e n t ) , a c p i ( a d v a n c e dc o n f i g u r a t i o n a n dp o w e r i n t e r f a c e ) 等。a p m 只提供了在系统休闲时间达到一定程度时将系统挂起进入 节能状态,一直等到系统接收到恢复信号才返回正常运行模式。尽管a c p i 在电 3 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 源管理上相对a p m 而言已经有了相当大的改进,也提出了多状态休眠模式,支 持多个系统运行状态,但是它支持的系统状态非常有限( 3 5 个) ,而且在休眠 模式下,系统无法有效运行简单的程序,即使是简单的i l o 进程或者低级数学 运算程序都必须要求系统进入全速状态( f u l ls p e e d ) 。因此,在支持 d v s ( d y n a m i cv o l t a g es c a l i n g ) 的嵌入式l i n u x 系统上我们可以利用更佳的 电源管理方案一d p m 。 使用l i n u x 作为嵌入式系统的系统软件,我们拥有一下优点: i 、可应用于多种硬件平台。l i n u x 已经被移植到多种硬件平台,这对于 经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平 台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。u n u x 采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台 的改动与上层应用无关。u n u x 可以随意地配置,不需要任何的许可证或 商家的合作关系,源代码可以免费得到。这使得采用l i n u x 作为操作系统 不会遇到任何关于版权的纠纷。毫无疑问,这会节省大量的开发费用。本 身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。l i n u x 的 高度模块化使添加部件非常容易。 2 、l i n u x 是一个和u n i x 相似、以内核为基础的、具有完全的内存访问 控制,支持大量硬件( 包括x 8 6 ,a l p h a 、a r m 和m o t o r o l a 等现有的大部 分芯片) 等特性的一种通用操作系统。其程序源码全部公开,任何人可以修 改并在g u n 通用公共许可证( g n ug e n e r a ip u b l i cl i c e n s e ) 下发行。这 样,开发人员可以对操作系统进行定制,适应其特殊需要。 3 、l i n u x 带有u n i x 用户熟悉的完善的开发工具,几乎所有的u n i x 系统 的应用软件都已移植到了l i n u x 上。l i n u x 还提供了强大的网络功能,有 多种可选择窗口管理器( xw i n d o w s ) 。其强大的语言编译器g c c ,c 十+ 等也可以很容易得到,不但成熟完善,而且使用方便。 因此,在l i n u x 系统上进行电源管理系统的开发与完善是非常简单也是非 常有意义的。由于l i n u x 的开源代码以及对应模块的分析可以从网上免费获取, 我们不再需要考虑复杂的系统构架;d p m 构架针对u n u x 的补丁包也可以从 w w w s o u r c e f o r g e o r g 上面直接下载。这样,我们可以更多的关注电源管理的策略问 4 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 题,而不是系统框架问题。在下面的章节中,我们将详细给大家介绍d p m 的构 架与基于d p m 的策略选择问题。 1 4 研究背景介绍 目前,在嵌入式领域里面,动态电源管理的使用非常广泛,而且动态电源管 理的构架已经趋于成熟。动态电源管理,顾名思义,就是动态调整设备的使用状 态,在可节能的情况下尽量减少能量的消耗,达到降低系统功耗的目的。因此, 动态电源管理针对的设备多状态的,而且是状态可动态调整的,即系统提供了状 态调整的接口( 硬件层向系统底层提供了接口,系统底层向更高层提供接口) 。 在i n t e lx s c a l e 系列的处理器上,p x a 2 7 2 与之携带的开发工具、内核提供了 这些接口,我们的实现可以针对更高层的软件决策层,决定何时系统应该动态调 整状态。系统动态调整会带来附加的系统开销,如状态转换决策的判断和电源管 理系统本身都会增加系统的负荷,但我们可以在保证性能降低影响在可容忍范围 内降低,而且达到显著的节能效果。这一直也是广大嵌入式系统电源研究人员都 必须考虑的问题。 1 4 1 动态可调整组件( p o w e rm a n a g e a b l ec o m p o n e n t ) i l l 首先,我们把模块定义为一般的抽象形式。一个模块就是一套完整系统中一 个独立的部分。注意这个定义是比较模糨的,所以一个模块可以是一块芯片单元 中的一项功能,也可以是一套复杂的电路主板。从系统级来考虑,一个模块就是 一个不可细分的功能块:无法再从模块中看到更详细的独立结构。对于一个p m c 模块而言,它具有的基本特点是拥有多个操作模式( m o d e so fo p e r a t i o n ) ,提 供了性能和耗能之间的权衡可行性。不可进行耗能管理的模块指固定系统性能以 及系统功耗的电子系统或部件,相反,可控制管理的模块是指模块可以在不同的 性能等级、功率消耗等级之中切换。 p m c 可能包含许多操作模式,甚至操作模式个数非常之多。但是实际上, 操作模式的个数往往非常少,因为如果设计非常多的操作模式,带来的设计成本 5 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 消耗和附加的硬件控制开销带来的负面影响都将需要重新审视。这里,我们只向 大家说明增加p m c 的复杂度可能需要进一步的研究。 其次,现实中的p m c 模块在操作状态之间的切换是会产生附加消耗的,无 论从成本上还是系统性能上而言。主要的情况是考虑切换带来的延迟时间,或者 说性能的降低。如果p m c 的状态转换不是立即生效,并且转换时不能有任何其 它操作,那么每次在执行状态转换时都会给它带来实际性能的损失。状态转换带 来的附加消耗在某些情况下是可以忽略不计的,但大部分情况下都是不可忽视 的。同时还会带来电量的附加消耗:在状态转换不是即时生效的情况下都将出现 附加功耗。在设计p m c 是考虑它的附加消耗是非常必要的。在考虑到附加消耗 的情况下,p 卜1 c 许多可能的操作状态都可能是不必要的,因为很难把握是否进 入某些状态,这些状态带来的功耗影响和附加功耗之间的关系很难判断。 尽管如此,p m c 还是给动态电源管理提供了可能性。至于进入某些状态是 否可行的可行性分析我们将在下面的几个章节里详细说明。 1 4 2 电源管理系统模型 从我们的观点出发,一个系统就是多个交互反应的部件集合,其中至少有一 个部件可归类于p m c 模块。注意这里只是一般的定义,而没有牵涉具体系统的 复杂度和大小如何。部件之间的协同工作由控制器决定,在一般系统之中,控制 器有软件实现。如计算机系统中,全局的协同控制由操作系统( o s ) 来实现。 系统控制器对各个模块都有精确、实时的控制,因此,电源管理系统很自然 应该集成到操作系统的模块之中,作为系统控制的一个模块来实现。一个可管理 电源的系统应该提供很清晰的组件抽象,即电源管理操作接口,提供给电源管理 模块。基于标准的电源管理与系统交互接口,可以很大程度上提高设计开发的效 率。 d p m 策略的选择和实现要求我们对p m c 模块的功耗、性能及负载进行建模。 功耗、性能建模在上一节里面已经详细给出,可以通过p s m ( p o w e rs t a t e m a c h i n e ) 5 ,6 】来建模。而对于负载建模而言,情况相当复杂,从简单定时周期 策略( t i m e - o u t ) 至f j 复杂的统计建模( s t a t i s t i c a l ) 都是我们将要尝试的方法。如我 6 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 们将要看到的那样,系统的负载信息是所有的高级电源管理方式必不可少的依赖 数据。因此,我们把系统监测作为一个相对独立模块给出,通过该模块我们可以 收集运行时系统的负载信息,从中挖掘我们的电源管理系统需要的决策信息。一 个简单的电源管理系统抽象由图1 1 给出。o b s e r v e r 功能块收集系统所有p m c 模块的负载信息,c o n t r o l l e r 功能块则依据这些信息作出状态转换的决策,发送 转换请求命令到s y s t e m 进行p m c 的状态转换。 图1 1 : 电源管理系统结构 并非所有的系统模块都必须是p m c 模块,不能动态调整的静态模块消耗的 电量将视为系统能量消耗的一个基点,这个功耗值是无法降低的。自管理的模块 对于p m 来说就是这种模块。尽管这里对p m 的定义非常清晰,它的具体实现方 法还是非常自由无约束的。对于某些系统而言,p m 是硬件模块,但大部分的计 算机系统中p m 都是作为系统级的软件模块而存在的。 1 5 本文介绍 第1 章介绍了本文研究的方向以及一些基本概念。 第2 章主要向大家说明了研究的背景,我们的研究是基于这些研究技术、策 略而进行的,是我们研究进行的准备工作。 第3 章向大家分析介绍了一种基于l i n u x 的d p m 框架,该框架提供过了一 7 浙江大学硕士学位论文:基于c i u 使用率的动态电源管理研究与实现 种多状态系统的维护以及平台依赖的系统实现。 第4 章描述了我们提出的动态因子的c p u 预测算法,因为我们必须对c p u 进行使用率预测才能决定下一个时刻c p u 应该处于何种状态,节能和性能之间 的权衡主要由预测结果的准确与否来决定。 第s 章介绍了我们的动态电源管理的实现,以及结果和评价。 第6 章则是在目前的研究状况下展望我们未来的研究方向。 8 浙江大学硕士学位论文;基于c p u 使用率的动态电源管理研究与实现 2 、相关理论背景 如上所述,动态电源管理的理论与技术已趋于成熟,在电量敏感的嵌入式设 备中几乎都会使用动态电源管理方式。无论方式如何,目的只有一个一一减少不 必要的能量消耗,最大限度上延长嵌入式设备电池供电时间。尽管对于普通电源 设备,出于整个社会的节能趋势,我们也应该广泛应用最有效的电源管理模式。 在本节里将为大家分析各种控制系统及其模块状态的控制技术。我们把系统 组件看成黑盒,所有行为的描述由电源状态自动机( p s m ,p o w e r s t a t e m a c h i n e ) 来 完成。我们主要关注怎么设计有效的电源管理策略。为了简便,这里只看单一的 组件电源管理策略如何选择。 首先,这里要说明一下为什么d p m 策略不是一个容易解决的问题,从一个 简单的实例来说明。考虑一个这样的系统,它的状态之间转换是不需要额外开销 的,即状态转换时没有附加的时间和能量消耗,或者这些附加开销可以忽略不计。 在这种系统中,最优的d p m 策略就是贪婪算法:只要系统会进入i d l e 状态, 那么直接转入s l e e p 状态,因为这样节能最大。一旦有请求到达,系统就恢复 正常工作模式。 但是,大部分p m c 的状态转换附加开销是不可忽视的,无论是从性能影响 还是功耗上考虑都是这样。例如,假设进入一个低功耗状态需要关闭电源,那么 从这个状态恢复将需要一个比较长( 甚至相当常) 的时间来1 ) 打开一系列的电源 支持,2 ) 重新初始化系统和3 ) 恢复系统上下文。当需要考虑到状态切换带来的额 外系统开销时,我们就很难选择一个最优的电源管理策略。简单地说,就是我们 需要判断何时进入一个低功耗状态、进入哪个状态比较合适。甚至进入该状态应 该持续的时间多长。 首先,最优策略的选择面对着性能约束的问题,即系统的节能不能以降低系 统性能为代价,或者这个代价应该非常小,处于允许的范围内( 没有任何代价的 策略几乎是不存在的) ;其次,系统的节能情况要视系统的负载及系统的自身特 点( 如支持的操作模式) 状况而定。 我们无法达到最有效的节能,那只是现实中存在的一个不可触及的极限。下 9 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 面我们将介绍几种电源管理方式和功耗分析的方法,这些理论和方法是我们研究 的背景,有助于理解电源管理的基本要求、关键技术,了解目前电源管理的研究 现状。 2 1 可行性研究 可行性研究重点问题是:通过我们的电源管理决策,是否能给系统带来节 能? 是否给系统带来了太大的性能损失? 为了节能,我们总不能把系统一直关 闭,因为系统中还有任务需要执行。况且,我们在给系统软、硬件添加动态电源 管理功能时,软硬件在原来基础上都变得更加复杂,这些复杂化的部件是否能给 我们系统带来节能呢? 如何才能保证我们的系统能在不降低系统性能的同时达 到节能的目的呢? 那么,我们来看下面的功耗分析和节能可行性分析。 2 1 1 功耗分析方法 本节介绍了一种针对嵌入式系统的功耗分析方法【4 ,7 ,踟,它针对嵌入式实时 系统提出了一种嵌入式系统及软件分析的框架。基于这种分析,我们可以获得嵌 入式系统的各个功能模块上的能量消耗( 如上下文切换、任务调度等等) 。基于 这些分析数据,我们可以对嵌入式系统及应用程序进行更好的优化,达到更有效 的节能目的。尽管原作者实现的分析系统框架建立于不同的目标处理器之上,但 它是可移植的框架,我们可以用同样的方法对a r m 、p p c 等处理器上的嵌入式 系统进行功耗分析。 1 、实时嵌入式系统功耗分析 通常情况下嵌入式系统中除了特殊应用要求的硬件外,处理器 ( p r o c e s s o r ) 和普通外设都是可编程控制的。应用程序与底层硬件的复杂关 系,性能要求于节能之间微妙的权衡以及紧迫的时间一市场调度都要求程序 开发设计人员考虑是用运行时( r u n t i m e ) 环境软件支持。这种运行时环境通 常会以r t o s 、r u n - t i m e 程序库以及硬件驱动程序的形式使用在系统软件和应 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 用软件中。嵌入式系统中的r t o s 通过软实时约束控制来达到实时要求,就 如真正的实时系统使用硬实时约束系统。为了简便,这里使用r t o s 来表示 所有以满足时间约束为目标的所有操作系统。 一个r t o s 为嵌入式系统设计人员提供了一系列的服务( s e r v i c e s ) ,任务 ( 程序) 的创建、销毁和调度,以及进程之间的通信工作都由它来操作完成。 r t o s 中的设备驱动程序和内存管理模块简化了应用程序和底层硬件之间的 接口,给嵌入式系统设计师提供了访问、管理系统资源的指定章程。另外, r t o s 还提供对处理器及其它嵌入式设备模块产生的中断进行同步、异步处 理的服务。 典型的应用程序会大量使用r t o s 提供的实时原语( p r i m i t i v e s ) 来达到 实时控制的目的,但实时原语之问的交互关系和执行细节都由r t o s 完成, 对于应用程序设计人员来讲,这些细节上的东西是不公开的,即他们不需要 了解这些执行上的细节。尽管r t o s 服务细节的抽象化给嵌入式系统设计师 提供了更简便的管理方式,严格的性能要求和电量约束条件有时候需要对系 统软件和应用软件进行更详细的分析。所以,设计人员在使用r t o s 提供的 服务时必须考虑到潜在的性能和能量消耗上的影响。商业r t o s 手册和数据 表都会提供具体硬件配置上,r t o s 的各个部分的运行时间测试结果。但是, 提供商一般不会提供r t o s 各个部分能量消耗的具体信息。另外,s o a ( s t a t e o f t h ea n ) 技术在嵌入式电能功耗分析上不能给出具体r t o s 模块上的功耗信 息。我们的工作可以说是在不同r t o s 组建上分析功耗的一个开端。 这里的工作集中于理解、分析和提取系统能量消耗特征,而不是创建一 个系统级的能量消耗分析工具。对我们来说,这才是分析r t o s 的能量消耗 的首要工作。r t o s 本身在系统中就会消耗很大一部分电量,但r t o s 的具 体使用方式会很大程度上影晌到整个系统的能量消耗。作者开发了一个通用 的框架来测量不同应用程序及不同实时组建的功耗,同时给出了大量的测试 结果,描述了系统中不同任务( t a s k ) 的功耗情况,如上下文切换、任务调 度器、进程间通信及时钟管理的功耗情况。下面还将利用实例解释如何利用 功耗分析结果来优化嵌入式软件的能量消耗。实验分析的数据及它们揭示的 内涵可以在高层次的电源管理建模上使用,可以使用在不同的r t o s 环境之 1 l 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 中。这些模块可以融入系统级的功耗相关的设计工具之中。 2 、 实时嵌入式系统优化实例t c p i p 子系统优化实例 l b 图2 1 :t c p i p 协议栈优化 我们考虑t c p i p 协议栈的一个片段,这个部分的程序负责校验码的计算 和e t h e m e t 控制器设备的接口。通过处理接收报文来计算校验码,然后所有 的报文按顺序置放到输出设备( e t h e m e t 控制器) 上。 实现这个算法的最直接的方法就是如图2 1 ( a ) 所示,在每个报文到达时 进行处理。但是,获取e t h e r n e t 控制器存储空间的锁( 1 0 c k ) 和准备接收数 据报可能都是开销比较大的,如e t h e r n e t 控制器说明所说的那样。 对于e t h e m e t 控制器而言,优化报文的传送方式是可以实现的。在能量 消耗优化过的程序实现中,我们可以把直接算法分解成三项任务,如图2 1 f 吣 所示。校验码的计算任务和存储管理任务之间通过共享内存来通信,交互信 息。当内存管理任务队列中接收到一定数量的报文之后,它把这些报文发送 到输出任务,输出任务部分的工作则是处理e t h e r n e t 控制器以及发送它的队 列上所有的报文。 在图2 2 中t c p 2 栏给出了我们优化过后的程序能量消耗示例图,我们 可以与t c p 示例图作对比来看。这样的优化可以节省2 0 5 的能量消耗,而 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 且可以看出,大部分的能量节省源于硬件的操作的同步和硬件初始化的减 少。任务执行时间减少也带来了0 2 的能量节约,而不是来自平均功耗的 降低。尽管多任务处理更加复杂,带来了附加的4 9 的能量消耗,但硬件 同步和初始化上节约下来的能量相对而言更有吸引力。注意,在示例t c p 2 中,在某些任务空闲时,我们还可以轻易地把处理器或者内存引导至睡眠模 式来增加节能。在这个实例中,r t o s 组建消耗的能量占整个系统消耗能量 的1 。虽然如此,在其它的几个实例当中,r t o s 消耗的能量在整个系统能 量消耗的比例远过于此。 e n e r g y ( m j l 拂o 1 ,肿 n 函l 州- 。艄“ 3f m m i i 噜w 囡i n t t m l t m t l o n 囹i n p u t o u l p t a 窭奎蚺晰m 辨 口m a i l b o x 团m e m o t _ e 墨m m 匿圈靴h 州i 讯口 口s “n 槲m 曰s * 囹$ y n c h r o m z a t w m 图t a s ko o n l r 0 4 h , 图2 2 :t c p i p 能量消耗图 3 、系统能量分析构架 我们这里展示了r t o s 能量分析的框架。首先,向大家描述了框架的输 入输出,然后在更高层次上描述了框架的各个模块及通过各个模块如何分析 系统的功耗。 这个框架可以用来分析应用程序在多任务环境下的能量消耗。任务之间 可以交互通信,就如硬件设备如串口、刹车感应器及其它硬件模块一样。通 过这套系统我们可以获取不同的应用程序r t o s 函数的详细能量消耗。 懑弱黧瀵添鞭鬻鬻黧 藏#辩k糕#鞋群托撼擗#骶#挺蓉蝴啪脚蝴蛳蝴瀚糯恤。 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 图2 3 :基于底层硬件的能量分析框架 如图2 3 所示的工具输出针对每个任务都产生一棵调用树( c a l l t r e e ) , r t o s 也不例外。每个树节点表示一个函数调用。每个函数的运行时间、调 用次数以及能量消耗都会产生详细的记录。注意,同一个函数g 被不同的函 数f 和h 调用,我们会产生两个不同的树节点,这样我们可以保证每个函数 调用的能量消耗都根据调用者( c a l l e r ) 分开。因此,对于指定树节点上的某 个调用,我们可以独立计算,某个节点上的调用产生的能量消耗等于所有字 节点( c h i l d ) 上的能量消耗总和。那么指定函数的功耗如何计算呢? 根据能 量消耗公式w = p t ( w 为消耗的能量,p 为能景消耗的功率,t 为这个过程经 历的时间) ,我们需要知道函数运行时系统能量消耗的功率p ,t 我们可以从 任务调度时间获取。 4 、指令级的功耗测量分析 在【4 】中,作者告诉我们一种非常实际有效的指令级的程序功耗评测方 法。对于每一个指定的嵌入式平台( 或者说体系结构) ,它的指令集是确定 的。因此,我们可以确定每一条指令运行时系统的功耗,该评测方法是让系 统持续执行某一条指令,稳定时系统的功耗可以很容易获得。当然,我们必 须考虑到流水线的影响以及不同环境( 如c a c h em i s s ,指令序列上数据相关) 下指令执行时的能量消耗功率偏差,但这些问题都是可以通过实验来测量, 1 4 如c p u4 8 6 d x 2 的指令功耗可以通过实验获得指令运行时电流表,下表2 1 为部分指令的运行时电流( b a s ec o s t ) 表。 1o p2 7 5 7l 2 h o vd x ,b x3 0 2 41 3h o vd x , b x 】 4 2 8 3l 41 4 0 vd x ,e b x f d i 4 0 9 o2 5 1 4 0 v b x 】,d x 5 2 1 7 l 6 m o v b x 】 d i 】,d x 4 5 1 72 7a d dd x ,b x 3 1 3 6l 8a d dd x ,c a x 4 0 0 1 2 9 a d d b x 】,d x 4 1 5 73 1 0s a lb x ,13 0 0 8 3 1 1s a lb x ,c l3 0 6 53 1 2l e ad x ,亡b x 3 6 4 4l 1 3l e ad x 【b x c d l 3 4 5 22 1 4j m pl a b e l3 7 3 o3 1 5j zl a b e l3 7 5 7 3 1 6j zl a b e l3 5 5 9l 1 7c m pb x ,d x2 9 8 。2i 1 8 c m p b x 】,d x 3 8 8 02 表2 1 :指令功耗( 电流) 表 其中b a s ec o s t 用毫安表示稳定时系统中的电流大小,那么p = v i ( v 为 提供的电压,i 为系统电流大小) 。通过逐步求精的方法我们可以最终计算应 用软件或系统软件的功率。由于不同指令执行时的电流是不同的,我们可以 如下计算我们的平均电流: a v g ( i ) = s u m ( b a s ec o s t + ( i n s t r u c t i o nc y c l e s ) ) s u m ( i n s t r u c t i o nc y c l e s ) 即所有指令的b a s ec o s t 之和除以指令条数,即为我们的平均电流。消耗 的能量为: e = a v g ( i ) + v c c + c y c l e s + ( t i m ep e rc y d e l v c c 为目标板提供的核电压,c y c l e s 为程序运行总的时钟周期数。 我们看一段简单的程序实例耗能功率分析( 表2 2 ) : 浙江大学硕士学位论文:基于c f u 使用率的动态电源管理研究与实现 n u m b e ri n s t r u c t l o nb a s ec o s tc y c l e s m o vc x ,1 a d da x ,b x a d dd x ,8 b x 】 s a la x ,1 s a lb x ,c l 3 0 9 。6 3 1 3 6 4 0 0 2 3 0 8 3 3 0 6 5 表2 2 :一段程序代码及其对应的电流和执行周期 实际上,上述指令流运行时的平均b a s ec o s t 为3 3 2 8 ,计算所得平均电流为 3 2 6 8 ,环境偏差值为5 5 8 ,之和为3 3 2 3 8 ,和实际上的测量值相差0 1 2 。这个 简单的实例告诉我们,通过指令集的能量测评我们可以比较精确的计算程序的能 量消耗功率。 上面讲述了如何测量系统的功耗,虽然这是最底层的功耗相关的工作,与我 们的“上层建设”的决策影响不大,但这是所有电源管理工作的基础,是我们评 价电源管理系统性能优略的根本。在给定的系统上,只有假设这些底层功耗分析 工作都已经妥善完成,我们才能进行下一步的电源管理策略的制定和分析。同样 的道理,我们需要建立更高层次的功耗分析机制,因为我们不可能在每次需要进 行功耗分析时都经过这么复杂的步骤。下一节将向大家阐述一般的d p m 系统可 行性分析。 2 1 2d p m 节能可行性分析 我们把一个p m c 组件设置为非活跃状态,假设p m c 组件在该状态下保持的 时间与进入、退出该状态的时间之和为t h 。由于系统进入、退出某状态都会带 来附加能量消耗,那么进入某状态是否有效节能我们需要判断在该状态下的节能 是否能补偿它。我们定义s 状态下的最低限制时间为t ( b e ,s ) ,该时间表示系统 必须在s 状态下保持t c o c ,s ) 时间,这段时间内s 状态下的节能与进出该状态带 来的耗能相等。如果t n o 将终会成立。 在d p m 领域研究范围内,我们比较感兴趣的是系统节能p 龃v c d 与节能状态参 数、系统负荷统计数据之间的依赖关系。自然,t ( b e ,s 1 越大,p 。砌越小。在i d l e 时间小于t ( b e ,s ) 的情况下,我们不同通过切换节能状态来达到预期目的。一种 最优的d p m 策略可以描述为:如果p 址= p 。而且p 。,e d = o ,那么d p m 将永远不 会进入节能状态。 通常,t b 。是两个数据项之和:状态切换所需时间r 和需要补偿状态切换带 来的能量损耗p 仃的最短节能时问。对于图5 例子而言,我们的r 和p 。描述为: 1 7 浙江大学硕士学位论文:基于c p u 使用率的动态电源管理研究与实现 t t r = t o n ,o f f + ,o n ( 1 ) p r r :塾型塾焉# 选迹( 2 ) t r : 那么,t h e 可以用如下公式描述: 码f = 野8 + 豇辟瓦p t i t - - 了p 磊o r ti f 耽,r 您。 z b f = 墨茸i f 岛1 rsp 。( 3 ) 其中,当p 一= p 。时,表示状态切换并不会带来附加的能量消耗;而在第一 种情况下状态切换会带来更大的能量消耗( p 。, p 0 。) ,t b 。在r 上还需要加上一个 补偿时间k + ( p 订一p 。n ) m 。- p 。曲。 这里介绍了在最简单的p s m 模型下的1 k 计算方法。对于多个节能状态的 p s m 我们可以举一反三,推而广之,只要把公式中的p o n ( 开启状态) 和p o b ( 关 闭状

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论