另一层设计考量——混合技术降低动态功耗
2012-04-09
随着行动装置成为市场主流,以及不断攀升的能源成本和环保意识的提高,功耗(power consumption)已成为设计人员最关心的议题。功耗大抵可分为两部分,其一是静态(static)或漏电(leakage)功耗,当元件处于待机状态时该情况自然会产生;其二是动态功耗(dynamic power),指的是元件切换过程中所产生的功率消耗。就降低功耗而言,两者都是设计上重要的议题;而这份报告主要是探讨动态功耗及如何改善其相关的度量(metric)。
传统设计中的另一层考量
过去数十年来,设计人员运用合成(synthesis)设计塬则进行设计,如此可产生同步时脉(synchronous clock-based)的架构。在这样的设计方法下,所有的逻辑电路转换由透过时脉网路分配的主时脉所支配。若最长的逻辑路径(logic path)超过主时脉的週期时间,则设计人员必须设法减缓时脉,或者加快长路径的速度。为了最有效地权衡两者,设计人员会使用静态时序分析工具,进行最长路径的运算及逻辑电路的最佳化,直到他们达成所预定的时序频率。
以上所述是当今设计所运用的基本方法论,它的效果不错、能达成每个技术节点的速度优化,而且极为可靠。然而就当今的设计环境来说,其主要的缺点是它把面积(area)和功率列为第二和第叁考量顺位,但以目前消费者对于更小、更快速且强调功能特色装置的迫切需求而言,设计人员不能再把面积与功率视作次要的设计目标,而是必须审慎评估及改善这两项度量,以满足当今的设计要求。
当我们在进行同步设计分析并将动态功耗纳入考虑时,可以辨识出两种造成过度功率耗损的塬因。其中之一是时脉分配(clock distribution),它能确保所有的逻辑电路与主时脉同步。整个时脉结构上的时脉偏移对于晶片的效能有直接的影响,因此必须设法将时脉延迟及偏移的发生降至最低。儘管上述架构允许设计人员提高时脉频率(及效能),但它也会消耗掉20%到60%的晶片功率,且需要大量的半导体空间。换句话说,这种设计方法虽然效率高但成本也高,特别是在功率方面。
同步设计也意味着电路中的所有转换会「聚集(bunch up)」在时脉边缘。举例来说,在每个有效时脉边缘上,所有发生在逻辑路径的转换会同时被执行,而当条件顺着组合逻辑链(combinatorial logic chain)被满足后,这些转换就会逐渐停止。若以图示表示,该现象可用锯齿波形来呈现。而大多数的动态功率就是在这样的执行过程中被消耗掉的,直到路径末端几乎没有功率被消耗为止。若是在最佳时序的状态下,则最后的转换应当在下一个时脉进行前就减弱。
就时序(timing)而言,该方法论的效果不错,若能妥善分配週期中的转换以及消除锯齿波形,则在任何时间点所需的最大功率将会大幅降低,幅度约30%到50%左右。这是因为电源供应线不需要处理每个时脉周期(clock cycle)一开始产生的众多元件切换所带来的电流突波(power surge),也因此可以减少面积并降低功率的浪费。
有一个简单但不切实际的解决方式是,建立一个带有适当延迟的客製逻辑电路(custom logic)去达成每个输出点所欲达到的功能,藉此妥善调整功率的分派。这个做法可以让速度变得很快,有点类似让单一印表机对上单一电脑,而不是透过区域网路让多个使用者共享一台印表机的资源。然而这样的架构需要大量的面积、逻辑电路及功率才能恰当的运作。我们相信一定有其他更好的方式能达成时序、效能、功率及面积的目标,同时又能符合经测试且有效率的合成设计方法(methodology of synthesis-based design)。
提升省电效率的方法
时脉闸控(clock gating)是用来在同步设计环境中,达成较佳动态功耗效能的最常见技术。时脉闸控本身即是违反传统的同步设计规则,而当今很多工具便是利用这样的「漏洞(loophole)」成功地改善功耗的问题。利用时脉闸控技术,除非输入至正反器(flip-flop)的资料遭到改变,否则正反器将不会接收到时脉讯号, 如此一来可以避免把功率浪费在正反器单元中,以及避免把功率用在受到闸控的任何时脉树部分。因此,当前的设计工具大量利用时脉闸控达成大幅降低动态功耗的目的。
在任何复杂的逻辑锥(cone of logic)中,当路径进一步到达逻辑锥区时,很多转换便会被封锁住,而无法透过时脉闸控来抑制。其中有些转换可作为「资料闸控(data gating)」用,而这个时候便能识别出,那些在不影响电路输出情况下进行转换的逻辑电路。常见的例子像是在某些时间点未被使用的操作输入,或是在週期中进行改变的记忆体读取地址。平息这类型的转换将大幅降低电路中耗费功率的转换,同时对时序造成的影响也最小。进而使得该电路变得更省电。
将功耗降至最低的工具
为了进一步提升效率,设计人员必须在架构层级(architectural level)进行最新技术的运用。新思科技DesignWare minPower Components在各式环境中,都能尽可能地以耗用最低功率的方式运作。架构上来说,这些元件是在最省电的配置下被执行,它们用来执行各自的功能,同时将耗用功率但无产出的假性转换的数量降至最低。而透过Design Compiler Ultra (DC Ultra)改善实作过程中的架构性选择(区域时序及交换动作都可被纳入考量),minPower Components可为所有运算环境提供最佳架构性解决方案。
此外,分析显示,由于其大型的电路尺寸及频繁的交换活动,资料路径电路(datapath circuits )经常耗用大量的动态功率。而对于必须维持电源开启一段时间的电路而言,这类的影响也就越显着。为了降低这些电路的功耗,DesignWare minPower Components包含了一系列具有转换机率成本的资料路径架构。当使用DesignWare minPower Components IP及DC Ultra流程,它能让资料路径产生器计算每个架构及编码决策的功率,进而让DC Ultra产生可以平息交换活动的路径资料架构、限制错误的产生及传递,以及利用较高比例的低漏元件资源。
DesignWare minPower Components亦附有利用转换机率(transition probabilities)的功率模型,不论所提供的实际交换动作是使用者定义或是来自交换动作互换格式(Switching Activity Interchange Format,SAIF)中的模拟向量,DesignWare minPower Components都可根据交换的内容,进行资料路径架构的最佳配置。它可以以最佳的方式重新排列资料路径树(datapath tree)及改变运算编码,以便停止交换动作及错误的产生,进而减少功耗。
该高层级优化技术还可以协助设计人员根据个别设计的特性达到功率的节省。资料路径架构可以让设计达成友善的资料路径闸控,且当资料无效时可让设计人员关闭整个路径资料区块的交换。该路径资料架构是依照可利用嵌入闸控逻辑进行配置的结构所设计,如此可以排除对于外部隔绝闸的需求,因为这类的需求经常会降低时序的特性。
另外,在现有的低功耗设计流程中如果採用DesignWare minPower Components也相当地简明易懂。例如时脉闸道技术、低功率合成以及利用多层临界电压降低漏电等方式仍然可以搭配使用,以生产更省电的设计。
结论
在设计技术持续演进的过程中,动态功耗仍是低功耗设计的重要议题。任何晶片的功能都是透过逻辑电路的转换来达成,而这些转换会耗用掉功率。省电效率对当今复杂的晶片来说是如此重要,以致于设计人员必须不断寻找新的方式,在耗费最小功耗的前提下达成最大的效益。传统的同步设计方法论仍有运用的空间,但结合非同步设计、资料敏感度,及较高层级方式的混合式解决方案,也不失为一个好的折衷方式,而这类的解决方案有仍待设计人员的持续探索。