体系结构的思考

即使对于完全不同的硬件架构,例如Qualcomm 45nm Serra SoC和Intel 22nm第四代Atom SoC,在设计低功耗架构时所考虑的因素也非常相似。尽管设计各种系统组件以降低功耗很重要,但优化系统设计并对其进行管理以降低功耗也很重要。特别地,用于节能的架构思想包括本节要讲到的以下的内容。

组合系统组件

将处理器和平台控制器中枢(PCH,platform controller hub)集成在同一芯片上可降低功耗、占用面积和成本,还可以简化固件接口。利用由内核启动的、在适当的上下文中进行优化的运行时设备电源管理,可以实现低功耗。

优化硬件和软件的交互

因为专业化时代更要求降低计算规模并降低功耗。因此在专业化时代,驱动程序与操作系统或者硬件版本与操作系统之间的代码共享已变得不那么重要。在专业化时代,硬件命令更类似于API命令,并且命令转换会更少。 以下的想法体现了这一概念。

负载从通用硬件转移到专用硬件

将任务从通用功能硬件转移到固定功能硬件可以节省功耗,因为可以将更少数量的门电路用于特殊用途,从而减少了切换门电路的动态功耗。 这种技术对非可编程任务特别有用,例如设置、剪辑、坐标计算、某些媒体处理等等。

CPU和GPU的电源共享

为了在平台给定的能力内最大化其性能,诸如Intel Burst Technology 2.0之类的技术会自动允许处理器内核在电量低于某个特定水平、特定温度下以低于指定的基本频率而运行。CPU和GPU均支持这种Turbo模式和电量共享。可以动态调整高性能突发操作点。

使用低功耗的CPU核

处理器的所有部分(核心,非核心和图形)都需要优化以降低功耗。 GPU是重要的动力源,导航栏、状态栏、应用程序UI、视频等组成的任务应尽可能多地交给显示控制器,以保证最低的设备活动和内存带宽。
另外,功耗很大程度上取决于实际的使用情况,因此应该在考虑实际使用的情况下优化处理器功耗。也就是说,低功耗的解决方案会受到最差应用的限制,应该考虑有功功率(active power)和泄漏功率(leakage power)的优化和管理。
为了降低泄漏功率,要知道尽管PMIC可以调节功耗并使睡眠期间的全芯片功耗关闭,但这种功耗关闭需要将数据保存到内存中并需要重新启动处理器的所有部分才能进行恢复。那么,理想的影响是节省了电量,即一段时间内节省的泄漏电量大于用于保存和恢复的电量开销。

降低RAM/ROM外设和核心阵列的功耗

核心阵列中的所有内存都需要进行泄漏控制(leakage control)。还应该考虑外围电路的功耗降低,因为可以从RAM/ROM外围设备来降低功耗。

休眠期间降低VDD来管理电流泄露

在睡眠期间使整个芯片的
VDDV_{DD}
最小化是有益的,尤其是在较短的睡眠周期内。睡眠期保留了所有存储器和寄存器状态,因此具有软件开销小和恢复速度快的优点。利用电压最小化控制泄漏是比用软件进行复杂管理更有效的方法。但是,对于存在Connected Standby需求的情况时,则无法降低电压。

对大型高密度存储器采用独立的内存控制

一种常见的省电技术是在应用程序无法访问的存储体上使用电源门控。利用门控控制非必须的存储区的时钟/数据访问,可以降低待机/主动泄漏。但是,这需要在软件和固件中进行适当的电源管理,以便正确识别并适当控制潜在的空闲存储体。同样,电源门控并非适用于所有模块。 需要对动态功耗和泄漏功耗所节省的成本进行仔细的分析比较。

时钟树优化

时钟树功耗通常是整个互连内的最大功耗。就高通Serra而言,时钟树消耗了30%~40%的整体功耗。由于时钟架构对功耗的影响很大,因此应仔细计划时钟树的使用和频率。尤其需要考虑锁相环(PLL,phase-locked loops)的数量,独立的时钟域控制,频率和门控,同步等。

时钟域分区

由于可以独立关闭时钟,因此将时钟划分为不同的钟域可以更好地管理各种时钟。例如,可以将控制I/O和CPU的时钟划分为各自独立的时钟域。

独立的时钟频率域

尽管异步域更灵活,但是跨时钟域会增加延迟。另一方面,同步时钟域可以在低性能模式下节省功耗,但在最坏的使用情况下,它们会消耗更多的功耗。

更细粒度的时钟门控

节省有功功率(activity power)的最有效的方法之一是在细粒度上自动和手动调整时钟门控。硬件或软件都可以控制时钟门控,但是每种方式都有成本。对时钟门控百分比和时钟门控效率的分析可以进一步发现优化点。

功率岛

功率岛(power islands)的概念可以用房屋的例子来说明。如果整个房屋中所有灯泡的电源开关只有一个,无论何时,即便房间中只有一个人,而他只需要一盏灯,打开电源开关时也必须消耗更多的能量。相反,如果有单独的开关来控制每一个灯泡,则仅打开所需要的灯泡的开关才能实现节能。类似地,在典型的计算系统中,定义20~25个独立的功率岛以实现节能。

不同模式采用独立的电压缩放

对于不同的功率岛,可以分别针对活动模式和睡眠模式进行电压缩放。 这意味着降低了频率并因此节省了功耗。

覆盖多电源域的电源门控

PMIC可以控制多个电源域,从而产生更好的电源控制和效率。PMIC还具有独立的电压缩放和功率折叠(power-collapsing)功能。但是,电源域的数量会受到如下因素的限制:电源域网络(PDN,power domain network)阻抗增加,电源开关数量增加将导致IR降压(IR drop)增加,物料清单(BOM,bill of materials)增加,域边界必须的电平转换器和重新同步。使用小型、快速、高效的芯片调节器动态控制各个域的功耗是最佳选择。
当未对功率岛进行功耗门控时,应将所有未使用的外围设备作为功率岛的一部分进行时钟门控。另一方面,当对功率岛进行功耗门控时,所有相关外围设备都处于D0i3(电源电压可能仍处于打开状态)。

提供功耗感知的仿真和验证

要针对低功耗优化系统,请使用能感知功耗的仿真工具和验证方法来检查:进入和退出低功耗状态,验证钳位极性,验证电源域等。

在电量和时间方面做好权衡

定制设计流程和电路可以为使得某些任务更节能。但是,定制化的设计需要更多的时间和精力。需要仔细的选择定制和优化的区域,以便获得最大收益。良好的定制候选对象包括时钟树,时钟分频器,内存和知识产权单元(IP,这是创新设计的常用术语)等等。最好将自定义项移至IP块,并使用自动方法来插入,验证和优化该IP块。这样,可以将特定的改进和问题轻松归因于适当的功能块。

低功耗解决方案的比较分析

设计决策通常很复杂,尤其是在涉及许多折衷的情况下。要判断低功耗解决方案的性能如何,请使用类似的解决方案进行比较分析。通常,此方法会揭示每种解决方案的优点和缺点。