嵌入式 > 技术百科 > 详情

嵌入式系统的功耗管理技术研究

发布时间:2024-03-04 发布时间:
|


引言

同固定设备相比,移动设备具有功耗低、重量轻和体积小的特点:但移动设备的资源有限,主要反映在能够使用的磁盘、内存、处理能力和屏幕尺寸都比较小,且能够连续使用的时间也比较短。同时,由于移动网络的低带宽、高延迟特点,使移动应用同桌面应用之间存在着较大差别,主要表现为:(1)人机接口。移动计算要求人机接口方式简单,采用传统方式下人们所使用的语音、手写等交流方式。(2)自适应能力。移动计算环境的差异性比较大,并且是不断变化的。为了提供有效的服务,移动设备应该具有环境自适应性,根据变化的环境,采取相应的措施,为用户提供相应的透明服务。(3)应用的个性化。移动设备主要为个人所使用,提供的服务应该能够体现个体的差异性。(4)计算的移动性。(5)资源的有限性。在设计移动计算应用时,应充分考虑所使用的资源的有限性。(6)安全性。由于终端设备容易丢失,使得终端设备不宜用来长期保存数据。

1992年,Sheng认为电池的容量每隔10年能够提高20%[1];最近的研究则显示,在相当长的时间内,要把电池的容量提高10倍左右几乎是不可能的[2]。因此,研究如何有效地提高电源使用率就变得非常重要。从硬件设计的角度来说,目前主要通过以下方法来研究降低系统功耗的技术;使用更大规模的VLSI组件集成技术来降低电容;提供多种时钟频率;降低工作电压。

本文主要从软件的角度来分析研究降低移动设备功耗的机制与策略,其中包括系统工作的功耗模式、在嵌入式操作系统中使用功耗管理模块以及考虑终端能够在相同电池容量的情况下运行更长的时间。这对于满足普及计算终端的移动性和便携性等特征起着至着重要的作用。

一、系统工作功耗模式

1.硬件特性

为了满足嵌入式应用的低功耗需求,CPU外围设备大都考虑了低功耗特性,并提供了可编程控制的多种功耗工作模式。

对于硬件设备,如果提供了多种功耗工作模式,并能够通过软件编程的方法来实现工作模式之前的切换,就称该硬件设备为可编程功耗管理的设备。

可编程功耗管理设备的目的在于提供功耗可以变化的工作模式。就CPU来说,为达到低功耗目的,提供了多种功耗管理机制,如:

*允许停止CPU时钟;

*能够工作于多种时钟频率;

*CPU中的模块能够被单独停止工作。

在DragonBall系列芯片MC68VZ328中,为适应PDA和智能电话等移动设备的需要,就采用了如下低功耗处理措施:采用静态的HCMOS技术;具有低功耗的停止特性;各模块可以被单独停止工作;低功耗控制模式;可工作于DC到33MHz的处理器时钟频率;可工作于2.7~3.3V的工作电压。

对于外围设备,也大都提供了多种功耗工作模式,如:

*睡眠模式,能够维持设备的基本功能;

*设备内部时钟保持运行状态的设备掉电模式,设备不能提供正常的功能;

*设备内部时钟停止运行的设备掉电模式,设备不能提供正常的功能。

在RTL8019网卡中,就提供了三种级别的工作功耗模式;睡眠模式;网卡内部时钟保持运行状态的低功耗模式和网卡内部时钟停止运行的低功耗模式。

系统中的设备具有可编程功耗管理特性,是对系统进行功耗管的基础。本文参考Intel和Microsoft公司制订的高级电源管理规范-Advanced Power Management BIOS Interface Specification,在嵌入式领域中提出了系统工作的四种功耗模式-常规模式、空闲模式、休眠模式和睡眠模式。在不同的功耗模式下,系统的功耗也不同。根据系统当前的活动状况,确定合适的工作功耗模式,从而实现系统的低功耗目标。

2.功耗模式

系统工作的不同功耗模式下:常规模式、空闲模式、休眠模式和睡眠模式。

常规模式:通常的工作模式,系统的大部分操作都在此模式下运行。在该模式下,CPU Core(指执行任何计算相关操作都需要上电的硬件内容,包括CPU时钟、Cache、系统总线和系统定时器)和所有的外部设备都处于上电状态,系统的功耗最大,性能也最好。

空闲模式:在该模式下,CPU Core被关闭,而大多数外部设备则处于活动状态。该状态是外部设备需要处于活动状态,而CPU则不需要处于活动状态时的一种低功耗模式。如,终端的LCD需要显示内容,但该内容在显示过程中是不需要发生变化的静态显示就属于这种情况。在该模式下,没有活动的任务,所有任务都处于挂起或停止状态。对于外部设备,则仍处于活动状态,以便接收内部或外部的事件。

