资讯详情

嵌入式Linux系统的动态电源管理技 - 嵌入式操作系统 - 电子发烧友网

嵌入式Linux动态电源管理技术系统

通过用户层策略和核心提供管理功能交互,实时调整电源参数,满足系统实时应用的需要,允许电源管理参数在短时间内或任务运行在低电源需求中,可以频繁、低延迟调整,实现更精细、更智能的电源管理。

1 动态电源管理原理

CMOS电路的总功耗是活动功耗和静态功耗的总和。当电路工作或逻辑状态转换时,会产生活动功耗,晶体管泄漏电流会导致静态功耗:

7d0096cdbb1d2094e8f342d46317975c.png

C型为电容,fc开关频率,Vdd电源电压,IQ为漏电流。C·Vdd·fc活动功耗;VddIQ静态功耗。在实现操作系统级电源管理设计时,重点是活动功耗。管理活动功耗的方法有几种:

①电压/时钟调节。通过降低电压和时钟来降低活动功耗和静态功耗。

②选择时钟。停止电路时钟,即设置fc为O,让PacTIve为0。断开时钟从未使用的电路模块,以降低活动功耗。CPU有闲置或停止指令,有些处理器也可以通过门控关闭CPU时钟模块,如高速缓存,DMA外设等。

③选择电源供应。断开电路中未使用的模块电源。这种方法需要考虑恢复模块的成本。

断开未使用模块的时钟和电源供应可以减少电源消耗,但可以正确预测硬件模块的空闲时间。由于硬件模块时钟和电源的重新能量会造成一定的延迟,不正确的预测会导致性能下降。

从公式(1)可以看出,降压对功耗的贡献是两次方;降时钟也可以降低功耗,但也可以降低性能,延长同一任务的执行时间。设2.0 V高压下的能量消耗为E=P高·T,则1.0 V低压能耗E低=P低·2T(实践中频率近似线性依赖电压)=8P低。综合上式可以得出:E高=4E低,所以,选择满足性能所需的最低时钟频率,在时钟频率和各种系统部件运行电压要求范围内,设定最低的电源电压,将会大量减少系统功耗。完成任务所需的能量可节省75%。

2 支持动态电源管理的硬件平台

硬件支持需要调整电压和频率来降低系统活动功耗。SoC系统一般有多个执行单元,如PM(电源管理)模块,OSC(片上晶振)模块,PLL(相环)模块,CPU核以及CPU其他模块统称为外围模块(例如1,CD控制器、UART、SDRAM控制器等)。CPU高频时钟主要由PLL提供,同时PLL也为外围模块和SoC总线提供其他频率时钟。一般SoC有一些分频器和乘法器可以控制这些时钟。PM模块主要是管理系统的供电状态。一般有自己的低频、高精度晶体、振动,以维持一个RTC时钟、RTC定时器和中断控制单元。中断控制单元RTC定时器和外部设备可以唤醒悬挂SoC系统。以下是一种广泛应用于手持设备的设备TI0MAPl610处理器为例。

①时钟模块。OMAPl610提供数字相控锁环(DPLL),将外频或晶振输入转化为高频供应OMAP 3.2核等片上设备。操作DPLL控制寄存器DPLLl_CTL_REG就可以设置DPLL输出时钟,辅以设置时钟复用寄存器(MUX)和时钟控制寄存器ARM_CKCTL,就能控制MPU和DSP运行频率,MPU、DSP外设时钟,以及LCD刷新时钟,TC_CK时钟(Trafflc Control Clock)等。

②电源管理模块。OMAPl610集成超低功耗控制模块(ULPD),用以控制OMAP3.2时钟和控制OMAPl610进出多种电源管理模式。ULPD控制寄存器ULPD_POWER_CTRL,可设置处理器电压和管理操作模式。

3 嵌入式Linux实现动态电源管理软件

嵌入式Linux已广泛应用于电源功耗敏感的嵌入式设备,特别是移动手持设备;因此,嵌入式电源管理技术是高效精细的设计Linux成功开发的关键技术之一。

3.动态电源管理实现原理

系统运行在几种常见的不同状态下,有不同的电源水平要求,其中节能机会丰富。状态转换如图1所示。

①系统在任务中运行 其中一个任务状态可以响应中断进入中断处理,可以进入空闲或睡眠状态。不同的任务需要不同的电源级别,如播放MP3可以降低处理器的频率,而在线互动游戏需要处理器全速运行,因此DPM电源管理服务需要在不同的任务中提供。

②当系统进入空闲时,可以中断唤醒并处理中断:DPM提供受管理的空闲模式,可以更智能地节省电源。

③中断后,系统可以进入空闲状态,也可以从中断回到任务状态。

④在任务状态下,系统可以进入睡眠模式。系统可以挂起来RAM或者在其他存储器中,关闭外设,以最大限度地节省电力。通过特定事件(如定义)UART中断)要求系统退出睡眠模式。

综上所述,动态电源管理可分为三类:平台悬挂/恢复、设备电源管理和平台动态管理。平台悬挂/恢复的目标是改变管理中非常常见的重大电源状态,以减少产品和设备的长期空闲时间源消耗。设备电源管理用于关断/恢复平台中的设备(平台挂起/恢复以及动态管理中均要用到);而平台动态管理目标在于频繁发生、更高粒度的电源状态改变范围之内的管理。系统运行的任务可分为普通任务和功率监控任务。

