路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

解决系统性功耗问题的EDA工具还是没能出现

已有 1042 次阅读| 2018-6-14 21:25 |个人分类:验证前沿资讯|系统分类:芯片设计

现有的EDA工具只能够帮助解决局部的功耗问题,如果想要解决更高层次更大范围的功耗问题,EDA厂商们必须制定一套新的规范。

 

功耗已经成为芯片设计中一个主要的考虑因素,也是目前设计和优化主要考虑的三个因素之一,与芯片性能指标一起变得越来越重要,几乎超过了面积的重要性。


但是EDA工具在功耗优化方面所能提供的帮助是非常有限的。功耗问题不只是一个优化问题(optimization problem)而且还是一个设计问题(design problem),目前EDA工具在功耗的设计上几乎没有任何帮助。在设计代码完成之后的我们一般利用EDA工具来进行设计实现的自动化及对设计的优化。对于功耗设计这方面来说,可能为时已晚。

 

Sonics公司首席技术官Drew Wingard, 设计大型芯片的公司几乎都会遇到芯片由于漏电导致发热严重的问题,并且随着芯片规模越来越大,他们需要花费更多精力在这个上面。对于那些使用电池供电的规模不是很大的芯片生产商而言,还有其他原因使得他们不得不也要考虑这些问题,他们不希望电池能量都浪费在发热上,这样就可以缩小电池体积,进而可以使得产品尽可能小巧便于携带。所以功耗与发热问题几乎是不可避免的。Intel 早在十年以前就已经遇到了功耗瓶颈(power wall, 据资料显示ILP WallMemory WallPower Wall为制约芯片设计三大瓶颈),那时候他们试图通过共同研究来解决功耗问题,但是最后他们也没能真正做到。

 

如今芯片设计很大部分的考量就表现在功耗和性能上。Ansys RTL产品管理总监Preeti Gupta说,由于发热问题,晶体管的数量和时钟频率无法同时大幅度增长。虽然多核架构和3D集成这些设计趋势有助于提高整体芯片的数据处理的吞吐量,但是近几年来,时钟频率还是一直被限制在几千兆赫兹。低功耗已经成为驱动便携式产品芯片以及家用设备芯片迭代更新的主要力量了。对于移动设备和节能产品来说电池寿命是一个关键因素,对于数据中心来说冷却成本也是至关重要的。

 

Cadence公司低功耗产品的工程总监Luke Lang补充说,随著晶体管几何尺寸的缩小,即使在28nm的情况下,我们也可以将非常多的晶体管填充到芯片上,如今芯片面积的限制显得并不那么重要。

 

Lang说,EDA厂商一直在试图帮助降低无用功耗,但是效果有多明显呢?在整个行业中,有一个共识就是,一旦RTL代码稳定下来,80%的功耗将无法改变,所以不论我们在后续的流程中如何优化,我们都只能改变剩下的20%

 

Wingard说,但是我们是否能够将可以控制的功耗比例扩展到大于20%呢?新的电路设计方法学或许可以提供一些帮助。顺序时钟门控技术(sequential clock gating)试图预测深层次的电路状态空间,如果在某一个时钟周期计算的值将在下一个时钟周期中被丢弃,那么就不需要去计算它。即使这样我们需要理解的状态空间也不应只是局限于两个时钟周期内。目前来看EDA工具似乎还不能做到这一点,它还不能够从设计的整体功能出发去优化。

 

Lang认为让工具来识别出整体的功耗优化非常困难,设计人员自己应该花更多的时间来研究整体的节能架构并将其融入到RTL的构建当中。设计人员不应该将这些设计要求完全交给软件去帮助优化。我们应该反思设计人员如何可以从RTL影响的80%功耗中去降低功耗

 

Synopsys的电源架构师Alan Gibbons表示,功耗的浪费一般来源于两个方面。1.无效的运作浪费了大量功耗。2.有效的运作的同时浪费了很多不必要的功耗。

 

EDA工具可以提供的帮助

EDA工具在数据通路的优化方面可以提供很好的帮助。Gibbons说,功耗在数据通路中的浪费主要来源于毛刺以及无意义的通路切换。通过优化数据通路的实现,我们可以建立更加平衡的结构,展现更少的毛刺,从而减少功耗的浪费。此外,通过在数据通路中插入门控单元,我们可以避免在不需要信号输出的时候激活数据通路,从而可以显著节省动态和静态功耗

 

Lang也认同毛刺会消耗很多额外的功耗,但是我们很难将毛刺信息反馈给综合工具进而通过工具来帮助我们降低毛刺的产生。我们大量关注功耗。但是即使我们发现了毛刺会浪费大量的功耗,我们能做什么来减少它呢?如果我们无法通过工具来自动化的降低这些毛刺浪费的功耗,可能也不会有很多的人花费时间和精力来分析和优化。

 