休眠模式:在该模式下,CPU中的大多数模块和大多数外部设备处于掉电状态(如LCD和LCD控制器);而CPU Core则仍处于运行状态。该模式下,仍保持处理一些对系统应用来说是无效的外部事件而不需要切换功耗模式的能力,如用户操作了触摸屏上对应用来说是无效的输入区域。

睡眠模式:功耗最低的模式,只有系统实时时钟处于活动状态,CPU Core和所有的外部设备都处于掉电模式。在该模式下,只有外部中断能够唤醒系统,并使系统首先进入休眠模式,然后再进入常规模式。

3.各种功耗模式之间的关系

各种功耗模式之间的转换关系如图1所示。

图1中显示了四种功耗模式之间的转换关系。上电后,系统工作于常规模式。如果有任务处于活动状态或是有外部事件发生,系统将保持该模式;否则,系统将执行idle任务,该任务把系统从常规模式切换到空闲模式。

在空闲模式下,系统将启动idle定时器。当该定时器到期时,系统将进入常规模式,以进行超时处理,把系统切换到休眠模式;否则,如果有外部事件发生,系统将再次进入常规模式。

在休眠模式下,如果有外部事件发生,系统将回到常规模式。如果系统存在对应用来说是无效的外部事件,系统将保持在该模式;否则,系统将进入睡眠模式,直到出现外部中断,将使系统首先回到休眠模式,然后再回到常规模式。

对于四种功耗模式,常规模式的功耗最高,空闲模式和休眠模式次之,睡眠模式最低。由于降低功耗主要是通过关掉一些暂时不用的设备来实现的,并且高功耗模式到低功耗模式的切换还需要保存一些必要的数据,因此,工作模式的功耗越低,要恢复到常规模式的时间也越长。

二、嵌入式操作系统中电源管理机制分析

1.嵌入式操作系统体系结构

嵌入式实时操作系统Delta OS是电子科技大学微机所经过“八五”和“九五”项目研究的结果,其体系结构如图2所示。

任务管理主要实现任务的创建、删除、挂起、解挂等功能。内存管理可以根据任务不同的需要从存储区中分配或释放内存块。任务间通信模块提供了信箱和互斥信号量机制,以实现任务间通信、同步和互斥以及临界资源的管理。中断管理完成中断处理的前导和后续部分,方便用户编写中断处理程序。时钟管理实现系统时间的维护、定时事件的处理、睡眠、有限等待任务的处理、任务时间片的计算以及定时管理功能。BSP(Board Support Package)为板级支持包,用来抽象具体的硬件设备。此外,系统中还包含有GUI、浏览器、文件系统和网络等组件。

为了满足普及计算终端的应用,需要在DeltaOS中添加电源管理模块,为应用提供电源管理机制。

2.电源管理模块

电源管理模块的目的在于根据可编程电源管理的设备提供的电源管理机制,提供用来实现各种功耗模式的应用编程接口。

如果嵌入式操作系统提供了实现各种功耗工作模式的应用编程接口,就称该操作系统为具有电源管理功能的操作系统,也称该操作系统具有电源管理机制。

电源管理模块主要提供以下功能:查询电源管理方面的信息,设备系统工作的功耗模式。对于电源管理方面的信息,主要包含系统当前工作的功耗模式和终端设备所使用的电源的容量等信息,为系统进行功耗管理提供服务。

如果系统由高功耗工作模式切换到低功耗工作模式,首先,发送表示目标功耗模式的事件,让系统能够根据该事件对外围设备的功耗进行管理;然后,执行关中断,保存系统数据,主要是保存寄存器的数据,以进行系统恢复;其次,设备与目标功耗模式对应的硬件特性,让系统进入目标功耗模式;最后,是开中断。其主要操作如图3所示。

若是由低功耗模式切换到高功耗模式,需要对保存的数据进行恢复,使系统恢复到高功耗工作模式,主要操作如图4的示。

3.对外围设备的功耗管理

外围设备的功耗管理是根据系统在进入特定功耗模式时所发出的事件进入设备相应的功耗模式来实现的。

系统维护一个外围设备表,在设备进行初始化的时候,通过系统提供的注册函数把相关信息注册到外围设备表中。注册信息主要包括设备的ID和用来对特定设备进行功耗管理的处理函数。当系统工作的功耗模式发生变化时,将产生能够表示目标功耗模式的事件,然后系统把相应事件传送给外围设备表中处理设备功耗模式变化的回调函数,回调函数对应的特定设备的功耗处理函数根据事件类型,使设备工作于相应的功耗模式,处理流程如图5所示。

