低功耗嵌入式实现的方方面面
2009-01-20DavidKatz,RickGentile
David Katz,Rick Gentile
摘要:在嵌入式应用中,影响功耗指标的因素很多。在进行具体设计预算时,了解这些因素将有助于设计出理想的低功耗系统。本文将考虑影响功耗的不同方面,同时,这些知识对于某个特定项目的处理器选择也有帮助。
关键词:低功耗;嵌入式设计;电源;休眠;处理器唤醒
任何一个嵌入式设计都是在对电源供电结构进行详尽分析后才能完成的;同样,对于恒定电源供电的有线系统也是如此。处理器和其周边的硬件生态系统的消耗通常占电源的较大比例,因此,这就是所有的“重点”之所在。
在深入讨论之前,我们先按次序讨论一下术语。“能量”与做功的总量有关,而“功率”是测量做功的速率(单位时间的能量)。电子学中,功耗=(系统元器件的电压)×(流经系统元器件的电流),能量=功率×时间。
因此,系统设计员通常关心总的能量消耗和峰值功耗。换句话说,使用的能量是从电池吸收的,但电池也需要提供足够的瞬时能量以满足峰值功率的要求。习惯上将集中讨论功耗,然而,实际上也将论及系统中使用的能量和功率。
什么是“低功耗”
“低功耗”究竟指什么?从嵌入式观点看,经常将该术语同电池驱动移动设备联系起来,但该术语实质上也是相对的。从功率尺度的最低端应用看,我们可以只简单地讨论手表电池的例子。然而,在另一个极端,为了避免额外的设计负担和费用(如热同步、风扇、调整器等),又需要构想使功耗最小的“插入式”系统。
毕竟现今的很多设计系统,诸如从汽车收音机到“插件箱”中的仪器板卡,都是根据交到OEM(原设备供应商)的规格构建的系统。为了确保销售商之间的一致,这些规格经常描述了严格的功率预算分配。关键点是,为了关注降低功耗,系统不一定非要用电池供电,或者非要“移动”。
为了方便,可以将低功耗嵌入式系统分为三个不同类型。
第一类是在不使用时就关闭电源的系统。对于这类应用,系统运行时的低电流消耗驾驭着电池的寿命。这样的应用实例包括便携式媒体播放器、GPS设备和数码相机,这些系统在工作状态呈现出低功耗的特性,同时待机电流是“无关紧要”的,这是由于设备关闭时是不吸收电流的(如果使用了实时时钟会有几微安的电流)。通常根据不同的应用,处理器在有效工作状态时的电流从几十到几百毫安。
第二类中,将开机或完全关闭的系统改进为开机或“待机模式”的系统。在待机状态,系统处于最低电流消耗状态,同时仍维持存储区中的内容。对于这样的系统,有效电流和待机电流消耗都很重要,此时有效电流的消耗与第一种情况相同,而待机电流通常则从数百微安到几毫安。这种类型的典型产品如VOIP移动电话和声控设备。该类还包括这样的情况,系统的某部分仍处于“监控”状态,在转换到全速处理状态之前等待某事件的发生。
第三类由始终处于加电状态的设备构成。这里,功率要求很可能在次毫安范围内,这就直接限制了可实现的处理性能。此类的应用实例包括手表和一些便携式或植入式医疗设备。有很多方法可以调整系统的功耗指标,以满足应用要求,包括:
·动态改变频率和电压;
·了解处理器内分离的供电范围;
·分析代码从而针对降低功耗做优化;
·运用处理器的多种供电模式;
·从系统级关注功耗的产生。
本文将集中讨论最后两种方法,参考文献部分列出了其他几个主题的详细说明。
电源供电模式
许多应用涉及相对于其处理的需求有明显差别的工作模式。考虑一个用电池供电并带有嵌入式处理器的传感器。处理器的外设可能采集周围环境的参数。在该模式下,不要求有计算功率,处理器可能要求突发读入遥测数据的数据包。当处理器读取足够数据并开始处理时,则进入“全速”工作模式,整个处理器就被唤醒,以最高的性能运行。当不需要传感器数据也不需要处理时,可提供超低功耗模式。
处理器要从各种各样的掉电模式中唤醒,需要接收某种类型的唤醒事件。外部事件可以是外部激励,如标志引脚翻转,或者内部处理器活动,如DMA传输完成或定时器满等。
不同处理器上实现的确定电源供电模式有很大差别,但处理平台之间通常也有一些共性,例如“全速”工作模式;“睡眠”模式,为了使系统快速恢复,即使处理器未使用的部分为省电处于无效,片上存储器仍保持供电;以及“休眠”模式,此模式中,为了最大节省电源,片上存储器也可以不供电。本文中,“待机模式”表示综合的低功耗模式,这里的电流消耗和恢复到全速处理模式所需的时间需要进行折中,也就是电流越低,恢复到全速工作的时间就越长。
为什么需要让处理器定期进入或退出待机模式呢?其实很简单,就是为了减少能量消耗和延长电池寿命。在许多待机模式中,由于处理器仍然被供电,处理器可保留其所有的内部状态和存储器内容,但大大地减少了电流的吸收。此外,处理器唤醒需要占用几毫秒时间,但这也比传统的处理器从冷启动加载快得多。
休眠模式
“休眠”待机模式是特别有意思的,因为它通过完全关闭处理器内核电源,实现了最大的能量节省(与“待机综合”下的其他模式不同)。当处理器内核的电源关闭后,不再维护处理器的内部状态,因此,任何保存在内部(存储器内容、寄存器内容等)的关键信息,在关电前都必须提前写入到非易失性存储器设备中。然而,即使关闭了处理器内核电源,休眠方式仍为使SDRAM保持“活跃”状态提供了措施。在进入休眠模式前,设置SDRAM进入自刷新模式,并在唤醒后可以重新控制它,处理器允许将系统状态存储在易失性DRAM中,而不是非易失性Flash存储器中,这样,处理器在唤醒后就可以更快速自举,否则,处理器还需要从非易失性存储器重新载入程序代码。
充分利用电源供电模式
现在考虑另一个具有代表性的情况,此时有不同的处理器供电模式,在功耗方面也有很大的差别。考虑一台带有输入缓冲区的便携式MP3播放器,将音频数据解码到SDRAM中的输出缓冲区,然后将处理器置为待机模式,直到又需要新的数据为止。
由于MP3解码处理要求低,在不需要处理的间隔,处理器可以进入休眠状态,比如,设备可能工作在“25%解码,75%休眠”的情形,也就是说,此时处理器在这个25%的时间时,其内核吸收电流是30mA,而在75%的时间时,处理器内核的吸收电流仅有15mA。在解码间隔,处理器尽可能快地在外部存储器中构建解码的样本,一旦达到了缓冲区期望的大小,处理器就进入睡眠状态,直到需要更新数据缓冲区。
换句话说,如果通常进行连续流MP3解码,即75MHz,则可选择以300MHz对在待机模式过程中收集的缓冲区数进行解码。这样,处理器就在一个更高水平上运行,但其运行过程很短(在处理器又回到睡眠状态前)。通