位置:51电子网 » 技术资料 » 其它综合

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

发布时间:2007/8/30 0:00:00 访问次数:475

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


1 动态电源管理原理


CMOS电路的总功耗是活动功耗与静态功耗之和。当电路工作或逻辑状态转换时会产生活动功耗,未发生转换时晶体管漏电流会造成静态功耗:



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


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


②时钟选通。停止电路时钟,即设fc为O,让Pactive为0。将时钟从不用的电路模块断开,减少活动功耗。许多CPU都有“闲置”或“停止”指令,一些处理器还可通过门控关闭非CPU时钟模块,如高速缓存、DMA外设等。



 ③电源供应选通。断开电路中不使用的模块电源供应。这种方法需要考虑重新恢复该模块的代价。


前者电源状态是DPM_NO_STATE,不作电源管理;后者对功率敏感,在被调度时(参见图1)可以通过DPM来设置其电源管理状态,要求运行在不同的电源级别。本文重点描述平台动态电源管理和设备电源管理两类,并将设备电源管理视为动态电源管理的组成部分。


1.1平台动态电源管理设计


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


1.1.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。


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


1.1.2内核功能实现


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


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


1 动态电源管理原理


CMOS电路的总功耗是活动功耗与静态功耗之和。当电路工作或逻辑状态转换时会产生活动功耗,未发生转换时晶体管漏电流会造成静态功耗:



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


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


②时钟选通。停止电路时钟,即设fc为O,让Pactive为0。将时钟从不用的电路模块断开,减少活动功耗。许多CPU都有“闲置”或“停止”指令,一些处理器还可通过门控关闭非CPU时钟模块,如高速缓存、DMA外设等。



 ③电源供应选通。断开电路中不使用的模块电源供应。这种方法需要考虑重新恢复该模块的代价。


前者电源状态是DPM_NO_STATE,不作电源管理;后者对功率敏感,在被调度时(参见图1)可以通过DPM来设置其电源管理状态,要求运行在不同的电源级别。本文重点描述平台动态电源管理和设备电源管理两类,并将设备电源管理视为动态电源管理的组成部分。


1.1平台动态电源管理设计


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


1.1.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。


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


1.1.2内核功能实现


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


-->
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!