pdk14关于节能的一些讲述

在第十四站章,i.MX31 Low-level Power Management Driver,进行了一些关于低功耗方面的叙述,也就是关于low-level PM driver的叙述。这个驱动实现了dynamic frequency scaling (DFS动态倍频)low-power modes(低功耗模式)

      DFS可以进行当cpu处于run模式时,这样可以节约能量。而Low-power modes (低功耗模式)比如 WAIT, DOZE, and STOP可以用来节省能量。

       dynamic frequency scalinglow-power modes的操作是软件通过clock controller module (CCM)这个模块来实现的。CCM有以下特性:

1、PLL控制。

2、主频更改(DFS),利用分频器更改主频和PLL scaling 锁定PLL

3、各个模块的Clock开关。

4、低功耗模式。

源代码位置在<ltib_dir>/rpm/BUILD/linux- 2.6.24 /include/asm-arm/arch-mx3/

mxc_pm.c  是所有以上实现的源代码。

crm_regs.h  CCM模块的寄存器以及bit位的定义。

mxc_pm.h   是源代码实现函数的外部声明。

       三个编程的接口(三个函数)

1、mxc_pm_intscale()   PCDR0 divider相关。

2、mxc_pm_pllscale() PLL scaling相关。

3、mxc_pm_lowpower() 进入STOP, DOZE, or WAIT模式的实现函数。

 

*******************************************

关于DVFSDynamic Voltage Frequency Scaling

Upon initialization, the DVFS driver initializes the DVFS hardware sets up driver nodes attaches to the DVFS interrupt and initializes internal data structures. When the DVFS interrupt occurs the driver checks the cause of the interrupt (lower frequency, increase frequency or emergency) and changes the CPU voltage according to translation table that is loaded into the driver.

通过初始化,DVFS driver 初始化DVFS硬件、内部数据结构,并把DVFS硬件中断和驱动绑定起来。当DVFS硬件事件发生时,driver会查询事件原因(主频太低、增加主频、或是突发事件)并且根据driver加载的表的转换改变cpu的电压。

DVFS,被自动编译进内核,所以该块不用管)

*******************************************

 

Dynamic Process Temperature Compensation (DPTC) Driver

Dptc driver 完成 DPTC电源管理功能,它可以根据处理器工作情况以及环境温度等状态通过调整供电电压来减小功耗。

DPTC硬件模块(CCM模块的一部分)通过使用四个在当前环境中测试cpu运算的参考电路来监测工作电流。

这个driver模块允许合法的用户进行DPTC监测和控制。

 

DPTC模块作为CCM的一部分被设计用来进行能量管理。他的目的是探测cpu能够运行的最小电压。他通过测量cpu得到一个事先定义好的性能值,并能产生中断当一个更高的cpu电压需要时。

driver的操作有以下这些:

1DPTC用户控件程序使能DPTC驱动

2DPTC驱动设置和使能DPTC控制器

3DPTC控制器测量ic工作情况,当需要转换到另一状态时就触发一个中断

4、当中断触发后DPTC驱动会计算新的适合的工作状态(主频值)

5、通过查表,DPTC得到新状态对应的工作电压,然后通过13783的驱动进行电压调整。

6DPTC驱动在DPTC控制器里设置新的阈值

7DPTC控制器开始新的监测。

 

 

DPTC驱动允许合法的用户去控制DPTC进行如下的特性操作:

--使能或禁止DPTC功能

当接到DPTC中断,驱动会根据监测值进行电压更新。

 

DPTC的相关代码放在/rpm/BUILD/linux- 2.6.24 /arch/arm/mach-mx3//rpm/BUILD/linux-2.6.24/arch/arm/plat-mxc里,其中:

       mach-mx3/dptc.c        DPTC table

       plat-mxc/dptc.c        DPTC driver

 

DPTC驱动是自动的被编译和加载。

 

使能和禁止DPTC可以用以下指令:

To Enable/Disable DPTC:

echo 1 > /sys/devices/platform/mxc_dptc.0/enable

echo 0 > /sys/devices/platform/mxc_dptc.0/enable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值