低功耗机制并不只是针对电池供电设备的设计约束条件,它也是许多高性能有线系统的一个主要考虑因素。在嵌入式设计中使用的处理器的功耗可能只占系统总功耗预算的较小一部分,但你对系统和软件体系结构的抉择可能会对总的处理性能、功率消耗和电磁干扰(EMI)性能产生重大影响。对电池供电的系统而言,较低的总功耗可能意味着你的设计得益于更长的电池寿命,亦即能使你选用较小的电池来减少系统的体积、重量和成本。
系统的功率效率取决于软、硬件设计决策与应用系统工作性能的匹配程度。
要点
● 总包括静态功耗与动态功耗两个部分。
● 硬件体系结构内的管理功能决定软件降低功耗的方法。
● 你的软件设计决策会对总功耗以及产品体积和成本产生重大影响。
低功耗机制并不只是针对电池供电设备的设计约束条件,它也是许多高性能有线系统的一个主要考虑因素。在嵌入式设计中使用的处理器的功耗可能只占系统总功耗预算的较小一部分,但你对系统和软件体系结构的抉择可能会对总的处理性能、功率消耗和电磁干扰(EMI)性能产生重大影响。对电池供电的系统而言,较低的总功耗可能意味着你的设计得益于更长的电池寿命,亦即能使你选用较小的电池来减少系统的体积、重量和成本。
对有线系统来说,较低的功耗可以减少系统对风扇和空调装置的要求,因为系统自身产生的热量较少。用这种方法降低冷却要求,还可以使系统工作时噪声较低,因为你可以使用体积较小的电源和较少的或噪声较低的风扇来排除机架或机箱内的热量。有线系统峰值功耗较低,能提高受热点极限制约的元件密度,以增强系统的通道处理能力。如果你将设计功耗降低,你就能减小系统的总体尺寸与总成本。
为使系统的功耗最佳,你必须使硬件的功耗特性和软件体系结构抉择与预期的系统工作性能相匹配。不管你的系统是连续工作的还是以事件响应方式工作的,都将迫使你设法使系统功率效率最大。连续工作方式的特点是处理时间长,空闲时间短,而事件响应工作方式的特点是处理时间短暂,空闲时间长。
CMOS 电路的总功耗包括两个部分:静态功耗和动态功耗。包括晶体管漏电流在内的静态功耗,甚至在电路不工作时也会发生,并与任何开关活动无关。漏电流在所有 CMOS 晶体管中都存在,它来源于反向偏置源极或漏极电流、漏极至源极弱反相电流以及隧道电流。采用好的工艺技术和设计单元库可以有效地降低这些电流的强度。这些漏电流分量的总和便形成从电源通过晶体管流向接地的非理想电流,即使这些晶体管处于逻辑关断状态也不可避免(附文“处理漏电流问题”)。对于空闲时间长的事件响应式工作状态,静态功耗要占系统总体功耗的很大一部分。
动态功耗出现在电路和信号的逻辑状态发生转换时,功耗的大小与系统、频率以及开关活动相关。对连续工作的系统而言,动态功耗一般决定系统功率效率。你可以用以下公式粗略地估算系统的动态功耗:P=CFV2,式中 C 为动态电容,F 是开关频率,V 是电源电压。系统的动态电容取决加工工艺和设计单元库,基本上是固定不变的。功率和电压是二次方的关系,所以电源电压的高低对功耗的影响最大。但是,最小可用电源电压与电路的最高开关频率相关,在相同的加工工艺下,较高的时钟频率就需要更高的相对电源电压。
功耗估算
选用专为提高功率效率而设计的部件是降低功耗的良好开端。常用来比较处理器功率效率的基准是毫瓦/兆赫(mW/MHz)。使用这个基准时有个问题,就是它不能告诉你在每个时钟周期内处理器完成多少工作。较低的毫瓦/兆赫值未必能表明一个处理器可能需要将时钟频率加倍,并消耗更多的功率才能完成与另一个处理器相同的工作。
另一个替代功率效率基准的是毫瓦/百万指令/秒。你使用这一基准时仍要小心谨慎,因为你可能不清楚基准得分是由哪些指令序列获得的。例如,只执行 NOP(空操作)指令时功耗可能最低,但这对实际应用毫无意义。执行完全来自缓存或本机内存的算法所得到的基准得分可以表示一种较好的指令混合,而完全在本机内存以外工作则既是不可行的,也不适合于你的系统设计。
在比较处理器的体系结构时,处理器制造商提供的处理器功耗典型值和最大值只有有限的参考价值,因为功耗可能会因执行的指令、操作的数据、脱片工作数量以及动态功率管理功能的不同而相差很大。一个更有用的比较功耗的基准是毫瓦/任务;但这种量度很难实现,特别是很难用完全一致的方式去比较两种处理器体系结构。
有些处理器厂家提供一些电子表格和分析工具,以帮助你根据自己的系统的特性和所采用的电源管理功能来进行更为有用的功耗估算。这些电子表格和分析工具尽管现在还比较简陋,但可以让你用人工的方法表征系统的特性、你将要使用的指令混合、脱片工作的类型和数量,以及使用器件内置电源管理功能的影响。电源管理功能包括:关断不工作模块的电源,限制时钟信号向不工作模块传送,动态调整时钟频率,以及调整作为时钟频率函数的电源电压。
低功耗特性
许多处理器都设有睡眠模式、待机模式或低功耗模式,用以关掉特定的模块(如外设、处理器芯核以及时钟发生器的晶振)的电源。有选择地关断这些模块的电源,可使你将这些模块的功耗(包括静态功耗)降低到零,因为不关掉电源,它们做的是无用功。为了保存系统状态数据,并避免重新起动,低功耗模式通常要保留对存储器结构的供电。当一个模块恢复供电时,在电源电压和时钟信号稳定之前存在一个时间延迟。由于这一原因,在以下两种情况下以这种方法关断模块电源是不切实际的:模块的空闲时间小于稳定时间,或模块对事件的响应时间比稳定时间更快。关断模块电源是一种强制性技术,无论 在BIOS、操作系统或应用级,它都要依靠软件来根据通用或定制的运行状态模型来作出决定。
在一个器件的总功耗中,其时钟树的功耗可能占到一半,因为一般情况下,时钟信号的频率是任何其它信号的两倍,而且它必须在器件内的任何地方传送。有些系统经过分区,将独立的时钟信号域供不同的模块和元件使用,这样的系统就不需要整体系统都以最高速度工作,因而可降低功耗。使用较低的时钟频率,不仅能减少功耗,而且还可以降低对高时钟所需的边沿快速率的要求,从而减小系统的EMI(电磁干扰)。
时钟门控是一种动态电源管理技术,它是与软件无关,并对软件是透明的;它可以防止时钟信号传输到系统中当前不工作的模块,从而减少动态功耗和 EMI。时钟门控技术并不关断某一功能块的电源,因此它不会降低静态功耗,但却不受很长起动延迟时间的影响,而且它是按一个个时钟周期起作用的。
在有设计良好的分级时钟分配机制情况下,时钟门控技术能以精确的粒度等级,阻止时钟传送到不工作的部件,如总线、高速缓存、功能加速器和外设。时钟门控实际能达到的粒度等级是有限的,因为它依靠控制逻辑来决定何时和是否沿某一时钟分配分支路传输时钟信号。因此,时钟门控逻辑自身的功耗应该小于它减少的功耗。异步电路,亦即无时钟电路,是另一种使低功耗和高性能保持平衡的专用方法,类似于同步系统中理想时钟门控技术(附文“异步电路”)。
另一个常见的管理功能就是调整频率。时钟分频器与集成的低速时钟源(一般由软件控制)是动态调整时钟频率的两个常用机制。这一类灵活性使你在不需要处理器全速运行时,能够通过减慢运算速度来线性地降低。在某些器件里,集成的低速时钟源可在重新起动多个模块和一个高速时钟源时支持双速起动。器件的芯核或模块在开始运行时可以使用快速起动而功耗较小、速率较慢的时钟源,然后在电路稳定后,再过渡到慢速起动而速率更快的时钟源。
动态调整是一种正在得到越来越多的对功耗敏感的处理器支持的电源管理功能。时钟频率与电源电压之间的关系使你可以将电源电压与时钟频率一起降低。电源电压的动态调整依赖于软件的控制,而且由于功耗和电源电压的二次方关系,所以它除了部分关断电源之外,还可以获得最引人注目的整体节电效果。某个给定器件支持的一组相配时的频率和电压是在特性描述期间确定的;这一组频率和电压能确保有足够的裕量在所有支持的工作条件下,实现处理功能。
动态选择一个较高时钟频率和相应的电源电压的顺序是:为新电压配置系统,等待较高电源电压稳定,然后再切换到新的时钟频率。动态选择一个较低时钟频率的顺序与之相同,只是不需要等待电压稳定,因为当前的电源电压已高于支持较低的新时钟频率所需的电源电压。
|