随着功耗成本在总营运成本中所占比例的不断扩大,功耗问题已变得日益严峻。试想一下,超市安装有成排的收银台,而每个收银台都少不了配备一台现金出纳机、信用卡读卡器、条形码扫描仪以及电子秤。如果这些设备没有经过节能设计,不能使其在两个客户结帐之间或是在非营业时间自动关闭,就会造成浪费。把这种浪费乘以超市的数量、城市的数量以及设备的使用寿命,累积的总能耗费用就将以数百万美元计。
现在,诸如Linux等操作系统(OS)都具备了电源管理支持功能。自Linux力图拓展以智能手机、平板电脑以及电子书阅读器等为代表的低功耗便携式设备领域以来,主流的内核就一直提供这项功能特性。因而,即便您设计的是“外接电源”设备,也可以从最底层开始支持“节能环保”理念,通过整合现有的电源管理功能,使其充分发挥作用。
本文探讨如何使用处理器间通信与状态机设计来降低异构双核系统的总体系统功耗。文章首先简要回顾当今外接电源SoC嵌入式系统可用的低功耗技术,然后分析如何让两套各具供电方式的操作系统在系统层面协作,以提供电源管理功能。
芯片与系统硬件问题
从硅芯片制造工艺的角度来看,有两个不同的指标可以来衡量组件的功耗:静态功耗(有时也称待机功耗),以及工作状态下的功耗。静态功耗主要受漏电流影响,并随温度的上升和供电电压的升高而相应增大。由于漏电流是一种自然现象,是伴随不断缩小的工艺技术而出现的,因而唯一消除它的方法就是将该组件关闭。在SoC中目前常用的方法是电源岛,其可使SoC的一部分完全关闭。
另一方面,工作状态下的功耗取决于芯片的活动,其不会随温度上升而增大,而是随供电电压上升而增大。这种情况可采用的相关策略包括:
1、动态电压与频率缩放(DVFS),其可让电压和频率按所需的性能进行动态调整;
2、采用时钟域关闭未使用的外设;
3、 动态电源切换(DPS),即软件可根据系统的活动情况对电源模式进行切换。这里的“软件”通常属于操作系统的组成部分;
4、自适应电压缩放(AVS),一种同时采用软硬件的闭环策略,可根据硅芯片的工艺和温度在采用最低电压的同时保持性能水平。
从系统的角度来看,电源管理功能应能够完成如下操作:
1、进入待机模式(由用户应用或者系统启动的系统服务);
2、休眠存储器或存储(由用户应用或者系统启动的系统服务);
3、挂起和唤醒(由用户应用启动的系统服务);
4、转换至不同的电源模式(根据用户应用条件或者状态,由系统启动并进行控制)。
此外,应用代码的设计也对功耗有影响。例如,引脚处的输入/输出(I/O)缓存、存储器控制器,尤其是双数据率(DDR)需要驱动电流。不必要地将数据移入和移出SoC也会造成能源浪费
除了电池和时钟管理支持集成电路(IC)外,系统电路板还集成了适用于各种不同电源轨的外部稳压器。此外,其还包含了外部I/O模块和可热插拔的器件。为了进一步降低能耗,应用方案可通过采用数据和代码对齐的方法来充分利用内部存储器,从而使流水线中的算法能够复用本地缓冲器,这样就无需在非必要的情况下切换到引脚处的I/O缓冲器。
其他众多技术还包括:将数据类型与架构进行匹配;纠正对齐;将阵列的大小安排为2次方数,以简化地址计算。由于更低的MIPS能够降低温度,因而这些技术有助于降低功耗。有人将这些技术称为“能源编码”,并且将其列为除速度和代码大小之外的第三种优化方式。
电源管理是一种协调性的工作。诸如进入待机模式这样的任务需要涉及一系列硬件和软件步骤。因此,要真正地“正确完成”工作,电源管理需要成为系统级(即硬件与软件交汇的地方)的设计目标,尤其当处理器是一颗带有多个内部总线主控系统的复杂SoC时更应如此。
例如,对于“挂起”操作,软件必须控制硬件完成下列任务:
1、通知驱动器和待完成的任务系统正在关闭电源;
2、等待安全模式启动关断队列;
3、通过门控电源或时钟关闭I/O和加速器;
4、将系统状态保存到存储器(本例中为mDDR);
5、调节稳压器,以减少供电;
6、将电池管理设置为挂起状态;
7、将时钟转换为挂起状态(通常仅涉及实时时钟与mDDR运行)。