什么是CPU的热量设计低功耗设计

最好是system/architecture级的设计方法类似于量囮分析方法这种经典著作,但是重点介绍低低功耗设计技术求专业人士推荐。

}

此篇讨论一下架构设计对低功耗設计设计的重要性

事实上,架构设计会极大地影响芯片总体低功耗设计的走向比如CPU的低功耗设计,RISC和CISC的PK就低功耗设计来讲,走了两條不一样的道路

CISC走的是性能路线,先把性能做上去低功耗设计放一边。然后不断地考虑如何散热什么金属片,风扇水冷一起上。反正用在PC上一般人也感觉不出耗电大会有什么明显的问题。

RISC走的是低低功耗设计路线面向的是需要用电池的场景。低功耗设计低是第┅原则性能排第二。对一般人来讲最常接触倒的就是手机了。很长一段时间里人们都在默默忍受着手机速度慢带来的各种延迟,卡頓没办法,手机厂商不敢给你性能更高的CPU,否则电池半天就没电了

很长一段时间,RISC和CISC都是井水不犯河水

再后来,iphone出现了于是两条路線慢慢走到了交叉点。RISC的开发者无法抵御高性能带来的好处的诱惑开始把手机CPU的性能越做越好——当然低功耗设计也越来越高。好在手機其它技术法发展掩盖了一部分CPU大低功耗设计带来的问题。比如电池密度的增加手机快充技术的普及等等。而另一方面RISC的开发着也想在CISC的市场分一杯羹,比如intel的atom的以及nvida的tegra,这些最后都以失败告终同时quacom等厂商也在尝试开发基于RISC的服务器。有朝一日如果apple的A系列CPU用在洎家的mac上,我有一点也不会觉得惊讶

关于RISC和CISC的PK,此处按下不表但是此处有一个我们比避不开的问题,那就是到底什么东西决定了某个產品应该走低功耗设计路线还是性能路线更一般性地说,什么指标决定了性能低功耗设计之间的关系答案是『能耗比』。

能耗比的定義是『单位计算消耗的电能』举个例子:

为了实现C=A*B的计算,我可以有很多办法

方法3:我们设计可以用通用CPU来计算(假设系统里集成了CPU),这时候的能耗包括了多个CPU指令比如从存储器取指令,取数据做乘法,数据写回存储器等等

如果仅仅考虑这一步的乘法,方法3的能耗比应该是最差的因为CPU除了乘法以外,多做了好多事情而这些事情都是要耗电的。至于方法1和2的孰优孰劣就具体情况具体分析了茬此,我们得到了一个规则1:那就是——『专用的电路在低功耗设计上好过通用的电路』

在上一篇(低低功耗设计设计(0))中,我们嘚出的一个基本结论是一切都是trade-off。当我们谈到『能耗比』时自然也不能例外。低功耗设计性能,电路面积是可以trader-off的上面谈到的RISC和CISC嘚比较就是一个很好的例子。关于CPU,显卡都有一个所谓的能耗比测试就是跑一段特定的程序,比如有大量的数学计算或者有大量的外设讀写,亦或是一段大量的循环的程序测试在特定场景下消耗的低功耗设计。

关于架构对能耗比的影响另一个现实的例子是CPU和GPU之间的PK(後来FPGA,TPU也加入了这场战斗)。CPU和GPU都可以完成数学运算并且都走的是性能路线,两者的峰值性能都可以很高但是他们『异构』的,采用了兩种不同的设计思路CPU处理单个复杂运算可以达到极高的性能,而GPU在处理多个简单并行的运算时有极大的优势这好比一个巨人和一群蚂蟻之间的PK,巨人可以一次搬动一段大石头一群蚂蚁需要分几次才能完成;如果我们要搬动的是一包大米,并且只能一粒一粒地搬明显┅群蚂蚁来完成就更具优势。 在此我们得出了规则2——『能耗比是要区分场景的,不同的架构适用于不同的场景』Google的TPU在人工智能运算嘚能耗比据说九比CPU,GPU,FPGA都要高,就是这条规则的很好体现(其实也是规则1的体现)说个题外话,在google公布了自己的TPU技术性能之后nvidia的黄仁勋就發表了一篇自己GPU P40和Google TPU比较的文章()。其中一张图如下:

老黄像证明自己的GPU性能更好但是在这样的性能下,P20的低功耗设计是250W而TPU只有75W, 前者昰后者的3.3倍,换句话说如果前者的性能没有达到后者3.3x,在能耗比这个指标上还是处于劣势的。

具体到某个特定的电路如果你把能耗仳当作是一个考虑因素,任何微架构的设计都会影响电路的能耗比

再举一个小一点的例子,假设我们要实现4个点的运算如下:

I1~I4是4个点嘚输入,P1~P4是4个点的输出首先可以想到的方法是是,每次取一个点然后做乘法运算,输出一个点再取下一个点,直到第4个点运算完成我们首先想到的方法是:

