低功耗设计方法学——篇Ⅰ

引言
低功耗设计关乎ASIC芯片的性能稳定 。对ASIC 特别是一些Soc芯片的设计有着重要的影响,随着集成规模的大幅度增加,芯片自身的功耗问题暴露也越来越明显 。低功耗设计的需求和必要性也越来越值得关注 。本文就《Low PowerFor -on-Chip 》 书籍的学习,记录一下低功耗设计的理论知识 。
参考
【1】? David Flynn ?Alan G ??Shi. Low PowerFor -on-Chip
能量 vs 功率
书中给出了这个典型的对比图,能量是功率对时间的积分,那么对于相同容量的电池而言,平均功耗更低的芯片,续航时间更久 。这个道理应该很好理解 。
动态功耗
Soc芯片的总功耗包括动态功耗和静态功耗 。动态功耗指的是芯片处于活跃状态,即片内信号变化所耗的功率 。静态功耗则相反,指设备上电但是,没有信号变化所耗的功率 。在CMOS设备中,静态功耗由泄漏电流带来 。
动态功耗的首要并且主要的源头是开关功耗——对栅极上的输出电容进行充电和放电所需的功率 。如下图所示:
每次输出的高低电平转换对应的能量耗散,式中,CL 是负载电容,Vdd 是供电电压:
有人看到这个式子,可能是不知道咋来的,这里做一些我个人的解释:
动态功耗的计算公式:
式中,f 为电平转换频率,即1秒内高低电平的翻转次数,表示输出端的电平翻转概率 。是系统时钟频率 。定义:
那么就可以用另一个相似的表达式描述动态功耗:
注意,开关功耗并不是晶体管尺寸的函数,而是开关频率和负载电容的函数 。因此,动态功耗具有数据依赖性 。

低功耗设计方法学——篇Ⅰ

文章插图
除了开关功耗,内部功耗也是动态功耗的一部分 。下图显示了是晶体管内部的开关电流 。内部功耗包括NMOS和PMOS晶体管导通时发生的短路电流,以及为电池的内部电容充电所需的电流 。
加上内部功耗后,动态功耗的表达式:
tsc 是短路电流持续的时间 。Ipeak 是总的内部开关电流(短路电流 + 给内部电容充电所需的电流) 。
只要输入信号的斜坡时间保持较短,短路电流在每次转换期间只发生很短的时间,并且整个动态功率由开关功率主导 。出于这个原因,我们经常简化开关功率公式的使用:
但在某些情况下,短路电流(通常称为撬棍电流)是令人感兴趣的 。特别是,当我们讨论如何处理功率门控模块的浮动输出时,我们将讨论防止过多撬棒电流的方法 。
在体系结构、逻辑设计和电路设计方面有许多技术可以降低在给定技术中实现的特定功能的功率 。
这些技术专注于方程的电压和频率分量,以及减少依赖于数据的开关活动 。
由于功率对电压的二次依赖性,降低电源电压是降低动态功率的一种高度杠杆化的方式 。但是,由于栅极的速度随着电源电压的降低而降低,因此这种方法需要小心进行 。
SoC设计者可以通过以下几种方式利用这种方法:
?对于不需要运行特别快的块,如外围设备,我们可以使用比其他块更低的电压供电 。这种方法被称为多电压 。
?对于处理器,我们可以提供可变电源电压;在需要峰值性能的任务中,我们可以提供高电源电压和相应的高时钟频率 。对于需要较低性能的任务,我们可以提供较低的电压和较慢的时钟 。这种方法被称为电压缩放 。
另一种降低动态功率的方法是时钟门控 。将频率驱动到零将功率驱动到零 。在许多SoC设计中使用了某种形式的时钟门控 。
动态功耗与静态功耗的冲突
降低动态功率的最有效方法是降低电源电压 。在过去的十五年里,随着半导体技术的发展,VDD已从5V降至3.3V,从2.5V降至1.2V 。ITRS路线图预测,2008年和2009年,高性能器件将使用1.0V,低功率器件将使用0.8V 。