功耗是老生常谈的话题了,对于功耗,我们通常都比较熟悉。但是,作为普通消费者,我们更多的是关注设备会带来多少能耗。而作为设计人员,则需要考虑如何实现低功耗。本文中,小编将和大家聊聊什么是CPU的TDP功耗,以及探讨一些降低FPGA功耗的方法。如果你对功耗问题比较关注,不妨继续往下阅读哦。
一、什么是CPU的TDP功耗
TDP的英文全称是“Thermal Design Power”,中文翻译为“热设计功耗”,是反应一颗处理器热量释放的指标,它的含义是当处理器达到负荷最大的时候,释放出的热量,单位为瓦(W)。
CPU的TDP功耗并不是CPU的真正功耗。功耗(功率)是CPU的重要物理参数,根据电路的基本原理,功率(P)=电流(A)×电压(V)。所以,CPU的功耗(功率)等于流经处理器核心的电流值与该处理器上的核心电压值的乘积。而TDP是指CPU电流热效应以及其他形式产生的热能,他们均以热的形式释放。显然CPU的TDP小于CPU功耗。换句话说,CPU的功耗很大程度上是对主板提出的要求,要求主板能够提供相应的电压和电流;而TDP是对散热系统提出要求,要求散热系统能够把CPU发出的热量散掉,也就是说TDP功耗是要求CPU的散热系统必须能够驱散的最大总热量。
现在CPU厂商越来越重视CPU的功耗,因此人们希望TDP功耗越小越好,越小说明CPU发热量小,散热也越容易,对于笔记本来说,电池的使用时间也越长。Intel和AMD对TDP功耗的含义并不完全相同。AMD的的CPU集成了内存控制器,相当于把北桥的部分发热量移到CPU上了,因此两个公司的TDP值不是在同一个基础上,不能单纯从数字上比较。另外,TDP值也不能完全反映CPU的实际发热量,因为现在的CPU都有节能技术,实际发热量显然还要受节能技术的影响,节能技术越有效,实际发热量越小。
TDP功耗可以大致反映出CPU的发热情况,实际上,制约CPU发展的一个重要问题就是散热问题。温度可以说是CPU的杀手,显然发热量低的CPU设计有望达到更高的工作频率,并且在整套计算机系统的设计、电池使用时间乃至环保方面都是大有裨益。目前的台式机CPU,TDP功耗超过100W基本是不可取的,比较理想的数值是低于50W。
二、如何降低FPGA设计的功耗
1.状态机编码:大量的逻辑资源是由实现的有限状态机的类型来定义的。One-hlt状态机编码创建每个状态的一个触发器的状态机,与Gray和二进制状态机,较少利用one-hot状态机可以获得功效更好的设计。一些综合器软件能自动对状态机进行编码,但最有效的方法是直接在HDL代码中定义状态值。
2.保护赋值:赋值保护的关键在于:若最终的输出不需要更新,则阻止输入信号向下传播到其它逻辑块。对输入信号的赋值保护可确保仅在适当时改变输出值,从而将不必要的输出开关减至最少。
在大型组合逻辑(例如宽总线复用器)的输入端加锁存器,这能抑制无效的开关活动,因为仅当输出需要更新时输入才被锁好。类似地,可利用控制寄存器来打开或关闭低级别的模块(如子模块中的状态机)。使大总线和子模块保持在一个恒定状态有助于减少不相关输出开关的数量。
3.组合环:在不注意的时候,设计师偶尔可能在FPGA设计中创建了组合环。当一组相关的组合逻辑在特定的条件下不断振荡时,就会形成这些组合环。振荡器将消耗FPGA中的许多电流。因此,最好是评估振荡器,或确保在重新评估之前任何反馈逻辑都由一个寄存器来进行门控。
4.门控时钟:对于暂时不使用的模块,系统可以减慢或停止其时钟。在任一给定时间,通过时钟可以节省功耗。门控时钟可以极大地节省功耗,因为有源时钟缓冲器的数目减少,翻转触发器的次数将减少,因而那些触发器的输出端将减少可能反转。门控时钟要求仔细地规划和分割算法,但节省的功耗相当可观。