在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6216|回复: 11

[转贴] 浅论芯片低功耗的设计实现

[复制链接]
发表于 2020-1-20 11:37:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 固执的寻觅 于 2020-1-20 11:39 编辑

众所周知,随着芯片越来越大,功能越来越丰富,以及移动市场的切实需求,低功耗的芯片设计,越来越受到推崇。这里,结合多年的低功耗设计经验,把一些理念和方法,分享给各位。
通过一些理论书籍,大家都知道功耗的来源主要分为两种,一种是动态,一种是静态。
先来看一下,动态功耗的计算公式为,
dynamic power = switching power + internal power
switching power 计算公式为:

                               
登录/注册后可看大图

由此可知,动态功耗和频率、关断时的负载电容以及电压的平方成正比,换言之,可以通过,改变频率、负载电容以及电压来改变动态功耗。

internal power 计算公式为


                               
登录/注册后可看大图

这里的tsc指的是NMOS/PMOS internal短路的时间。Ipeak指的是整个短路电流和导通电流的总和。

在实际的std-cell library里,工具使用了一个简化的查找表方式来处理internal-power,示例如下

P = func(input_transition, input_pin_condition, output_capacitance)

漏电功耗(leakage power)的计算模型


                               
登录/注册后可看大图

对应的漏电电流计算公式是:


                               
登录/注册后可看大图

这里的Vth, CoxW/L都是工艺相关,不可以调整,Vgs就是VDD,Vt指的是阈值电压。可以看到,阈值电压越高漏电功耗就越低,但是由于工艺复杂的增加,阈值电压越高的器件,对应的翻转速度就会变慢,导致影响性能
基于以上的理论,可以推导出下表:


                               
登录/注册后可看大图

下边就一起来看一下,目前的设计领域里边流行的那些降低功耗的技术手段吧。


clock gating

这个是一个在综合器里非常常用,也很通用的手段,一些细节的讨论可以参见以下链接文章Clock Gating之浅见

总而言之,clock gating不但可以优化动态功耗,同时还可以优化面积(具有漏电功耗提高的可能),这里也有一些别的数据作为参考

… reports an area reduction of 20% and a power savings of 34% to 43% depending on the operating mode

综合工具在自动插入clock gating的时候,把原有的data上的通用逻辑加以整合,挂到了clock 的EN控制端,这样就可以大幅度的节省面积,尤其是在多位宽的总线。反言之,在非常窄的总线上,clock-gating在面积和功耗上不一定会有效果,譬如小于三位的总线。

工艺演进

随着晶体管的尺寸越来越小,三极管导通所需要的电压也就越来越小了,从上边的表哥里边可以看到,降低电压,可以有效改变动态功耗的处境。

从40/28nm的0.99v到现在7nm的0.7v,通过改变工艺都可以有效降低动态功耗。相反,对于相同尺寸的die,工艺的提高预示着可以放置更多的管子。

芯片的功耗随着工艺的提高,呈现出整体放大的趋势,尤其是漏电功耗,如下图


                               
登录/注册后可看大图

先进工艺的性能和速度大幅度提高,追击先进工艺是大势所趋,但是相应的,现代芯片的功耗挑战,会比以往来得更猛烈。


