下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机应用Computer Applications自动化技术与应用2012 年第 31 卷第 6 期高性能嵌入式终端节能技术研究* 刘亚秋, 张乾龙, 景维鹏, 边 莉 (东北林业大学 信息与计算机工程学院,黑龙江 哈尔滨 150040) 摘 要:为提高嵌入式终端处理能力,需要使用高性能处理芯片,如此会导致功耗提高。本文在嵌入式终端设备上,以嵌入式Linux 操作系统为例,修改启动加载程序Bootloader、Linux 内核,实现了动态电源管理技术。通过实验验证,动态电源管理技术在嵌入式终端上的节能效果显著。 关键词:Linux;动态电源管理;嵌入式系统;节能; 中图分类号:TP334.
2、1 文献标识码:B文章编号:1003-7241(2012)06-0014-04 Study of Energy-Saving Technologies in High-Performance Embedded TerminalsLIU Ya-qiu, ZHANG Qian-long, JING Wei-peng, BIAN Li( Department of Information and Computer Engineering, Northeast Forestry University, Harbin 150040 China )Abstract: In order to improve
3、 the processing capability of the embedded terminal, high-performance processing chip is needed, it will cause the improvement of the power consumption.In this paper, embedded Linux operating system is used in embedded terminal and dynamic power management technology is achieved by modification of B
4、ootloader and the linux kernel. Experiments show that dynamic power management technology saving a lot of energy in embedded system.Key words:Linux; dynamic power management; embedded system; saving energy1引言 目前, 各种嵌入式设备为我们的生活带来了方便, Bootloader、嵌入式Linux 内核,完全实现了动态电源管 理技术, 最大程度延长终端寿命。 其功能越来越强大, 随之而来电源
5、问题成为大家关注的焦点。目前嵌入式终端都采用电池供电, 其寿命受电池寿命约束, 而电池技术远远滞后于处理器技术的发展速度1。例如笔记本电脑充满电后的使用时间平均在六小 时左右, 大屏幕智能手机的工作时间一般不超过两天。因此如何降低2动态电源管理介绍 动态电源管理(Dynamic Power Management,DPM) 通过管理系统负载, 调节系统状态达到节能目的, 这些调节是在系统运行时动态进行的, 而不像传统电源管理技术一样需要人工干预。DP (Dynamic Voltage Scaling,DVS)技术,即在系统空闲时调节供电电压与处理器运行频率达到节能目的。类似的理念可以应用到外围设
6、备, 即当外围设备处于空闲状态时, 降低其运行速度、供电电压, 直至将其关闭等。文献2,3阐述的电源管理技术, 事实上就是APM,只实现了设备的睡眠与重启等功能, 不能在系统运行时动态的管理各个设备状态, 从而无法将功耗最小化。 2.1 DPM原理探究 嵌入式终端功耗, 延长其使用寿命成为嵌入式系统进一步发展的瓶颈。 本文以应用十分广泛的嵌入式高性能ARM 架构芯片S3C2440 为例,从软件设计角度出发,以嵌入式Linux 操作系统为例, 修改嵌入式终端的启动加载程序 M 包括动态电压调节* 基金项目: 本文受国家科技支撑计划课题( 编号 2012 BAD 32 B 04 ), 东北林业大学
7、研究生科技创新基金资助 收稿日期:2012-02-28 14 | Techniques ofAutomation &Applicaions 计算机应用Computer Applications自动化技术与应用2012 年第 31 卷第 6 期CMOS 数字电路的电路功耗构成有三部分, 分别是静态功耗、动态功耗、短路功耗。相对动态功耗而言, 短路功耗与静态功耗可与忽略不计。动态功耗是指, 电容充放电功耗和短路功耗, 是由电路的翻转造成的, 其 计算公式为: tst r0, #0x02 beq IsSleep /* 若是睡眠唤醒则跳转*/ ldr r0, =0x560000B4 /* 开始唤醒 *
8、/ mov r1, #0x2 str r1, r0 subs r1, r1, #1 ECeff V2f(1)clkE 为CMOS 电路动态功耗, Ceff 为C M O S 芯片的负mov pc, r1 IsSleep: /* 跳回睡眠前位置继续执行*/ 载电容,V 是电路供电电压, f 是C M O S 芯片时钟频 clk率。从式(1) 可见,CMOS 电路中动态功耗与电路工作频率成线性关系, 与电路工作电压呈二次平方关系。因此可以想到降低系统功耗的方法: 在系统允许情况下, 降低信号频率与工作电压。这两种方法可以结合使用, 例如在系统无负载的情况下,关闭不工作的负载;在系统工 作负载不高的
9、情况下, 降低CPU 工作电压或频率。 3.2 DPM操作点设定 本文以ARM 架构芯片S3C2440 为例进行DPM 设计。操作点可以由一些参数描述:CPIU 核心电压、CPU频率和bus 频率、外设状态等。DPM 系统可以由一组规则和过程定义, 即当电源管理发生时将系统从一个操作点无缝切换到另一个。本文设定 6 个操作点, 实 现动态选择操作点, 如表 1 所示。 3DPM 底层代码实现 DPM 提供一种操作系统级别电源管理机制, 即在系统运行时根据负载、工作量的大小, 在实时调整系统参数的同时满足系统工作最低要求, 从而实现细粒度、智能化的电源管理, 以达到最大可能节能的目的4 。DPM
10、 涉及几个重要概念: 操作点, 即电源管理的一组配置数据, 其一旦确定, 能源消耗率和系统性能即确定; 操作状态, 即系统运行状态; 操作策略, 表 1DPM 部分操作点即电源管理的高级抽象, 负责把操作状态映射到操作点上; 操作类, 代表一组操作点, 状态切换时操作策略选取其中满足状态的第一个操作点作为有效操作点。DPM 是一种典型的按照机制与策略分开的模式设计的, 它由底层启动加载程序、linux 内核、外设驱动程序相配合实现底层DPM 机制,而所有策略完全由用户空间的应用程序去实现。 3.1 修改启动加载程序 为实现嵌入式终端支持睡眠状态需修改代码。当上层应用程序发出系统休眠指令,lin
11、ux内核会保存当前工作状态以备实现唤醒操作。当RTC 时钟定时唤醒系统时,CPU 从睡眠模式唤醒的过程与reset 系统类似,若错误执行reset代码将导致系统无法正常工作而死机,为解决此问题特修改启动加载程序Bootloader(Uboot 为例) 源码。修改Bootloader 中Start.S,在SDRAM 初始化 后加入以下代码: 1. Idle 操作点下断开CPU 内核时钟, 仅提供时钟给HCLK 、PCL K, Sleep 操作点下则断开所有时钟; 2. PLL VCO 根据 S3C2440datasheet 设定。 3. CAS latency: 在READ 命令触发到第一次数据
12、 输出之间的时间, 后面数字代表时钟周期的个数。 3.3 修改嵌入式linux内核 为实现DPM, 在内核层需要修改大量代码。 (1) 设置RTC 唤醒中断源 S3C2440 处理器睡眠模式的唤醒信号需要由外部中断EINT15:0或RTC 闹铃中断产生。根据设计需求,使用RTC 定时中断作为唤醒中断源, 并在DPM 运行期间动态调整RTC 定时时间。需要修改Linux 内核代码(本文以Linux2.6.30 为例)。 arch/arm/plat-s3c24xx/irq.c 如下: unsigned long s3c_irqwake_intallow=1L (IRQ_RTC - IRQ_EINT
13、0) | 0xfL; ldr r1,=0x560000B4 ldr r0, r1 /* 检查是否是睡眠唤醒*/ Techniques of Automation& Applications | 15 计算机应用Computer Applications自动化技术与应用2012 年第 31 卷第 6 期/* 所 有 EINT 中 断 */ dpm_active_class = NULL; /* 对于一组操作点,从列表中找到第一个满足约束的操作点, 找到了选择, 否则切换失败*/ else int i; for (i = 0; i classoptstate.class- nops; i+) if
14、(dpm_check_constraints(policy-classoptstate. class-opsi) opt= policy-classoptstate.class-opsi; break; dpm_active_class = policy-classoptstate.class; return opt; 3.4.2 DPM操作点实现 (1) DPM 操作点结构体实现 /* 操作点结构体*/ struct dpm_opt unsigned long s3c_irqwake_intmask =0xffffffffL; unsigned long s3c_irqwake_eintal
15、low 0x0000fff0L; unsigned long s3c_irqwake_eintmask 0xffffffffL; (2) 外设驱动程序电源管理支持 =嵌入式终端电源管理DPM 必须要修改外设驱动程序,首先通过platform_device_register 函数将设备连接到总线,然后通过platform_driver_register函数绑定总线上设备与操作函数集, 进而利用系统的总线驱动方法进入休眠89。核心的休眠和恢复方法定义在数据结构struct bus_type中。 struct bus_type int (*suspend)(struct device *dev, p
16、m_message_t state); int (*suspend_late)(struct device *dev, pm_message_t state); char*name;/* 操作点名称 */ struct list_head list;/* 操作点链表头指针 */ dpm_md_pp_t ppDPM_PP_NBR;/* 初始化参数 */ int (*resume_early)(struct device *dev); int (*resume)(struct device *dev); 3.4 内核框架代码 内核框架代码是DPM 核心,包括dpm_choose_ opt ( 寻找
17、适当操作点)、d pm_ set_ opt ( 使操作点生效)、dpm_enter_state(把某状态置为新状态)、dpm_resync(让新状态生效)、dpm_set_os(切换到新状态运行)等操作函数。限于篇幅只介绍函数dpm_choose_opt 的实现过程及D P M 重要概念的结构体实现。 3.4.1 函数dpm_choose_opt()介绍 dpm_choose_opt(struct dpm_policy *policy,int state) struct dpm_md_opt 参数*/ int constrained; md_opt;/* 与硬件相关/* 约束条件*/* 统计数
18、据 */ struct dpm_stats stats; ; 用户层调用函数dpm_create_opt()可以创建新操作点。(2)DPM 类的实现 /* 一组被映射到某操作状态的操作点(即类)的内部实现*/ struct dpm_class char*name;/* 类名 */ /* 类链表头指针*/ /* 被选中的操作点 */struct list_head list; struct dpm_opt *opt;struct dpm_opt *opt = NULL; /* 对于单个操作点:是否满足约束条件?满足则选择并切换, 否则判断是否要强制转换。如果是则转换, 否则切换失败*/ if(p
19、olicy-classoptstate.opt) opt = policy-classoptstate.opt; if (opt-flags & DPM_OP_FORCE) dpm_force_off_constrainers(opt); else if (! dpm_check_constraints(opt) opt = NULL; struct dpm_stats; stats;/* 统计数据*/ 用户层调用函数dpm_create_class ()可以创建新操作点类。 (3) DPM 策略的实现 /* 内部电源管理策略实现*/ struct dpm_policy char*name;/
20、* 策略名 */* 策略struct list_head list;16 | Techniques ofAutomation &Applicaions 计算机应用Computer Applications自动化技术与应用2012 年第 31 卷第 6 期5实验结果与分析 实验平台是天嵌公司嵌入式开发板TQ2440,通过将 链表头指针*/ struct dpm_class *classesDPM_STATES; /* 策略组 */ 5V 直流稳压器改为电池供电( 三节 1.5V 串联), 测试对比, 在电池电量相同、工作任务相同( 播放同一个MP3 歌曲,间断五分钟后继续播放,如此重复)情况下,
21、对比使用DPM 策略及不使用DPM 策略下其工作寿命, 以此验 证DPM 策略有效性。实验结果如表 2 所示。 struct dpm_stats; stats;/* 统计数据 */用户层调用函数dpm_create_policy()可以创建新的 DPM 策略 表 2DPM 策略有效性实验数据4DPM 用户层管理策略实现采用DPM 时, 开发板工作在正常状态时可以动态选择不同工作点, 调节CPU 工作电压及频率; 当开发板无任务时, 采用可变阈值的DPM 超时策略改变系统工作状态; 对于不采用DPM 策略的开发板只有正常工作状态, 且不支持动态调整CPU 电压及频率, 故其寿命有所降低。数据对比如图 4, 采用DPM 策略的开发板工作 寿命是不采用DPM 策略的 121% 。 6结束语 本文基于ARM9 架构处理芯片S3C2440 、嵌入式 Linux 操作系统, 设计适合本系统的DPM 操作点, 修改启动加载程序、Linux 内核等实现了动态电源管理, 实验结果证明动态电源管理技术在高性能嵌入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共青科技职业学院《运输系统规划与设计》2023-2024学年第一学期期末试卷
- 《财经公务文书》课件
- 粮食安全课件
- 甘肃中医药大学《操作系统应用》2023-2024学年第一学期期末试卷
- 人事专员培训课件
- 七年级道德与法治上册第一单元成长的节拍第三课发现自己第一课时误区警示新人教版
- 三年级数学下册一两位数乘两位数第5课时用两步连乘计算解决实际问题教案苏教版
- 三年级科学下册第三单元固体和液体5使沉在水里的物体浮起来教案苏教版
- 九年级化学上册第六单元碳和碳的氧化物课题1金刚石石墨和C60第2课时单质碳的化学性质导学案新版新人教版
- 小学生请假制度
- 2025年国务院发展研究中心信息中心招聘2人高频重点提升(共500题)附带答案详解
- 【MOOC期末】《形势与政策》(北京科技大学)期末慕课答案
- 2023年全国职业院校技能大赛赛项-ZZ019 智能财税基本技能赛题 - 模块三
- 冠心病中西医诊疗课件
- 管理ABC-干嘉伟(美团网COO)
- 七年级英语下册任务型阅读单元测试题(含答案)(word)
- 解析电力施工项目的信息化管理
- 火炬介绍 音速火炬等
- 制剂申请书(共16页)
- 对县委常委班子及成员批评意见范文
- 城市轨道交通财政补贴机制研究——基于成本规制视角[精选]
评论
0/150
提交评论