热度 1| |||
CMOS 集成电路动态功耗的认知也是数字后端必须要掌握的;我们来聊一聊。
动态功耗 = Switching Power + Internal Power
Switching power 是由于芯片内 instance 上的逻辑翻转对有效负载电容进行充放电所消耗的功耗。公式如下:
其中,a 是 switching activity,是电路节点从0跳变至1的概率(活动因子),或者理解为整个电路的平均翻转比例,关于跳变频率a,它也是电路在没1/f 时间内产生的电平跳变(平均)次数。
如这里栗子,a=25%;
f 是 clock frequency,Ceff 是有效负载电容,Vdd 是芯片电源电压;
关于跳变功耗,以反相器为例,设Vin 是周期为f的方波,当输入端Vin从高电平变为低电平时,P 管逐渐打开,而N管逐渐闭合,这时候电源端Vdd给等效电容CL充电,Vout逐渐跳变为Vdd; 当Vin 从低电平变为高电平时,N管逐渐打开,而P管逐渐闭合,电容CL 开始放电到地端,这个过程理解为跳变功耗。
2)Internal power 是在输入从0到1或者从1到0瞬变过程中,NMOS管 和 PMOS管 同时导通的短路电流消耗的功耗;也称作短路电流功耗;
对于更低阈值电压或者 transition time 大(开关频率较低)的晶体管 internal power 占整个动态功耗的主要部分;
有以下办法可以降低翻转功耗:
(1)使用clock gating 技术
减小活动因子是降低翻转功耗的办法之一,这个方法已经很成熟,易于采用;
(2) 减小毛刺Glitch
减少毛刺会使活动因子变小,进而帮助降低功耗;
竞争和冒险是数字电路中存在的一种现象。
竞争: 在组合电路中,信号经由不同的途径达到某一汇合点的时间有先有后,这种现象称为竞争
冒险:由于竞争而引起的电路输出发生瞬间错误现象称为冒险。表现为输出端出现了原来设计中没有的窄脉冲,常称为毛刺。
有竞争不一定会产生毛刺,有毛刺就一定有竞争。
(3)减小等效负载电容
电容来自于电路中的连线以及instance的负载。结合后端的实现来讲,可以从缩短互连线的长度,来减小等效电容,两者基本正相关。当然,通过优化设计以降低逻辑门总数和对应的面积来减少等效电容。
(4)降低系统的电压
动态功耗与电压有平方的关系,降低电源电压可以显著降低功耗。
将芯片划分成多个电压域,每个电压域可以根据特定电路的需要进行优化。例如,对于存储器采用高电源电压来保证存储单元的稳定性,这种方法目前已经普遍使用在power敏感的设计中,易用;对运行速度较低的电路采用较低电压来设计;
(5)动态电压调整DVS
CPU处理不同的任务有不同的性能要求。对于低性能要求的任务,可以使时钟频率降低到足以按预定时间完成任务的最低值,然后使电压降低到该频率下工作所需要的最小值就可以节省大量的能耗。
(6)降低频率
动态功耗正比于频率,芯片只应当工作在所要求的频率下,不能比所要求的还要快。降低频率还可以采用较低的电源电压,大大降低功耗。
(7)使用谐振电路
谐振电路通过使能量在储能元件如电容或电感之间来回传送而不是将能量泄放到来减小翻转功耗。
落脚到后端这块,后端的小伙伴,可以关注一下,这些是如何反应在后端相关的设计中;欢迎讨论。
更多讨论请关注: