为了在产品许多、竞赛剧烈的商场上使产品异乎寻常,手持设备的制作商们往往把电池寿数和电源办理作为手机、PDA、多媒体播放器、游戏机、其它便携式消费类设备等产品的要害卖点来考虑。用户是从电池寿数这方面来看待电源办理的成效,其实它是多种要素一起作用的成果,这些要素包含 CPU 功用、体系软件、中间件,以及使用户可以在更长的充电或替换电池的距离时刻内享受各自设备的战略。
电源办理规模
任何具有笔记本电脑的人都会感觉到,他们的这种便携式设备依托电池运转时,与依托交流电(主电源)运转比照,行为表现不相同,屏幕变暗了,处理器时钟变慢了,而且体系只需有或许,就会转入待机或睡觉状况。
别的,PDA 的具有者们还发现,在设备停用一段时刻之后,屏幕会变暗,设备乃至进入睡觉状况,而手机用户会注意到,拨号之后,背光和按键照明光平息了。在肉眼可以发觉的这些行为的背面,是若干软硬件技能和战略在起作用。
显着的行为如全速运转、待机和睡觉等,充分利用了 CPU 自身的功用来下降作业电压和/或时钟频率,然后省电。大多数设备用户察觉不到的是,实践的电源办理还可所以渐增的,而且可以每秒产生好几百次,而不是整个体系状况大规模改动。
任何动态电源办理 (DPM) 战略开端都是调理便携式设备中存在的一个或多个处理器内核的作业电压和频率——高度集成的、根据 PowerPC、ARM 和 x86 的体系一般装备一块 DSP 或智能基带处理器。实践上,Intel XScale 和 TI OMAP 等处理器系列供给了内核电压和频率的动态调理。不过,现代嵌入式处理器的用电功率十分高,以至于 CPU 并不总是首要的耗能器材,其它大能耗器材或许包含高功用存储器、彩色显示器和无线接口。因而,动态电源办理体系假如只重视对处理器内核的电压和频率进行调理的话,那么它的用处或许很有限。
真实有用的电源办理计划将支撑各种电压和时钟的快速调理,既可以与 CPU 内核的运转协同进行,也可以独立进行。
架构
两种现有的电源办理计划是来自“白箱”PC 及笔记本电脑范畴,第一种是传统的“高档电源办理”(Advanced Power Management,简称 APM)计划,仍用于许多根据 Linux 的便携式设备中,而根据微软操作体系的笔记本电脑和手持设备已中止选用这种计划了,第二种是“高档装备和电源接口”(Advanced Configuration and Power Interface,简称 ACPI),这种现行规范得到了英特尔、东芝等公司的支撑。关于 PC、笔记本电脑、服务器、乃至面向通讯设备的刀片服务器等“商业制品”(commercial off-the-shelf,简称 COTS)硬件,ACPI 等体系更受喜爱,不过它们表现出对现在盛行的 x86/IA-32 BIOS 架构的激烈依靠。
嵌入式体系一般没有 BIOS(在 PC/AT 的意义上),而且一般无法奢华地装备机器笼统,来把操作体系与低层器材和电源办理活动阻隔开来。因而,在嵌入式 Linux 中,就像在其它针对电池供电使用的操作体系相同,电源办理活动需求对操作体系内核以及设备驱动程序做特别干涉。不过请注意一件重要工作,虽然动态电源办理的低层完成是驻留在操作体系内核,但电源办理战略及战略可以源自中间件和用户使用软件代码,实践也是如此。
接口和 API
抱负状况下,电源办理体系关于软件仓库的尽或许多的层次而言,几乎是彻底通明的。实践上,这正是 Transmeta 公司在其 Crusoe 架构中遵从的道路,而且已经成为现有的各种根据 BIOS 的电源办理计划的方针。不过,具有手持设备制作经历的开发人员将证明这一现实:整个体系的各个部分都需求某种程度的直接参与,如下所述:
内核接口 在针对 Linux 的 DPM 架构中,内核中的 DPM 子体系担任保持体系的电源状况,并把 DPM 体系的各个电源得到办理的元件联络在一起。DPM 子体系经过多个 API 直接与设备驱动程序通讯,这些 API 把驱动程序从彻底运转状况转为各种电源得到办理的状况。战略办理器(或使用软件自身)经过多个 API 向 DPM 子体系供给辅导,这些 API 界说各种战略,并在界说好的运转点之间搬运整个体系。
驱动程序接口 启用了 DPM 的设备驱动程序比默许驱动程序具有更多“状况”:由外部事情经过各种状况来驱动它们,或经过来自内核 DPM 子体系的回调来驱动它们,然后反映并遵从运转战略。驱动程序 API 还答应驱动程序挂号它们衔接和办理的各个设备的底子运转特征,然后完成更精密的战略决议计划。
用户程序 API 用户程序(使用软件)分为三类:
·可感知电源办理的使用软件
·可感知电源办理的“包装器”中的传统使用软件
·不带电源办理的传统使用软件
可感知电源办理的使用软件可以充分利用来自战略办理器的 API,然后树立各自的根底束缚,并强制电源办理战略产生改动,以便匹配各自的履行要求。不直接带有电源办理功用的传统使用软件可以“包装”到代码或补丁中,然后完成适当的作用,它们还可以依照默许行为来运转,这取决于更宽规模的默许战略办理。
嵌入式 Linux DPM 下的实践机制包含各种 API,比方 dpm_set_os()(内核)、assert_constraint()、remove_constraint() 和 set_operating_state()(内核和驱动程序)、set_policy() 和 set_task_state()(经由体系调用的用户级接口),以及 /proc 接口。
凭借 DPM 完成节能
共同的节能时机
DPM 的界说性特征是电源办理的敏捷、高频率性质。传统的台式机/笔记本电脑典范的运转速度是以数百毫秒或数秒计,与此不同的是,DPM 使各设备的办理速度只受限于改动供电电压 (T芕) 或 CPU 时钟 (T颇) 所需的时刻。
在流视频的各帧之间完成节能,是对 DPM 的这一性质的最好描写。高质量的流视频的运转频率是 24 帧/秒,在各帧之间留了 41.66 毫秒的可用时刻,用于烘托下一帧和进行其它活动。即使是在运转频率为 40-60MHz 的低功率 CPU 内中心上,41.66 毫秒也代表“很长的时刻”,并为电源办理带来了满意的时机。
当一帧视频出现给用户之后,活动按以下方法继续进行:
·CPU 恳求/讨取下一帧紧缩视频,它来自本地存储体系或流文件缓冲器——CPU 活动量很低;
·紧缩图画(经由 DMA 或同享内存)被传输至编解码器(DSP 或其它专用硬件),进行解压/烘托——CPU 活动量中等,编解码器活动量高;
·当图画准备就绪,即解压结束时,CPU 调用视频接口驱动程序——CPU 利用率高,终究的显示器利用率高;
·在图画处理的整个过程中,显示器背光都要耗费能量。充分利用视觉暂留或针对图画自身的伽玛调理,该参数也可以下降到一个更适度的耗费等级。
对视频帧处理的各个阶段期间的能量需求进行总结,得图 2 所示的波形,“线上方的”面积代表潜在的节能。
时钟频率调理与电压调理的好处比照
CPU 时钟频率调理是嵌入式器材的一种常用省电方法。在给定电压下,与较低的时钟速度比较,较高的时钟速度需求更多的电量才能把逻辑电平推到饱满(战胜%&&&&&%)。而且,时钟频率调理比较简单完成,至少在 CPU内核内部是这样。但是,电压调理带来的好处要大得多——能耗与时钟频率成正比,而几乎是体系电压的立方!
DPM 自身并不对时钟频率和电压之间的相关做假定。理论上,两项参数均可以独立而接连地改动。
实践上,在给守时钟频率下,存在最低可行电压(最低供电电压)——更低的电压无法在要求的周期时刻内把逻辑电平推到饱满,而更高的电压只会耗费更多的电。为了简化电源办理算法,DPM 等计划也不去测验接连改动时钟和电压,而是由规划人员在时钟/电压接连核算上挑选出一系列合理的运转点,而且 DPM 逐点驱动 CPU 和其它电源得到办理的体系器材。
开发和布置电源办理面对的应战
面向嵌入式 Linux 的 DPM 是一种正在开展的技能。因为全球开放源代码范畴的开发人员所做的奉献,它的中心技能正在前进,但实践使用依然有必要铲除一系列“路障”。
在所有器材子体系中和谐 DPM
CPU 时钟和电压引来了一套十分灵敏的电源办理参数,这些参数针对设备中的首要耗电器材之一。其它器材(背光、射频等等)也带来了电源办理时机,但有或许导致十分不同的运转点类型和数量。不过,体系中的各种节点彻底独立的状况十分少。CPU 衔接到总线、桥路、内存,并直接衔接到其它外设,而改动一种器材的时钟和电压或许会约束它与附近器材的电衔接和逻辑衔接。处理此类不兼容问题的挑选计划包含:
· 把 CPU 内核和外设编组成块,这些块同享运转点特性
· 挑选互为倍数的运转点时钟速率
· 运用电压变换器/缓冲器或开路集电极电路来缩小电压差异
战胜电压及频率调理等候时刻
为了支撑 DPM 等活跃的节能典范,体系硬件的呼应速度有必要可以至少象 DPM 战略辅导的状况改动的产生速度相同快。也就是说,假如 DPM 体系需求在给守时刻内从一个运转点过渡到另一个运转点,电源电路的时钟设定有必要可以与这些改动一起产生。
换句话说,改动电压所花的时刻有必要少于运转点之间的过渡时刻 ( T芕 T芆P )。为了完成上述的帧间计划,T芕 有必要在 5 毫秒规模内 (200 Hz)。一些直流到直流电源内部运转速度约为 200Hz,在有负载状况下只能交给大约 200 毫秒 (5Hz) 内的电压改动,成果下降了 根据 DPM 的体系的可用解析度和功效。
实时影响
直到最近,CPU 电压和频率调理仍给实时功用带来了严峻应战。两种参数中任何一种产生改动都造成了不稳定,“从头确定”锁相环路和其它动态时钟机制需求时刻,这些都造成了很长的等候时刻(有时是许多毫秒),在此期间 CPU 既不能履行核算操作,又不能呼应外部事情(中止)。
TI OMAP 和 Intel XScale 等先进嵌入式处理器可以在等候时刻以几微秒计的状况下调理频率,并在等候时刻以数十微秒计的状况下呼应改动的电压,不会中止体系运转,然后完成了更活跃、更精密的战略。
对实时功用的一个更遍及的应战是深度睡觉方法期间对中止的呼应。大多数片上外设可以设定为在收到中止时“唤醒”体系,不过开发人员有必要细心规则各项战略,来启用(挑选性的)根据器材的唤醒,并考虑整个体系的等候时刻和存储类别,然后保证及时履行中止处理程序和用户空间对事情的呼应(优先等候时刻)。
参阅渠道的功用
虽然许多 CPU 中心和 SoC(单片体系)确实可以呼应频频的时钟改动和电压改动,但它们地点的参阅板一般不能做到这点。现实上,许多 CPU 参阅及评价板无法满意快地为 DPM 调理时钟和电压,而且许多板底子不答应对这些参数做任何实时调理!在这些状况下,开发人员有必要等候对各自出产硬件的拜访,以便衡量各种电源办理计划的好处。
嵌入式 Linux 的选用、DPM 和差异化
抱负状况下,设备用户既不需求了解也不用关怀他们购买的手持设备中的底层操作体系。不过,运营商供给的“售后商场”软件正在给予设备制作商的首选操作体系更多的可见度,并正在一个曾经不存在品牌的范畴发明品牌。虽然品牌创立一直是微软公司的一项要点,但 Windows 系列在手机商场等大批量服务交给商场的遍及落在了 Symbian、Brew 的后边,而且现在也落后于多种根据嵌入式 Linux 的新式规划。
设备制作商转向 Linux 的原因之一是有时机充分利用根据各种规范的电源办理,而不是现在的专有计划。正在开展的动态电源办理功用,伴随着 ARM 公司的 IEM 等电源分析技能,正在向手机制作商和其他智能设备 OEM 们供给威力强壮的新式东西,来增强产品的差异化,完成更快的产品上市时刻,并满意终究用户和运营商的技能要求。