Lang认为,EDA工具不只局限于帮助优化电路正常工作模式下的功耗。在功能性的设计上我们可能会发现只有10%15%的电路活动率(activity rate),但是在实际测试中我们可能会检测到50%的电路活动率(activity rate)。我们可以在扫描测试链中分析寄存器的活动,并找出哪些寄存器上会有较高的电路活动率(activity rate)。如果我们发现哪些寄存器会接有很多逻辑并进而导致了很多的电路开关活动,我们可以通过插入门控单元来控制寄存器的输出进而降低逻辑电路的活动率。当然插入门控单元的这种方法也只能在非关键路径上进行,否者我们会扰乱关键路径的时序。

 

降低功耗的技术

双沿敏感性的触发器(Dual-edged flip flops)是另一个值得关注的领域。这些触发器可以在时钟上升沿和下降沿的时候都被触发,这意味着时钟的频率几乎可以降低两倍。这样我们就可以节省大量的时钟树功耗。

 

来自AnsysGupta提供了一些分析功耗浪费的方法。她认为降低功耗需要采用一种整体的解决方案。这种方案中需要涉及到不同电路抽象层次中的不同的降低功耗的技术。有一种这样的分析技术,就是查看每个设计层次中累积的电路活动率(cumulative activity)。如果一个仅在数据传输中打开的模块,在数据接收的过程中也处于激活状态,那么我们就可以认为这是一个功耗问题(power bug。这种问题可能并不会在功能仿真中暴露出来,但是很容易在设计层次的活动分析(design activity analysis)过程中发现。这种设计层次的活动分析运行速度也非常快。RTL功耗分析工具同时也允许设计人员自己创建一些检查规则。这些规则可以定义,在不同的工作模式下哪些时刻哪些电路的活动是冗余无用的。

 

还有一类降低功耗的方法也是由电路分析驱动的,但是它需要电路设计人员的配合。一个系统中存储电路会消耗大量的功耗。一个相当常见的问题就是,存储电路在没有写入操作的时候默认就是可读状态,即使此时外部不需要读取数据。RTL分析技术很容易就能发现这些冗余的活动时钟周期。

 

Wingard提及了另外一种与存储电路架构有关的降低功耗的方法。需要访问外部存储的系统通常会有很多FIFO存储电路以及一个与这些FIFO相分离的处理单元。当这个处理单元处理完数据并将数据存储进FIFO之后,我们便可以关闭这个处理单元,等待FIFO将处理好的数据回收到存储单元中。直到输入端的FIFO存储了足够多的数据以至于处理单元可以全速工作的时候,我们再激活这个处理单元。

 

Gupta补充说,分析闲置模式(idle mode)下的电路动作已经成为检测冗余电路活动的重要方式。我们需要更多的设计知识来帮助我们从冗余的电路动作中分析出有用的电路活动,建立出一些有效的电路动作向量。除了这些动作向量之外,任何电路活动都可以被认为是冗余的。

 

如何找出功耗漏洞 

设计出一个正确的测试向量来识别出功耗漏洞是一个非常具有挑战性的任务。

 

SynopsysGibbons表示,我们必须完全理解设计运行的环境,以此来确定我们是否正在进行有效的分析。比如在全面或者具有代表性的软件负载下对设计进行分析时,执行软件(或场景)驱动的功耗分析师,我们不仅可以检查功耗消耗,还可以验证设计的电源状态空间(power state space。硬件电路的运行场景绝对决定了该电路消耗的功耗。因此,通过场景驱动优化电源状态空间,我们可以确保场景中的任何时间点,只有正常功能所需的电源状态空间处于活动状态,其他电源状态(power states)将被禁用。

 

Wingard说,我们如何产生这些测试向量呢?当他提及到用于测试和估算功耗的测试用例时,大多数人都会联想到性能测试的测试用例并在那个的基础上改动10%20%或者更多。在性能优化和功耗表征方面确实存在着很大比例的重叠。这些测试用例可以测试出电路的电力网络是否是稳定的,电路的封装是否能够及时的散发产生的热量。

 

但是这样或许还不够。Gupta说,在低功耗上竞争的设计团队们投入了大量的精力来设计功耗的测试向量。这些测试向量需要能够反映出在正确的工作模式下进行恰当的电路操作所消耗的功耗,从而实现有针对性的功耗削减。对于电路的每一种工作模式,我们需要使用不同的方式来发现无用的功耗浪费的电路活动


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

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

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

GMT+8, 2024-4-19 15:22 , Processed in 0.016259 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部