超低功耗处理器设计03

 

摘要:在大多数码产品中,处理器的工作能效是一个主要问题。很难实现低功耗高效能,因为它与处理器特征(嵌入式软件...



摘要:在大多数码产品中,处理器的工作能效是一个主要问题。很难实现低功耗高效能,因为它与处理器特征(嵌入式软件提供的灵活性)存在矛盾。在一个处理器中实现和相应的嵌入式软件实现随机逻辑要比比给定的随机逻辑函数模块要多消耗100 - 1000倍。然而,灵活性的需求越来越多,超低功耗处理器必须具有。只有少数技术已经广泛用于微控制器和DSP处理器的功耗降低。小编会在超低功耗这节中陆续带大家回顾这些技术,基本上是CPI(clocks per instruction)减少,时钟门控机制,优化管道长度、硬件加速器,可重构单元和降低功耗泄漏的技术。

接下来是续上周还未讲完的低功耗技术内容:

三.降低功耗技术

在这节中会总结降低功耗技术,主要包括减少CPI(clocks per instruction)、时钟门控机制、优化管道长度、硬件加速、可重构单元和减少功耗泄漏技术。在算法层中,对于单处理器性能减少功耗最有效的手段是降低CPI。

3.1 降低功耗技术概要

未来SOC会在一个片上控制数个不同的处理器核。随之带来的是并行体系架构,并行体系架构在动态功耗上比基于单核的完全顺序执行的架构要少。设计这样的体系架构不得不使用System C,SDL或MATLAB等语言来构建高级模型进行验证。最困难的任务是把这样高级模型转化成C和RTL语言(VHDL,Verilog)后才能将该高级模型应用在多个处理器之上的系统。我们可以想象许多任务在多个处理器上工作这需要一个多任务并中央集权的操作系统,但是对于低功耗,该系统要比在每个处理器上都具有一个微小的操作系统(2K或4K指令)要好。很明显在每个处理器上建立微小的操作系统在实现上更简单,甚至性能上也能更优,这是因为可能处理器在给定的时间窗口中没有任务去执行,从而不工作,有任务的处理器还要继续等待分配的时间窗口。

我们要注意一点,大多数动态功耗能在高层中节约。在系统层划分,活动,步的数目,数据的表示和位置(cache或替代集中式内存的分布式内存)都得因实际应用在高层中被选择。见图3.

在架构层,许多低功耗技术的目的是减少动态功耗。图3列出了时钟门控(gate clock),流水线(pipelining),平行化(parallelization),低VDD,多个VDD,可变的VDD(DVS或者动态电压调节)和VT,活动评估和优化,低功耗库,减少悬挂,异步和隔热。一些在流片制造中被使用,但一些并不是,例如隔热和同步技术。在最底层,以低功耗库为例,只有一个适中的因素(大约2个)在减少动态功耗中能被使用。在逻辑和版图层,提供网表后的绘图方法的选择和低功耗库的选择是至关重要的。在物理层,版图最优化和工艺也要选择。

然而,泄漏和静态功耗越来越依赖于深亚微米工艺,低功耗设计方法不得不在整个功耗中被考虑。

3.2算法层减少泄露

许多技术都有减少泄漏功耗的目的,例如gated VDD,multi-VT技术,DTMOS,VTCMOS和静态或动态SATS。在工艺和冗余电路的代价下,这些技术都能很有效减少泄漏功耗。尽管使用了这些技术,继续在深亚微米技术中减少静态功耗不得不着力于设计层,包括系统和算法层。在接下来的这章会在算法层阐述低功耗设计的问题。

3.2.1 活动、逻辑深度和门的数量

首先分析电路翻转率(动态功耗)和静态功耗,微处理器保持很低的活动时静态功耗会比动态功耗大很多。微处理器使用很少的动作实现一个逻辑功能,这会导致微处理器在大多数时间是闲置的,这也是优化之后所不容的。总之,如果一个晶体管或一个逻辑门在很长一段时间没有被开启,这被视为效率低下。当微处理器处于睡眠模式,此时没有动态功耗。因此,只有静态功耗被消耗。然而,这种情况下算法层上做不了任何优化,只有靠工艺来减少电荷泄漏。

下面呈现的设计方法的目的是去寻找一个优化,更好地利用晶体管时钟周期内的开关。在动态功耗方程中传统活动定义为a:P = a * f * C * Vdd^2。a表示一个时钟周期内开关的门数目与门总数的比率。组合电路的a一般是1-5%。当一系列闲置的门串联在一起,这时候也得考虑闲置的门。假设给定的管道或逻辑模块有20个门串联(逻辑深度LD = 20),这20个门得在一个时钟周期内全部翻转。因此只有时钟周期的1/20被用于翻转(初始化时,只有一个门都接地)。设计中需要尽量多的门接地,这能更好避免去设计闲置的晶体管,并寻找动态功耗和静态功耗之间的优化比率。泄漏能大致与门的数量和时钟周期电荷成比例。动态功耗只和翻转的门数量成比例。为了更好地平衡动态功耗和静态功耗,通过强制明显减少总共门的数量来增加全局活动。

3.2.2最优总功率

优化总功率(动态+静态)大致由静态功耗和动态功耗决定。为了减少总功耗的消耗,需要利用较少的晶体管或门但高活动来实现逻辑功能。如果给定功能需要10000个门来实现,并且活动系数为1%,这意味着平均每个时钟周期有100门翻转。如果一样的逻辑功能能用1000个门来实现,同样保持100门翻转每个时钟周期,这个活动系数为10%。那么动态功耗不变,电荷泄漏会变为十分之一,因为门的总数减少了。
图4左边为活动系数1%和10%的功耗对比图,动态功耗一样通过算法层来减少门的数量从而减少静态功耗。这是一个天真的解决方法,两种算法上速度对比还没有给出。使用少量门实现的算法速度一定慢,因此需要更大的VDD来获得一样的速度,这会影响到动态功耗。

图4右边为使用两种算法实现16乘16的乘法器的对比,算法A使用4个并行的RCA乘法器(3250个门),算法B使用两个并行的Wallace乘法器实现(1960个门)。执行16乘16时都有208个门翻转(3250门*6.4%=1960门*10.6%=208门)。算法B(第二个横条,使用一样的VDD和VT)使用少量的门,更多的活动,更少的电荷泄漏。然而可以通过减少VDD和VT来继续优化总功耗,并且速度能保持和算法A一样,见第三个横条。

在算法层设计中功耗优化的目的不仅是通过设计更多的全局活动来减少静态功耗,还要根据速度指标来寻找总功耗的优化。如图4所示。这里需要指出的是,有许多算法使用更少的门实现逻辑功能但表现的速度更慢。因此得提高电源电压提高速度,但增加了总功耗。

今天我们就讲到这里,下周我们就正式讲微处理器的低功耗设计。

注:本文为“E课网”原创,版权归“E课网”所有欢迎分享。如需转载请回复“转载”。转载时请注明此文章转载自“E课网”,并添加“E课网二维码”。

《数字版图设计实战培训》
没项目经验!上E课网!!
通过这独创三个月的时间学习
让你成为有分量的工程师!
提升自己的职场竞争力!薪水翻倍!!
长按二维码 了解课程详情




点击“阅读原文”更多精彩


    关注 E课网


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册