0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何压低芯片的功耗

Hack电子 来源:Hack电子 作者:Hack电子 2022-11-10 14:44 次阅读

本篇故事性可能没那么强^^, 我们来讲讲低功耗。其实低功耗这个话题前面我写文章讲过,今天我们从芯片设计的全流程重新总结一下如何压低芯片的功耗。

1 为什么要压低芯片功耗

这事儿其实好理解,原因很多,比如电源网络不好设计,芯片容易失效等等。但是最重要的我认为就两点(敲黑板):

续航太短,散热太大。

对于移动设备,比如手机,电池供电的,功耗太大会缩短续航,你肯定不乐意充电一整天,电话三分钟。

那要是插电设备呢?你肯定不乐意用个核显还非要上个水冷。所以综上所述,功耗要尽量做小就是了。

2 集成电路的功耗来源

既然要优化功耗,我们先看看功耗是怎么造成的。现代大规模集成电路里面广泛用的是CMOS, Complementary Mosfet, 互补的晶体管。原理上上下两个晶体管不同时导通,应该没有功耗,妥妥的永动机(狗头)。但实际上有非理想因素在,功耗就是这么产生的。

a1adbe1e-60ac-11ed-8abf-dac502259ad0.jpg

·电容充放电电流。看图a, 实际上晶体管与地之间是有点容的。所以输入从0到1变化的时候会导致这个电容充放电。当input为0的时候能量从VDD冲到了电容, input 为1的时候能量直接流到地。

·短路电流。由于晶体管非理想,存在某个电压,NMOS和PMOS都导通,导致直接有VDD到VSS的通路。产生电流。

·漏电流。漏电流是input稳定的时候,其实vdd和vss之间也有细微的电流流过产生功耗。

电容充放电和短路电流是动态功耗,漏电流是静态功耗。动态功耗一般来讲远大于静态功耗。抓大放小,我们这个地方主要记住大头充放电功耗怎么算的。

a1cb5af0-60ac-11ed-8abf-dac502259ad0.png

N是晶体管数量。

A是翻转因子。

C是寄生电容。

V是电源电压

F是频率。

所以power和VDD二次方成正比,和频率一次方成正比。主要降低功耗也就是围绕这几个因子来转。

为了后面看着方便,这五个变量,代表了什么,再复习一遍。

3 功耗优化全流程

此处我们给出一个功耗优化全流程中各个时间点需要注意的功耗优化方法。图似乎有点小。看详细说明。

需要注意两点:

1.下图列的并不是全部的低功耗手段,只是一些我们容易干预的低功耗手段,比如在第四步流片制造中代工厂显然可以优化工艺,降低漏电流,不过对芯片设计来讲这已经属于环境因素了。

2.下图只列了芯片功耗的优化,在5步骤封装测试中还有板级功耗的优化,不在芯片设计讨论范围内。

a1dc7ee8-60ac-11ed-8abf-dac502259ad0.jpg

3.1 概念计划阶段

降低N:限制规格。概念计划阶段优化功耗的手段虽然不多,但是效果其实是最明显的。盛传一句话,上面一张嘴,下面跑断腿。概念计划就处于这么一个上面的位置。后面操作只能说是功耗优化,概念阶段确定的规格可以直接框定功耗的大致范围。此处团队需要深入了解市场,确定什么功能要解决市场的痛点,必须做进去,什么东西是个伪需求,不要做进芯片徒增功耗。比如人脸识别的芯片你非要加入一个GPS导航,这功耗不就上去了。再比如给笔记本的芯片,你强行造出一个台式的功耗,肯定也是不行的。

识别什么特性是必须的,什么特性可以砍掉,是功耗重要,还是性能重要。在概念计划阶段就要搞明白。

比如下面这两个东西,功耗肯定是差异巨大的。

3.2 设计验证阶段

功耗优化的大部分手段出在设计验证阶段。我们一个一个来讲。

3.2.1 算法

算法阶段优化此处介绍三个常用的。

降低A和N:减少计算复杂度。算法最有效的做法是直接减少算法的复杂度。比如同样一个人脸识别的AI芯片,在识别精度相同的情况下,使用VGG明显比使用ResNet甚至MobileNet这些轻量化网络费功耗的多。所以算法部门一个永恒的目标是如何在不太损失精度的前提下降低计算复杂度。有时候同样一个任务精度一样计算复杂度可能会降低十倍不止。

降低A:算法优化翻转概率。这个事情比较玄学。比如训练一个神经网络,尽量让网络推理的过程中翻转概率最低。再比如算法来个自适应,在信号比较好的时候采用一个比较弱的信道估计,在信号不好的时候启动比较强的信道估计等等。