如果In和X的位宽很大,比如都是20个bit运行速度是500M或者,用65nm的工艺实现那么为了在一个周期里面完成,综合工具會生成一个巨大无比的乘法器同时低功耗设计也会很大。由于低功耗设计大是由于速度极限造成的于是我们可以想到,可不可以每次處理两个点然后把时钟周期降下来,此为方法2:

方法2:设计电路 P0 = I0 * X, P1 = I1 * X, 每个周期取两个点做两次乘法,总共分两个周期完成(方法1是4个周期)这样我们可以把时钟周期降为原来的一般250Mhz。相较于方法1我们花了一样的时间(2ns*4 or 4ns*2=8ns)完成了一样的运算。但是方法2由于速度下降了综合工具可能会生成一个相对合理的乘法器,单个乘法器的低功耗设计也会变小这个方法的缺点是,我们需要两个乘法器电路而这兩个乘法器的面积可能还是会超过一个可以运行在500Mhz的乘法器。

由上面的小例子我们得出了规则3:完成相同的运算量更多的并行可以带来能耗比的降低。

综上关于能耗比,我们总结了3条规则:

规则1:专用的电路在低功耗设计上好过通用的电路

规则2:能耗比是要区分场景的不同的架构适用于不同的场景

规则3:完成相同的运算量,更多的并行可以带来能耗比的降低

这三条规则的基本假设是需要完成相同的運算量,使用特定的工艺

架构的选择是如此的重要,以至于一个公司一旦选择了一个架构就会在选择的路上披荆斩棘,直至走路死胡哃当你使用一个架构的时间越长,你投入的人力物力就越多此时,换架构意味着推到重来有几个公司有这样的资源和魄力?架构的妀变成本是如此之高以至于很多公司即使发现走入了死胡同也无法转身。

最后推荐Matt Severson关于Quacom 整个芯片低低功耗设计设计的PPT,里面有一些干货:

}

        便携性电子产品在我们的生活中扮演了极其重要的作用而便携性设备一般都是采用电池供电,在同等电能提供下低低功耗设计设计的产品就能够工作更长的时间。时間就是生命因此低低功耗设计设计在便携性产品设计中占据着很重要的地位。

        我们知道MCU的尺寸越大其内部包含的晶体管就越多,消耗嘚能量就越多因此在选择MCU时尽量选择低低功耗设计系列的MCU,并且选择尺寸尽可能小的MCU;另外MCU的供电电压、时钟频率、外设数目和运行模式也是影响低低功耗设计的关键因素所以说在满足系统性能正常、MCU工作正常的情况下,尽可能的降低MCU的工作电压、MCU的时钟频率、外设数目和合理的选择MCU的工作运行模式都能降低低功耗设计

MCU引脚配置基本原则

        我们知道电压与低功耗设计有着密切的联系,因此低功耗设计的降低可以考虑使用多电压动态管理模块无论是使用硬件还是软件进行动态管理,都需要在设计中加入电压模式控制单元该模块的功能昰:系统不工作时, 进入IDLE模式 这时候可以关掉不工作模块的电源; 当系统工作时, 给工作模块提供正常电压这个模块可以是软件实现,也可以是硬件实现

        系统中的低功耗设计都是硬件单元消耗的,但是软件组织对硬件的低功耗设计有着很大的影响在设计过程中,系統的功能可以用硬件实现也可以使用使用软件进行实现。低低功耗设计软件的设计需要注意:在满足系统应用的基础上速度应该尽可能慢,电压应该尽可能低尽可能满足时间要求。 在设计算法时 要分析该算法需要多少ALU操作, 需要多少次存储器访问, 要尽量使那些耗能多嘚操作最小化。

1)使用Wait替换查询方式

常见的查询方式如下此时CPU无事可干,白白消耗电能

可以使用等待事件的方式来节省电能。

先配置ADC為事件源并使能相应的中断:

当ADC转换完成后,唤醒处于等待的CPU:

        尽可能地使用低低功耗设计运行模式;如果不能使用低低功耗设计模式那就将主频降低到满足应用的最小值; 尽量使用MOS管做为外部功率扩展器件,因为MOS管是电压型驱动MOS的导通内阻低通常只有几十个毫欧,所以说要比普通的晶体管省电片外IC的电源最好都能由MCU的IO控制比如说我们常用的24C02,由于它是掉电记忆的所以我们完全可以在它不工作的時候关掉它的电源。为了降低产品的低功耗设计在电子产品开发时尽量采用低电压低低功耗设计的器件。

  • 姓名:仝启龙 学号: 本文转自 單片机公众号 【嵌牛导读】 AD程序我们经常是模仿别人已有...

  • 本文简单地介绍了MCU及MCU相关的开发工具并引用IC insights和IHS两个重要的市场研究机构说明了MC...

  • 戀爱中的臆想, 生活中的琐碎 这两者是最极端的分歧。 把一切矛盾转为冷静 把一切委屈转为宁静, 把一切不甘心转...

}

我要回帖

更多关于 cpu热设计功耗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信