嵌入式系统的动态电源管理架构

嵌入式系统的动态电源管理架构,第1张

摘要:分析嵌入式系统对动态电源管理的需求,并在此基础上提出了与之适应的,以策略框架为中心的系统级动态电源管理架构。利用这种构架可以整合针对不同组件的动态电源管理算法和机制,从系统角度进行行之有效的管理。该架构应用于TD-SCDMA无线终端上,平均能耗下降了50%,取得良好的效果。

1 简介

随着系统集成技术和无线通信技术的快速发展,嵌入式系统的应用日趋网络化。尤其是无线通信系统中,人们对嵌入式设备提出了更高的要求:除了提供基本的语音、数据通信等基本功能外,还需要事例复杂的多媒体应用。这就要求嵌入式系统在满足必要的实时性前提下,提供更高的计算性能和大容量的存储空间;在这些系统一般都带有电池部件并通过它向整个系统供电。满足高性能要求的代价是更大的能量消耗,这就必须缩短电池的供电时间。大量研究证明,系统处于空闲的时间占整个运行时间的相当大一部分。电源管理就是为了减少系统在空闲时间的能量消耗,使嵌入式系统的有效能量供给率最大化,从而延长电池的供电时间。

为了延长电池的使用时间,在硬件领域,低功耗硬件电路的设计方法得到了广泛应用。然而仅仅利用低功耗硬件电路仍旧不够,进一步的,在系统设计技术中,提出了“动态电源管理DPM(Dynamic Power Management)”的概念。在DPM中,普通的方法是把系统中不在使用的组件关闭或者进入低功耗模式(待机模式),另外一种更加有效的方法就是动态可变电压DVS和动态可变频率DFS。通过在运行时态动态地调节CPU频率或者电压。可以在满足瞬时性能的前提下,使得有效能量供给率最大化。

硬件上提供的低功耗机制,需要软件实现上来发挥它的效能。理想的条件下,是希望在系统中,以“功率监控(power-aware)”的方法,管理不同的系统资源(硬件和软件上的资源),这样才能满足嵌入式系统高性能和低功耗的要求。据研究显示,系统范围内能量的骤降,完全因为系统任务的工作负荷急剧增加和外设的频繁利用。必然地,实时嵌入式 *** 作系统就成了唯一理想的来实现软件上的DPM。这是因为:①实时嵌入式 *** 作系统可以决策不同应用任务的运行,可以收集任务相关的实时限制信息和性能需求信息;②实时嵌入式 *** 作系统可以直接控制底层的硬件,利用硬件提供的DPM技术或者机制。

本文主要根据嵌入式系统的特点,提出一个系统级的DPM构架。
嵌入式系统的动态电源管理架构,第2张
2 DPM构架需求

DPM构架是结构化的规则和机制来整合系统不同组件的DPM技术或者相关算法,使之能从整个系统的角度来着眼系统的电源管理问题,而不是仅仅局限于系统的某一组件。

①DPM构架应具有灵活性。由于嵌入式系统没有一个开放式的统一标准,因此DPM系统构架应具有灵活性,使之能在不同平台中得到应用。DPM系统尽管作为 *** 作系统的一个独立模块,但是应该和 *** 作系统透明,上层的应用通过DPM间接对硬件提供的电源管理机制进行控制,无须考虑底层的硬件细节。

②DPM构架需要收集系统的资源利用信息。DPM系统通过收集上层应用的信息和设备的信息,利用这些信息作出决策,进行整个系统范围内的电源管理。

③DPM应支持普通任务和功能监控任务并发管理机制。理想的情况下,对于每一个应用都希望功率监控,这样可以大大降低系统的能耗。然而,实际中,应用开发来自不同的厂商,大多数是对硬件透明的,因此实现每一个任务的功率监控是非常困难的;只有少数关键程序,由嵌入式系统的设计者开发。因为他们熟悉硬件的特性,可以实现功率监控,所以,在DPM系统中,应用采取某种机制实现两种混合任务的电源管理。

④DPM对外设管理应具有透明性。外设状态的变化应该做到和上层应用的DPM策略无关,不会因为外设状态的变化,而影响上层所采用的DPM策略的变化。

