嵌入式Linux的低功耗策略研究(2)

2008-02-23 05:28:07来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



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应用。




标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: uC/OS-II在ARM系统上的移植和实现

下一篇: 嵌入式频率计的设计