power gating (可关断电源

电压降低了,动态功耗确实可以变小,但是Vdd和Vth的差值会变得更小,Vth (阈值电压:MOS导通时所需要的的电压)更不可能一直毫无代价降低,所以,在实际的实现中,使用Switchable Power domain的方式,来整体关断某个或者某个区域、层级的器件,从而来降低整体静态功耗。这个实现电源控制的器件,就叫做power gating。

原理很简单,就是在当前的std-cell的PG rail上面加一个开关,通过外界信号来控制,从而达到可以std-cell电源的目的


                               
登录/注册后可看大图

仔细想一下,这种结构可以所在std-cell的内部,也可以做在power rail上,前者通常被叫做fine gating,后者会被称作coarse gating。第一种的设计效果更好,甚至可以具体到某一个std-cell的电源开关控制,但是std-cell面积会变大。第二种,显而易见,如果使用在rail上,精细度会变差,但是,面积会很有优势,具体的实现方法也会简化。具体的比较如下表:


                               
登录/注册后可看大图

结合实际,在正常的使用中,并非所有的std-cell都需要单独控制,大部分都是一个功能模块的整体调配,所以现在很多设计里边都会使用coarse gating而非fine gating的实现方法(如果真的使用fine gating,不知道后端实现工程师会不会咬人)


模块关断的方法可以大幅度降低leakage,但是也会带来一些新的挑战,主要是后端实现的时候:isolation,power switch 以及PG route都会有很大的变化。

除此之外,前端的low power仿真也需要格外注意,如果某些scenario没有考虑好,核心模块在不期望的时候被关断,那么会引起系统性问题的。具体加下表:


                               
登录/注册后可看大图

动态电压和频率调节(Dynamic Voltage and Frequency Scaling)和自适应电压调节Adaptive Voltage Scaling (AVS)

在当下,为了节省功耗,各位工程师也是拼了。在后端实现的不断调整和改变的同时,前端的TX们也没有闲着。DVFS就是一个基于设计,功能原理的有效降低功耗的一个典型方案。

在芯片的实际使用中,真实的使用场景会比较复杂,就拿手机而言,譬如


用户待机的时候,只需要网络连接可能就足够了

听歌的时候可能是不需要屏幕的支持

用户在拍照的时候网络的功能需求也不是很强烈

当你玩游戏的时候,cpu可能就要调度所有的硬件来支持游戏的流程运行,

通过不同的场景,芯片基于用户需求来适当的调度各个功能的使用和性能调节


                               
登录/注册后可看大图

这个示例是一个UART的构造框图,基于这样的一个逻辑架构,规划出不同的使用场景,从而可以展现出不同场景下面所需要的电压和频率。


                               
登录/注册后可看大图

最后可以定义出一个类似上边的一个表格,在系统判断出不同的使用场景后,就会配置出不同的电压和频率值,从而达到不同场景下的功耗优化的可能,这也就是常说的DVFS,类似于一种对于预定义场景的一种查找表的操作。
AVS是在DVFS上边更为先进的一种调整方式,框图如下:


                               
登录/注册后可看大图

和DVFS的简单查找表不同,这里会在系统里边集成一个PM(Performance Monitor),对于系统的运行进行实时监控,通过判断,动态的调整电压和频率,这里可以引入一些自学习的功能,从而根据不同用户的使用习惯,来提供更为细致的自定制服务。可以设想,愈发细致的个性化服务,加之自学习的预判功能,都可以进一步的提高电源功耗的优化。

————————————————

版权声明:本文为CSDN博主「艾思芯片设计」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/i_chip_backend/article/details/90347161

 楼主| 发表于 2020-1-20 11:43:46 | 显示全部楼层
Vt cell的应用

从上一篇文章可以看到,不同Vt下的cell特性是不同的,现在的工艺都会提供不同倾向的Vt库,见下表

Vt-Type        speed        Leakage Power        pin compatible        priority        performence scenario

SVT              normal (1)        low (1)                  yes                        high                common

LVT               fast (1.5)        medium (1.5)            yes                medium        high frequency path

Ultra-LVT        fastest (3)        high (4.5)                    yes                 low                very critical path

可以看到,合理使用不同的Vt cell可以满足不同PPA的需求,在使用过程中,应该优先使用SVT的cell,而后是LVT,最后万不得已的时候再使用ULVT(ULVT的leakage可不是一般的大啊,一般会达到SVT的四到五倍的量级)

工具可以完美支持mix-Vt的设计。工具的策略是,在功耗优化的过程中,根据用户设定的Vt等价置换规则,在不影响timing的情况下,选择leakage小的cell,这样在兼顾性能的时候可以满足power的需求。

由于,后端实现的时候,通常由三个阶段需要用到这个技术手段,这里给出一个通常的应用场景供大家参考


                               
登录/注册后可看大图

秘籍:一定要做最后一步,效果会非常显著,可以有效地提高leakage power。


版图优化

在版图实现当中,后端实现的工具是非常灵活的,低功耗的设计当中,经常会使用到power-domain和voltage-area这些技术来优化power,简单的讲,通过UPF,在设计里边定义一些switch-off power和always domain,在某些功能不使用的时候,就把SW domain关掉,这个时候,SW里的power-gating cell的输出会呈现出一个无线接近电源(footer power-gating)或者地(header power-gating)的状态,从而理论上确保了SW domain的leakage是零(但是,这是指理论的,由于power gating cell本身会有漏电的问题,所以零的漏电只是理论上的)。

这里可以引申出一系列的思路,版图工程师可以尽可能的让更多的cell放到SW domain,从而在实际使用的情境下,可以拿到更好的功耗。看一下这个例子:


                               
登录/注册后可看大图

一条路径,从SW1出发到达SW2,中间一共有四级,其中SW里边有一个buffer和一个isolation,AO里边,有两个buffer ,从power上讲,在SW1和SW2同时关断的时候,这两个AO的buffer,不会有任何的动态功耗(dynamic power),这是因为SW1的isolation的输出已经被钳位(clamp)到无效态(一个常值),但是这两个buffer的leakage power是不能省略的,所以下图的floorplan,从power优化上来讲一定是个更好的选择


                               
登录/注册后可看大图

可以看到,中间的级数没有发生改变,但是之前的buffer1和buffer2,都已经被放置到了SW domain了,这样,在SW关断的时候,这两个buffer的leakage power就是零(理论上)。这里只是一个连接和两个buffer的示例,实际中VA之间的连接非常复杂,通过版图的优化调整,可以让出更多的leakage power。

低功耗设计是一套完整的理论体系,从原理、代码、UPF、综合、版图等等,每个步骤的一点点提高,都会带来不同程度的优化,勿以优化小而不为,点点滴滴的进步就会造就更加节能的芯片实现。

————————————————

版权声明:本文为CSDN博主「艾思芯片设计」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/i_chip_backend/article/details/90486964


发表于 2020-1-20 19:03:56 | 显示全部楼层
thanks a lot
发表于 2022-4-12 17:03:14 | 显示全部楼层
very good
发表于 2022-6-23 10:55:26 | 显示全部楼层
发表于 2022-7-28 00:08:28 | 显示全部楼层
very  good !!
发表于 2022-11-17 20:15:35 | 显示全部楼层
学习
发表于 2023-2-21 10:55:32 | 显示全部楼层
:lol:lol
发表于 2023-2-25 10:11:06 | 显示全部楼层
感谢  学习了
发表于 2023-8-22 15:15:53 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 05:05 , Processed in 0.029917 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表