⑤DPM构架应支持硬件提供的电源管理机制和技术。比如DVS、DFS,系统的不同电源模式(活动、睡眠、冬眼),外设的时钟管理,外设的自动睡眠技术等等。

3 DPM构架描述

首先需要明确的是,DPM不是DVS算法,也不是功率监控的 *** 作系统,更不是类似ACPI的电源管理控制机制。它其实是一个 *** 作系统模块,负责管理运行时态的电源管理。DPM策略管理者和应用程序通过简单的API和该模块交互。尽管没有ACPI应用广泛,DPM架构却可以对设备和设备驱动进行管理,这样就适合对高整合的SoC处理器进行有效的电源管理。

本文提出的DPM是以策略框架(policy framework)为中心的软件结构。其中包含几个重要的概念: *** 作点(operaTIong point)、 *** 作状态(operaTIong state)、策略(policy)、约束(constraint)。

(1) *** 作点

在给定时间点上,系统运行在某个特定 *** 作点上。 *** 作点封装了最小的、相互关联的、物理的离散参数集合。一般来说,参数主要是CPU的频率、电压、电源管理模式、总线频率和不同外设状态等。一旦确定了 *** 作点,也就确定了整个系统的性能等级和与之关联的能耗等级。 *** 作点由系统的设计者定义,在定义的时候必须注意到参数间的相关性和合理性。比如,在某种特定电源管理模式下,CPU的最高核心电压被限制,而在核心电压的限制下,可变频CPU的工作频率不能超过一个最大值。对于支持多 *** 作点的嵌入式系统,当某个事件发生时,系统会从有一个 *** 作点切换到另一个 *** 作点。这样就需要定义一种机制,来管理不同 *** 作点的切换。对于这一点,会在后面的 *** 作点类型和设备管理中详细描述。在策略框架结构中, *** 作点是最底层的抽象对象。

在OMAP1612中包含两个内核:ARM926EJS和C5510(DSP)。ARM内核负责整个系统的管理、无线通信协议栈和应用程序的运行;DSP内核负责与无线通信相关的数字信号处理。其中,ULPD(Ultralow-Power-Device)模块提供了芯片级的电源管理机制,包括时钟、电压、省电模式的管理。UPLD分为三个不同的工作模式—Deep Sleep、Big Sleep和Awake,分别对应不同的能耗等级。TC(Traffic Controller)负责管理相关存储器接口

(2) *** 作状态

如果把 *** 作点比喻为点的话, *** 作状态就是一个面。在多 *** 作点的系统下, *** 作状态与 *** 作点的关系是一对多的关系。引入 *** 作状态的动机主要有两个考虑。

①为了利用DVS和DFS,需要实时监控系统的工作负荷,但是工作负荷是一个连续值,而 *** 作点却是离散的。极端的情况下,可以为不同的工作负荷定主不同的 *** 作点:但是,由于硬件上改变频率和电压都存在延迟和多余的能量消耗,如果频繁地改变 *** 作点,效果却适得其反,因此需要对工作负荷的范围进行划分。在实际情况下,系统的工作负荷和 *** 作系统的状态紧密相磁。一般可以把 *** 作系统看作一个状态机, *** 作系统通过事件的触发,在没的状态音间切换。简单地,可以把 *** 作系统的状态与 *** 作状态一一对应。由于处于“空闲”和“调度”,对应不同的工作量范围,映射不同的 *** 作点。当然可以对“调度”状态再进行划分。

②作为功率监控的任务,它可以配置特定一个或者多个 *** 作点,但是为了维持底层硬件细节对任务的透明性,通过设置 *** 作状态来间接指定 *** 作点,体现了DPM构架的灵活性。为了满足这样的需求,DPM构架中引入了“任务状态(task state)”的概念。对于功率监控的任务来说,可以在自己的代码空间中,根据任务本身的运行状况设置该任务自己的任务状态,而任务状态作为特定的 *** 作状态在系统初始化的时候登记到DPM中。当在 *** 作系统任务上下文调度切换的时候,根据任务状态,直接调用DPM的相关例程,应用新的 *** 作状态;对于普通的任务,在“任务状态” *** 作中配置参数“NO STATE”。“NO STATE”表示没有特定的任务状态,即不改变系统当前的 *** 作点.那么,该任务的运行在上下文切换时,能保持原有的 *** 作状态。