图6中,说明了LCD作为外部设备的工作功耗管理情况同系统功耗之间的关系。当系统工作于常规模式或空闲模式时,LCD正常显示需要显示的内容;若系统工作于休眠模式和睡眠模式,则LCD处于黑屏状态,以降低系统功耗。在该种情况下,LCD的功耗管理同系统工作模式密切相关,由系统工作的功耗模式来确定。

系统中采用回调函数的方法来管理外围设备的功耗管理,把系统功耗模式的管理同外围设备的功耗管理相分离,使系统显得非常灵活,并易于扩展,能够满足不同应用的需要。

三、系统电源管理策略分析

1.idle任务

idle任务是整个多任务系统中优先级最低的任务,只有在其它应用任务都被阻塞的情况下才会执行。在通常情况下,idle任务本身不做什么具体的处理工作;但是,为了维护整个系统的运转,idle任务必不可少。

在功耗管理中,idle任务则可以发挥重要作用。当系统进入idle任务时,idle任务使系统进入空闲功耗工作模式,并启动idle定时器。当该定时器到期时,系统将进入常规模式,以进行超时处理,把系统切换到休眠功耗工作模式。

2.功耗模式的自动控制

系统在运行过程中,能够根据系统的工作状态,自动进行功耗管理,从而使系统工作于与系统状态相适用的功耗模式。

当系统中没有活动时,idle任务得到执行,系统自动进入空闲功耗工作模式;如果有外部事件发生,系统将回到常规模式。系统在空闲功耗模式的工作时间超过预先设定的值时,系统自动进入休眠功耗工作模式;如果发生了需要系统应用处理的外部事件,系统将自动回到常规模式。在休眠功耗模式下,如果没有发生需要系统处理的事件,系统则自动进入睡眠功耗工作模式。在睡眠模式下,若发生外部事件,系统将回到休眠模式;若该事件对系统来说为有效事件,系统将进入常规模式。

对于外部设备来说,当系统进入或退出某种功耗模式时,根据系统维护的外围设备表,执行对应于具体设备的功耗管理控制程序,从而使外围设备工作于与系统状态相适应的功耗工作模式。

3.应用对功耗模式的控制

为满足系统功耗管理的灵活性,系统提供了相应的机制来确保应用对功耗模式的直接控制,主要包括以下三个方面的内容:

*在设计应用程序时,可以根据需要,设备系统的功耗工作模式;

*可以指定进入休眠模式的系统空闲时间,即空闲模式切换到休眠模式的系统空闲时间;

*可以使能或不使能某种特定的功耗模式。

4.进一步的考虑

在同一个系统中,不同的应用对系统资源的需求也不同。如计算器,该应用不需要网络设备,甚至也不要求系统的处理速度有多快。但对于网络浏览器来说,需要的资源就相对要求高一些:不但需要网络设备,还要求系统的处理速度比较快。

因此,如果能够考虑不同应用的具体需求,采用不同的功耗管理方案,将对系统的功耗管理产生重要作用。

为此,可以采用一个专门的任务-电源管理任务,来根据应用对资源的需求情况进行相应的功耗管理。启动应用的时候,由应用把需要的资源情况(对处理器要求,需要的外围设备等)发送给电源管理任务;由电源管理任务对处理器进行降频或升频处理,把不需要的设备降低到最低功耗模式,把需要的设备恢复到正常工作功耗模式。

通过电源管理任务和应用设计的资源需求考虑,能够进一步降低系统中不必要的功耗,使功耗能够与系统的真实需要相一致。

结束语

本文根据硬件提供的电源管理机制,参考Intel和Microsoft公司制订的高级电源管理规范,在嵌入式领域中提出了系统工作的四种功耗模式;常规模式、空闲模式、休眠模式和睡瞩模式,并通过在嵌入式操作系统中使用电源管理模式,为应用提供有效的电源管理机制,同时还分析了基于操作系统电源管理机制的电源管理策略,从而实现系统的低功耗目的。

本文对低功耗终端技术的分析研究是基于终端硬件机制和对应的嵌入式操作系统来进行的,局限于终端本身的考虑。如果能够从分布式技术的观点来考虑,对降低终端功耗也将有重要影响,如负载分布技术或采用移动代理技术。对这些技术的研究将在后续的工作中进行。

通过本文的研究工作,对设计具有电源管理特性的嵌入式操作系统和低功耗应用以及开发移动设备都具有重要的指导意义。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Intel Skylake新架构的秘密:逆超线程.单核猛增