降低N:降低计算精度。对于芯片来讲,除了特殊需求,大多数计算都是定点的。那采用什么精度的定点就很容易影响功耗。比如计算神经网络的时候,由于网络自身就可以容错,算法可以不断压缩定点。比如用个8bit, 4bit看看结果如何。这部分大量运用于各类芯片。尤其神经网络,通信等等。如何降低精度有一系列的办法。采用指数压缩,分组定点化等等。举个简单的例子,可以让神经网络不通层有不同的定点化来降低计算精度。

a20518c6-60ac-11ed-8abf-dac502259ad0.jpg

举个简单的例子,把两个浮点的指数为共享,这样相同精度下节省存储量,或者相同比特位宽下提高精度

3.2.2 概设

概设阶段主要是从模块级对芯片的功耗进行控制。

降低A:Clock Gating。一般模块级的clock gating信号都要我们手动根据设计功能加入的。比如在CPU核没有任务的时候要把CPU的clock直接关掉,节省时钟网络的功耗。

降低V:Power Gating。对于能预测长时间不用的模块,要设计power gating, 将不用的模块直接关掉。如下图所示,一个CPU系统,其实Memory可能不能掉电,Core和MAC什么的如果不用都可以power gating。

a2301b7a-60ac-11ed-8abf-dac502259ad0.jpg

power gating有一定成本(功耗和面积上都有),所以一个模块要不要做power gating要逐个分析。

降低V:Multi-VDD。现在的芯片都比较大,没必要所有模块都跑在一个电压下。比如下面这样,CACHE RAMS电压高一点,SOC部分电压可以低一点。

a2426230-60ac-11ed-8abf-dac502259ad0.jpg

降低F: Multi-Clock Domain。和上一条往往有联动关系,这个地方还附带有另一个效果,降低F。可以根据电压域讲芯片分为若干的时钟域,有些部分时钟慢一些来减小功耗。

降低V和F:DVFS。Dynamic Voltage and Frequency Scaling。这个是现代芯片中非常常用的手段。根据业务负载自动的调整电压和频率。如下图所示,一般来讲,电压越高芯片能跑的频率也就越高。DVFS就是反其道行之。比如手机只有2G网,手机芯片就显然不用跑在最高频率。从而可以大量减少功耗。

a2588b96-60ac-11ed-8abf-dac502259ad0.jpg

3.2.2 编码

接下来就到了最喜闻乐见的编码阶段。

个人认为这个部分功耗的优化有用,但有的明显,有的不明显,和i++与++i有异曲同工之妙,比如常见的FSM状态机要用格雷编码这事儿,就只能说节省了,但仿佛又没有节省。但由于编码自带炫技属性,所以写代码的时候还是要在意一下,此处讲讲我觉得最重要的三点。

降低A或者V:Memory Cell的低功耗使用。这个在编码阶段是绝对要注意到的。SRAM对于数据处理类的芯片来讲功耗开销非常大。这个我们重点讲讲。

·存储量大的情况下尽量使用Memory。采用SRAM cell实现的读写比使用寄存器堆使用的读写省功耗。所以如果存储量够大,建议使用SRAM。

·选用低功耗的SRAM Cell。SRAM cell一般都是由memory compiler生成的。比如购买ARM的compier. 一般来讲会提供各种类型的SRAM cell。尽量选择低功耗的SRAM cell。

·SRAM Cell要尽量使用低功耗mode。SRAM一般会留出power gating, deep sleeping, retention, clock gating等等端口,这些端口要根据实际情况用起来,SRAM不用的时候要把它低功耗起来。

·避免无意义的读写。SRAM的读写都是有功耗的。比如访问嫌麻烦,降rd_en一直拉有效这种做法是要避免的。同时,即使没有wen, 数据端口信号变化也会产生功耗,能不变尽量不变。

降低A:操作数隔离。比如加法器,乘法器这些部件,组合逻辑,只要操作数有变化就会产生功耗。所以采用操作数隔离,将不用的操作数直接置0可以省功耗。

a27d1cf4-60ac-11ed-8abf-dac502259ad0.jpg

降低A:自动门控。这个非常好实现,节省功耗效果还算明显。综合工具可以直接帮忙加入。如下图所示,只要代码风格写的好,综合工具就能自动帮你门控。

a290521a-60ac-11ed-8abf-dac502259ad0.jpg

如果不开低功耗的综合,综合出的电路是这样的

