微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 嵌入式Linux的动态电源管理技术

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

时间:09-03 来源:互联网 点击:
3.2 平台动态电源管理设计

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

3.2.1 内核模块控制模型

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

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



其中,“192 MHz—1.5 V”操作点参数“1 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状态,对应表2中task状态,其操作点为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,设备首先被LDM回调函数关断(或将设备置于和此时PLL相应的挂起状态);如果满足条件,则利用设备驱动中实现的调节函数转到新状态。

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

4 总 结

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top