前者电源状态为DPM_NO_STATE,不进行电源管理;后者对功率敏感,调度时(见图1)可通过DPM设置其电源管理状态,需要在不同的电源水平上运行。本文重点介绍了平台动态电源管理和设备电源管理,并将设备电源管理视为动态电源管理的组成部分。

3.2平台动态电源管理设计

在Linux在架构下实现电源管理核心模块需要实现应用层和操作系统的接口,为多个硬件平台提供通用电源管理逻辑控制框架的硬件无关层,以及管理特定硬件电源控制接口的平台相关电源控制层。

3.2.1 内核模块控制模型

模型主要由操作点、管理类、管理策略等组成。

①平台硬件相关参数与电源管理操作点对应。例如,TIOMAPl610参考开发板有多个参数:CPU电压、DPLL频率控制(通过倍频器和分频器两个参数)CPU频率控制、TC交通控制器,外部设备控制,DSP运行频率、DSP的MMU单元频率和LCD刷新频率。如果使用TI的DSP代码,后四个参数不可控,均使用默认值,如表1所列。

其中,“192 MHz—1.5 V1操作点参数 500”表示OMAP3.2核心电压为1 500 mV;“16”表示DPLL频率控制12 MHz晶体振动输入频率为16倍;1表示为1;1表示OMAP3.2核心分频为1,因此在192年运行 MHz)“2”表示TC(交通控制器)分频为2(所以它运行在96 MHz).

②类:多个操作点构成管理类。

③策略:多种或一种组成策略。

一般可以简化系统模型,直接DPM战略映射在系统运行状态下DPM操作点,如表2所列。可以考虑复杂点系统DPM战略映射到多操作点DPM管理类,然后根据操作状态切换选择管理类中满足约束的第一个操作点。

表2中的策略映射到四个操作点,分别对应sleep”、 “idle”、“task-1”、“task四种电源状态。除非用户更改,否则系统fork默认的任务默认运行DPM-TASK-STATE状态,对应表2task其操作点为192 MHz-1.5 V。

通过这种结构,电源管理系统将系统创建的任务与具体的电源管理硬件单元参数连接起来,为任务间的精细电源管理提供了框架。

3.2.实现2个核心功能

如图2所示,DPM软件实现可分为应用层、核心层、硬件设备等部分。核心层可分为接口层、硬件无关层和核心硬件相关层(图2中的虚线部分),可分为以下几个方面。

首先,用户层可以通过内核提供sysfs文件系统和设备驱动模型(LDM)接口用于电源管理。DPM实现还提供Proc

接口实现电源管理命令;用户程序也可以通过增加系统调用接口来更容易调用DPM功能。

通过修改任务切换宏switch_tO,添加dpm_set_OS(task_dpm_ state)接口,然后电源管理引擎将当前任务电源状态设置为硬件参数。

二是内核硬件无关层提供电源管理逻辑控制框架。电源管理引擎主要实现API调用,选择操作点,提供操作点设置的同步和异步逻辑。

通过设备电源管理模块,还实现了设备驱动约束LDM提供吊装和恢复控制的接口管理设备时钟和电源。 设备时钟电源关层主要管理各种总线和设备时钟电源参数。

3.2.3 设备电源管理和驱动约束

DPM通过LDM可对设备进行电源管理。LDM中device_driver该结构具有设备悬挂和恢复等回调函数,device结构有驱动约束。需要在设备初始化时使用注册函数向相应系统总线注册该设备。例如,简化后12C的LDM相关参数如下:

I2C驱动注册到MPU公有TI外围总线:driver_reg-ister(&omap_i2c_driver)platform_device_register(&omap_i2c_device)。在驱动程序中实现悬挂和恢复函数:omap_i2c_controller_suspen(&omap_i2c_device),omap_i2c_con-troller_resume(&omap_i2c_deviee)。这样,所有注册到系统的设备都在那里sysfs都有管理接口。

设备的电源状态可以通过这些接口进行操作。在各种情况下,该接口可用于悬挂设备,如应用程序显式悬挂应用中不需要的设备;所有设备应在平台悬挂前悬挂;当DPM将系统设置为设备不兼容时,应悬挂设备等。其中DPM在管理设备电源状态时,还提供设备驱动约束检查(频率相关)。例如,当系统电源状态发生变化并准备在新的操作点运行时,驱动约束检查该状态是否符合设备的正常运行。如果不满意,当前操作点force属性设置为1,设备首先是LD回调函数关断(或将设备置于和此时PLL相应的挂起状态);如果满足条件,则利用设备驱动中实现的调节函数转到新状态。

驱动约束还用于限制DPM操作方式。当没有设备被使用时,约束才允许DPM将系统转到低电源空闲状态。

4 总 结

DPM技术通过内核模块的方式实现任务级别电源管理、实现了有效的设备电源管理,满足了嵌入式Linux的需求,补充了基于桌面系统APM和APCI电源管理技术的不足。实践证明,DPM对嵌入式系统,尤其是移动终端,能够起到很好的节能效果。

当然,动态电源管理系统还有待于进一步完善。例如:①可以根据硬件和软件收集系统负载状态,使用Markov,链等手段准确预测电源状态,从而设计出更智能、更有效的状态切换管理策略;②电源管理和实时性能要求之间的复杂关系还需处理等等。

标签: utc9012晶体管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台