a29efb08-60ac-11ed-8abf-dac502259ad0.jpg

如果开了低功耗的综合,综合出来就是这样的

a2b23c86-60ac-11ed-8abf-dac502259ad0.jpg

如果Q就1两个bit,那其实使用mux更省一些。如果Q比较宽,例如Q为32bit的话插入ICG就收益非常明显。

既节省了功耗,1个ICG肯定是小于32个mux。所以自动门控可以既节省功耗,又节省面积。

降低A:无复位寄存器。数据通路上往往还有办法。。。比如大量使用寄存器的地方,其实可以不用复位,采用无复位的寄存器,既可以节省面积,防止拥塞,又可以节省功耗。

3.2.3 实现

这个步骤主要是由DC搞逻辑门优化的骚操作。不需要我们干预什么,比如下面这样。

a2d613fe-60ac-11ed-8abf-dac502259ad0.jpg

对于上面这种,对于一个门有可能各个Pin的功耗其实不一样的。把变化率低的信号mapping到低功耗的pin上就有好处。

3.2.4 较为激进的新技术

这部分可能目前的芯片不一定用的上。先提一嘴。等着技术发展。后面也可以专门写写这些新技术。

·Process In Memory,存内计算。能节省Memory到计算单元的搬运功耗。

·Nonvolatile Memory, 非易失存储。用非易失的存储,一方面,读功耗比SRAM小,二方面,不用就关电压。

·亚阈值/近阈值技术。设计电路,降电压降到阈值附近甚至低于阈值。增大静态功耗的代价换取小的动态功耗。

3.3 流片制造阶段

这个阶段其实对于设计者来说大多数不可见的。我们讲讲两个可见的。主要是std_cell可以选择。理论上,随着工艺的演进,电压会降低,但是由于工艺越先进,一般芯片做出来频率越快,单位面积上的晶体管也更大,所以工艺演进对功耗的影响其实不好说。

3.3.1 Multi-bit Cell

比如寄存器,这个东西版图一般是由代工厂来给的。单个寄存器版图如下图。

a2f5a78c-60ac-11ed-8abf-dac502259ad0.jpg

如果这个东西不定制,DC会搞出两个一毛一样的cell,这时候提供这样一个2bit cell

a30730ba-60ac-11ed-8abf-dac502259ad0.jpg

或者这样提供一个4bit cell,功耗就能小。

a31a1aa4-60ac-11ed-8abf-dac502259ad0.jpg

能降功耗主要归功于clock pin电容降低了,时钟树buffer减小了。绕线也变短了。

3.3.2 提供不同阈值的晶体管

一般来讲,代工厂会提供好多种阈值电压的cell. HVT和LVT就是两种典型cell。HVT晶体管不容易switch, 功耗低LVT速度更快,但功耗更大。

a341042a-60ac-11ed-8abf-dac502259ad0.jpg

3.4 封装测试阶段

封装测试阶段芯片其实已经都定型了,芯片本身的功耗优化还剩最后一个手段。AVS。AVS指的是Adaptive Voltage Scaling。基本原理是芯片做出来后筛选一波。有些芯片正好就造的比较好,那就降低点电压,有的芯片造的不行,只能提电压。由于工艺误差等等各方面因素,芯片就是有体质的不同。。。比如intel的CPU,有的能超频,有的超不动。这个阶段就在疯转测试阶段来做。筛片降功耗。

a35662a2-60ac-11ed-8abf-dac502259ad0.jpg

4 总结

本文是这个系列的一篇彩蛋,讲讲从全流程如何优化芯片的功耗,只能讲个大概,实际情况还需要在项目中摸索。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50397

    浏览量

    421795
  • 集成电路
    +关注

    关注

    5381

    文章

    11384

    浏览量

    360852
  • CMOS
    +关注

    关注

    58

    文章

    5680

    浏览量

    235140