由于要同时管理普通任务和功率监控任务,在上下文切换设置 *** 作状态的最低点必然会出现DVS算法和应用频率监控任务状态的矛盾。为了解决这个问题,需要引入 *** 作状态优先级机制。在实现中,功率监控的任务状态对应的 *** 作状态优先级高于DVS算法配置的 *** 作状态。这样,在上述矛质出现的时候,优先应用功率监控任务配置的 *** 作状态。

根据 *** 作系统运行的状态,简单地定义了五种 *** 作状态——空闲、任务-、任务+、任务、睡眠,并且给出了 *** 作状态之间的状态迁移,如图1所示。特别地,当 *** 作系统处于中断状态时,并不为其定义特定的 *** 作状态,而是通过把中断处理例程的任务状态定义为“NO STATE”来实现。
嵌入式系统的动态电源管理架构,第3张
    (3)策略和策略管理者

DPM最高级的抽象对象是策略。定义一个策略就是定义每个 *** 作状态所映射的 *** 作点。在系统中,对某个电源管理方案必须至少定义一个策略,也可以根据不同情况不定期义多策略。在多策略电源方案中,需要策略管理器来协调不同的策略。策略管理器可以从 *** 作系统、用户调用、运行程序、物理设备收集信息从而作出策略决策。策略管理器的位置(用户空间和内核空间)、所收集信息的内容和形式以及相应的 *** 作,需要系统的DPM设计者来定义和实现。

(4)设备管理和同等 *** 作点类

在DPM架构中,策略管理者不会直接对设备的状态进行管理,而是通过底层的设备驱动来管理设备的能耗。在某个 *** 作状态下,映射一类可以在该状态下能被系统接受的 *** 作点。在该状态下,当某个睡眠的设备需要被唤醒的时候,通过驱动对DPM声明约束(constraints),接着DPM在这一类的 *** 作点中选择另外一个 *** 作点,使得该 *** 作点下,该设备能够正常工作,选择的机制可以在策略中定义。简单的方法是选择该类中合法的(满足约束条件)能耗最低的 *** 作点,或者是特别指不定期某个 *** 作点。

4 DPM模块实现

在实时嵌入式 *** 作系统Nucleus微内核中实现了DPM模块,采用的平台是基于TI OMAP1612的TDSCDMA无线终端参考设计(32MB DDRAM,176×220 16bpp TFT液晶显示屏,USB和其它外设)。图2是整合DPM的 *** 作系统结构。

在DPM模块中,整合了策略管理、功率监控调度器(power-aware scheduler)、工作负荷监控器、 *** 作状态管理器、 *** 作点管理、约束管理六个子模块。其中,功率监控调度器和工作负荷监控器嵌入到内核的上下文切换中,工作负荷监控器通过计算 *** 作系统处于空闲调度的时间和采样周期的比值来表征CPU的工作负荷,然后把这个值传递给功率监控调度器,通过内部整合“动态减慢因子”DVS算法,预测下一任务的工作负荷,并设置与之相对应的 *** 作状态。其它四个模块分别对构架中的抽象对象 *** 作点、约束、 *** 作状态、策略进行管理。特别地,策略管理的核心是策略管理者,它以一个独立线程的形式运行在内核空间。

5 结论

经过测试,整合DPM的TD-SCDMA无线终端平均能耗下降了50%。其中在 *** 作点High AcTIve时,电流为400mA左右,而在 *** 作点Sleep时降到了200mA左右;如果应用 *** 作点Deep Sleep(关闭ARM、DSP和所有设备,维持一个32kHz的时钟)电流甚至可以降到10~20mA,完全满足长时间待机。实验表明,利用DPM构架,可以对3G无线终端实行之有效的动态电源管理。随着半导体技术、应用程序优化技术以及高粒度时钟门控和电压门控技术的发展,为提升嵌入式系统的有效能量供给率提供了可能。利用这些新技术继续开发和改进DPM架构和实现,正是今后研究的方向和重点。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2420869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存