首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
嵌入式Linux系统的低功耗策略研究
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-08-01  

4 减少事件

通常CPU的定时中断间隔为1 ms,Linux会频繁使CPU置于空闲模式,并一直维持到被中断唤醒。在这种情况下,最有可能唤醒CPU中断的是定时器中断本身。即使所有其他线程被阻塞,在其他中断、内部事件及长时间延迟之前,定时器中断也会以每秒l 00()次的频率把CPU从空闲模式中唤醒,以运行调度程序。就算调度程序确定所有线路都被阻塞,并很快把CPU回复到空闲模式,这样频繁操作也会浪费大量电源。因此,应尽可能长时间地把CPU置于空闲模式,而减少事件是解决这个问题的有效途径。通过分析代码和系统要求,以决定是否能改变处理中断的方式实现。例如,可以在进入空闲模式前关闭时隙中断信号,只有再次出现中断信号时才被唤醒。不过,这种做法通常不太合适。尽管多数阻塞的线程可以直接或间接等待外部中断,有些还依赖于定时中断,如一个驱动器会在等待外设时睡眠500 ms,这时空闲模式下如果完全关闭系统定时器,可能意味着线路不能按时恢复工作。

Linux最好能为调度程序进行可变超时设定。Lintux知道每个线程无法确定等待的是外部还是内部事件,或者计划在某特定时间再次运行。Linux可算出第一个线程预定何时运行,并相应地在CPU置于空闲模式之前设定定时器工作。可变超时设定不会对调度程序造成很大的负担,但却能节省电源和处理时间。

可变计划超时限定只是减少事件的一种方法,存储器直接存取(DMA)也可让CPU长时间处于空闲模式,即使数据正在发送至外设或从外设收取。所以只要可能,都应在外围驱动器中使用DMA,省电效果相当令人满意。

例如英特尔公司StrongARM CPU串口接收FIF0时,大约每收到8个字节发生1次中断,在115 2OO bps.速度下,发送到这个端口的11 KB脉冲数据会引起CPU内核每秒中断l 500次,很可能使其从空闲模式中唤醒;但如果实际上不需要在这些小的8字节设备中处理数据,浪费是很惊人的。DMA最好与大容量缓冲器一起使用,以使中断发生的水平更加容易管理,或许是每秒10次或l00次,让CPU在两次中断之间空闲。事实证明,在这些场合应用DMA能减少使用率达20%,可降低CPU功耗,并提高供其他线程使用的CPU带宽。

5 控制CPU的性能

CPU在降低功耗方面的最新进展表明,CPU消耗的能量与驱动CPU的时钟频率以及应用其内核上的电压平方成正比。

CPU允许动态降低时钟速度。降低一半时钟速度,功耗把成比例下降。但是仅采用这种技术实现节能,还需要一些技巧.因为执行的代码可能要两倍长的时间才能完成,即使这样也不会省电。例如,板上LCD控制器需要使用一个储存在片外SDRAM中的帧缓存。当LCD控制器工作时,需要指定足够高的内存总线频率来满足显示器刷新速率的需要。在LCD不工作的情况下(例如当PDA仅作为MP3播放器使用时),降低SDRAM总线频率,可以节省整个系统的功耗。

动态降低电压是另一种做法。越来越多的CPU允许降低电压,以适应CPU时钟速度的下降,这样在降低时钟速度时也能省电。事实上,只要CPU不饱和,频率和电压就能不断减少,这样还是能完成工作,而消耗的电源总体上却比较低。

考虑到并不是所有线程都消耗同样多CPU带宽,所以即使这些方法也还是可以改进的。有效应用CPU带宽的线程,会随着CPU时钟速度下降而花更长的时间才能完成,这些线程使用分配给它们的每一个周期。另一方面,I/O线程采用分配给它的所有CPU周期,即便CPU时钟速率下降,也要用同样长的时间才能完成。例如,像很多PDA使用的PCMCIA卡接口,当数据写人快闪存储卡时,系统瓶颈不是CPU的速度,而是物理总线接口以及卡的固件为擦掉和重新编程闪存所花的时间。理想情况下,前面讨论的等待事件的技术可在这里应用,以最大程度降低功耗,但是等待时间经常变化很大,远小于操作系统运行时间,这样会影响到性能。这些驱动程序常常检测状态寄存器,此时降低时钟速度把节省一部分电源,但会对数据写入卡的时间产生轻微影响。

使用控制CPU性能的策略,要知道何时能降低时钟频率和电压而不会显著影响性能;考虑什么时候降低驱动器和应用程序的时钟速度比较难处理。这在多任务处理环境中更加富有技巧性。

6 结 论

近年来随着计算机和网络通信、消费电子合一的加速发展,嵌入式产品成为信息产业的主流。Linux在短短的十几年时间已经发展成为功能强大设计完善的操作系统之一,可运行在X86、Alpha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多种硬件平台上,而且开放源代码,并可以定制,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究上。本文在系统分析的基础上,研究了在嵌入式Linux系统中通过优化软件编写机制来降低最终产品功耗水平的方法,具有很强的实际应用意义。随着研究的深入,嵌入式Linux必把显示出其在低功耗方面的优越性,把有更多的嵌入式设备普及Linux应用。


共2页: 上一页 [1] 2 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
  相关文章
·一种嵌入式Linux平台的软硬件设
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux移植实时设备驱动程
·文档分析__嵌入式Linux在网络处
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux系统下的MiniGUI研究
·嵌入式Linux系统下图形库讲解及
·嵌入式Linux操作系统名词资源讲
·Sharp Zaurus 手持式系统是嵌入
·实时嵌入式系统的图形界面支持系
·嵌入式Linux平台的多协议路由器
·三种嵌入式操作系统的深入分析与

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!