原文标题:一颗芯片的前世今生:何为低功耗

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    功耗SOC芯片的优势

    在现代电子设备中,低功耗SOC芯片扮演着越来越重要的角色。它们不仅提高了设备的能效,还为小型化、高性能和成本效益提供了可能。 1. 能效比的提升 低功耗SOC芯片的设计核心在于优化能效
    的头像 发表于 10-31 14:52 313次阅读

    Orin芯片功耗分析

    随着自动驾驶技术的飞速发展,对计算平台的性能和功耗要求也越来越高。NVIDIA的Orin芯片作为自动驾驶领域的重要参与者,其功耗表现对于整个系统的能效比至关重要。 一、Orin芯片概述
    的头像 发表于 10-27 15:45 405次阅读

    物联网系统中常用的低功耗自组网无线传输方案(三)_蓝牙芯片

    01 物联网系统中为什么要使用蓝牙芯片 物联网系统中使用蓝牙芯片的原因主要基于蓝牙芯片在连接性能、数据传输、功耗、安全性以及应用灵活性等方面的优势。以下是详细分析: 低
    的头像 发表于 09-29 17:11 371次阅读
    物联网系统中常用的低<b class='flag-5'>功耗</b>自组网无线传输方案(三)_蓝牙<b class='flag-5'>芯片</b>篇

    栅极驱动芯片选型低功耗原因

    栅极驱动芯片选型时考虑低功耗的原因主要有以下几点: 1. 降低系统能耗 低功耗的栅极驱动芯片能够显著降低整个系统的待机功耗,这对于需要长时间
    的头像 发表于 09-18 09:20 337次阅读

    一款4644芯片功耗设计思路解析

    输出并联使用。 功耗是衡量芯片性能的一个重要指标,功耗越低,电子设备的续航时间越长,减少了散热问题,降低能耗。ASP4644单通道工作时,通过拉低RUN引脚使芯片进入关断模式,此时
    发表于 08-16 14:44

    不间断电源输出电压低怎么维修

    的输出电压低,可能会导致设备无法正常工作,甚至损坏。本文将介绍不间断电源输出电压低的原因、诊断方法和维修步骤。 1. 不间断电源的工作原理 在深入了解不间断电源输出电压低的维修方法之前,我们首先需要了解其工作原理。不间断电源主要
    的头像 发表于 07-16 14:35 909次阅读

    LMV65x 12MHz低电压低功耗放大器数据表

    电子发烧友网站提供《LMV65x 12MHz低电压低功耗放大器数据表.pdf》资料免费下载
    发表于 06-18 11:54 0次下载
    LMV65x 12MHz低电<b class='flag-5'>压低功耗</b>放大器数据表

    LMV721 LMV722 10MHz低噪声低压低功耗运算放大器数据表

    电子发烧友网站提供《LMV721 LMV722 10MHz低噪声低压低功耗运算放大器数据表.pdf》资料免费下载
    发表于 06-05 09:13 1次下载
    LMV721 LMV722 10MHz低噪声低<b class='flag-5'>压低功耗</b>运算放大器数据表

    PC93XX高耐压低功耗线性稳压器/LDO数据手册

    电子发烧友网站提供《PC93XX高耐压低功耗线性稳压器/LDO数据手册.pdf》资料免费下载
    发表于 06-03 14:56 2次下载

    OTP低功耗语音芯片的工作原理与产品特性

    OTP低功耗语音芯片的工作原理:在于其独特的电路设计以及先进的制程技术。该芯片采用了先进的低功耗设计策略,包括低漏电晶体管、动态电压调整以及智能休眠模式等,确保在保持高性能的同时实现低
    的头像 发表于 04-30 08:06 573次阅读
    OTP低<b class='flag-5'>功耗</b>语音<b class='flag-5'>芯片</b>的工作原理与产品特性

    芯片功耗组成—internal power与总功耗的理解

    对于芯片设计和优化来说,理解芯片功耗的组成部分、影响因素以及采取的优化措施是非常重要的。只有全面考虑功耗问题,才能设计出性能稳定、功耗低的
    的头像 发表于 03-29 14:47 3013次阅读

    M3芯片功耗是多少

    M3芯片功耗相对较低,这主要得益于其先进的制程工艺和高效的设计。
    的头像 发表于 03-11 16:43 1317次阅读

    PCB厂家偷偷用的合封芯片技术,省空间低功耗低成本的合封芯片

    PCB厂家偷偷用的合封芯片技术,省空间低功耗低成本的合封芯片
    的头像 发表于 12-08 15:35 675次阅读

    650V高压低功耗非隔离电源芯片eNJ8665

    650V高压低功耗非隔离电源芯片,默认输出12V,最大电流2A,具有输出可设置3-24V
    发表于 12-01 19:19 0次下载

    芯片功耗组成—internal power与总功耗的理解

    静态功耗(漏电功耗)是指芯片待机状态下所产生的的功率消耗,来源于MOS管内部的泄漏电流;泄漏电流有多个组成部分
    的头像 发表于 12-01 14:25 1.4w次阅读
    <b class='flag-5'>芯片</b><b class='flag-5'>功耗</b>组成—internal power与总<b class='flag-5'>功耗</b>的理解