本文从器件本身来说明器件浪费的能量去了哪里,如何测量器件的消耗能量,以及能量如何与硅芯片相关联。

 

您的设计在执行特定功能时打算消耗多少功率?对于许多设计者来说,把这个数字做对会决定设计的成功和失败,但是知道正确的消耗功率数字并不像听起来那么容易。在做功率分析时人们可以预测的功率数字和硅芯片消耗的功率数字之间仍然存在巨大的差距。

 

在生产设计过程中如何尽快消除他们已知的差距,为达到这一目标设计者们对工具提出了新的挑战和要求。这使功率分析和早期尝试的功率优化成为 EDA 最具创新性的领域之一。各个市场都关注电能损耗的不同方面,每个方面又会影响着设计或实施过程的特定方向,使用几何尺寸的缩小的芯片会增加尚未完全了解的物理效果,使得功耗大小难以计算准确。

 

设计和验证团队必须重新配置,以应对这些挑战,同时平衡来自降低功耗和改进设计或更便宜产品的投资回报。“具有功耗意识的设计至关重要,它在市场上得到了很多关注,但实现这根本不是一个简单的过程,它与之前的计算方法完全不同,并且还要取决于设计的种类。“Arm 的杰出工程师 James Myers 说。 


这引起了人们对这个问题的极大关注。。Cadence 产品管理总监 Rob Knoth 说:“每个客户都对功率感兴趣。但是功率的含义会随着每次对话都会改变。有些产品会因消耗电量的多少而被保留或舍弃。其他人则更关心它们将消耗的功率是等于多少个空调,或者它们是否可以利用周围的环境能量为设备供电。他们都将通过不同的视角来研究功率和功率错误。”

 

定义功率错误听起来很容易,但它到底是什么呢?Ansys PowerArtist 产品管理负责人 Preeti Gupta 说:“我们将功率错误定义为人们不希望的功率消耗,哪些功率消耗对设计的功能没有帮助。但是功率是一个数字。如果我的设计总的功率消耗 500 毫瓦,我怎么知道这设计是否最佳?那应该是我的器件手册上的 5 倍吗?”

 

寻找功率 Bug


当一个芯片出厂后消耗的功率比预期更多的能量时,这可能就会问一个更重要的问题。如何找到导致功率错误的原因?可能是什么导致了预测值与实际值之间的差异?设计过程让没有注意到的地方是什么?图 1 中显示了一些潜在的内部消耗功率联系。

 

图 1:一般的临时功率分析,资料来源:Cadence

 

该错误可能会在非常详细的层次上,例如在最高的抽象级别,以及介于两者之间的所有位置出现。设备设计拥有一定的灵活性可能是好事,也可能是坏事。

 

Synopsys 公司设计小组的高级应用工程师 Haran Thanikasalam 说:“如今,设计师们得到了一系列他们可以使用的设备。例如,铸造厂提供高 Vt 设备,低 Vt 设备和超低 Vt 设备。如果设计者使用高 Vt 的设备,它们是较慢的设备,但耗散的功率较小;而如果使用超低 Vt 的设备,它们的运行速度非常快,但同时泄漏非常严重。做不同的决策可能会浪费很多功率。此外,当组合低 Vt 器件和高 Vt 器件时,某些铸造厂或工艺不允许这两个扩散合并在一起,因此它们必须是单独的扩散,这会影响您的测试区域。”

 

在最新 nm 级节点上,新的物理效果开始发挥作用。Thanikasalam 补充说:“今天的设备几乎处于金字塔顶级水平。功率即使有微小的变化,也可以极大地改变设备的工作方式。我们如何准确测量功率,以及如何将仿真提供的这些功率值与实际硅片相关联?这是一个越来越大的问题,因为在硅片上您无法准确查明某个特定块(例如存储器)的浪费功率程度,我们是无法测量该信息。”

 

在系统层次上,发现了不同的问题。Ansys 的 Gupta 说:“仿真器固有地受到它们可以模拟的循环数或可以运行的实际方案数的限制。 用户需要能够获取真正芯片级功率流量,并在早期建模。他们需要考虑十亿个时钟周期内,有不同的操作模式,这就是相应的功率曲线。这是当我的视频 IP 打开和关闭时,CPU 子系统或 GPU 子系统处于空闲状态,任何暴露出来的功率错误都会产生非常大的影响时。设想一下您的 GPU 子系统可能已关闭几秒钟的情况,在简单的模拟场景中,计算机无法识别这一点,但是在实际的应用场景中就人们能够意识到这一点。”

 

这就造成了抽象和实际区别委大的古老问题。Gupta 补充说:“当在更高的抽象级别时,我们将无法获得与定义好的设计相同的准确性。但是,早期分析确实提供了对影响力更大的问题的见解。今天许多团队都专注于 RT 级别。例如,您正在研究具有数百万个触发器的设计,并且您想要提取一个常见的高级使能。但是在 RTL,一个时序网是理想的,它只能提供不太可预测的结果。我们必须估计它的负载,它将驱动的电容类型,再进行时钟门分割,进行缓冲区大小调整,创建网状网络,树状网络,我们的想法是,不是要获得超级准确的功率数字,而是为了逼真地识别这些高级电源调试场景。”

 

担忧的日益扩大


团队必须清楚地了解他们对功率的关注。Cadence 的 Knoth 问道“你最担心的是什么?”。图 2 以图形方式显示了一些潜在的问题。“这是一个热问题吗?是峰值功率问题吗?它是备用电源问题吗?是 di / dt 问题吗?您担心唤醒冲击电流吗?即使知道了问题是什么,你也必须询问何时可以使用适当的仿真技术来正确地进行功率或热分析,这样我们才不会得出错误的结论,也不会给产品增加太多的花费或推迟日程安排。这是一个非常相互依赖的问题。”

 

 

图 2:五种电源场景 ,资料来源:Cadence

 

Gupta 同意道。“有些人开始在门级测量功率,以查看是否已正确构建电路,以足够维持该功率。小封装足以维持这种低功率能力吗?从那时开始,它演变成更加复杂的场景:数百种电源门控条件,动态电压和频率缩放。将所有这些因素综合在一起,复杂性随之会激增。”

 

一些设计者承认设计中必须存在反馈环路,以便能够允许就地处理电源问题。Arm 公司的 Myers 说:“在服务器方面,重点可能是在固定散热范围内如何控制最大限度提高吞吐量,这取决于有功功率 / GHz,散热管理和对电源噪声容限,其中一些以功能可以在硅化后通过表征电压和温度传感器然后调整系统管理软件来完成,因此设备可配置性很重要。但是,也存在复杂的硬件设计反馈环路,例如何时对待特定的数据块节约能量,以在对吞吐量影响最小的情况下保持系统完整性。电流尖峰对于系统完整性而言是成问题的,但取决于去耦电容,布局图中的相邻模块,当前 DVFS 之类的节点,调节器负载,封装布局等。考虑到所有这些因素,反馈回路通常会很长,并且存在不稳定的风险,因此需要新的方法,因为太多的静态余量会直接影响性能。”

 

有些人关心功率的整体性。Knoth 说:“一些公司正在将对话从我们正在做的最优化功率,变为我们正在做的最优化能量?归根结底,功率才是真正完成工作的要素。能量在很多方面对我们来说都是一件容易的事,对于我们来说也很容易,但功率才是最终目标,我们越能直接测量它,就越能创建有助于理解它并与之匹配的测量工具。”

 

曾经被单独分析功率的许多方面现在都已由物理属性联系起来。热量会同时影响静态和动态功率,并且还会影响时序。芯片上的电流活动会产生热量,因此存在反馈回路。仿真场景必须足够长,不仅要产生热量,还要使热量散布在芯片上,以查看其对相邻器件的影响。

 

Gupta 说:“部分功耗取决于芯片功能的结构。第二部分取决于在设计中程序运行的流动方式。运行对功率有第一级的影响,当然布局和变化效应也很重要。由于时钟是您设计中最快的信号,并且它控制着设计中发生的许多功耗,因此时钟方面引起了很多关注。我们可以关闭时钟,可以节省很多电量。若可以切断电源,从而节省更多功率。”

 

功率必须是程序流程不可或缺的一部分。Knoth 说:“这是一种多层的计算,你必须考虑可以利用今天掌握的信息得出的各种有效结论。随着设计的进行和事物的成熟,你将能够获得更高的准确性,并且能够对产品有更多的了解,但是有时你可以改变的量却会减少。随着时间的推移,它变少了。您早期拥有的灵活性较多,但准确性最低。什么时候需要确定有关封装,散热器,电路稳定性的某些决定?你必须从整体产品计划的角度来看待这一点。”

 

这始终是一种微妙的平衡。Ambiq 结构与产品规划副总裁 Dan Cermak 说:“随着硅晶体使用技术的发展,总是会遇到 GIGO 效应(垃圾进垃圾出)的挑战和风险,在设计阶段过早进行电源调试可能会给产品造成误导或错误的结果,但是等到最终设计完后启动电源调试为时已晚,无法影响有意义的更改。”

 

结果准确度


模拟结果的准确性取决于对必要的物理效应建模的好坏。功能都是关于 1 和 0,但功率准确度问题可能会是一个大麻烦。


Synopsys 的 Thanikasalam 说:“你可以考虑一下内存。有一些位线穿过 SRAM 存储器,而该存储器的主要功率来自这些位线摆动。他们消耗了很多能量。在做模拟仿真时,你可以将其设置为 VDD 或接地。在真正的芯片中,您无能为力做到这一点。即使位线上升到 VDD,随着时间的推移,该位线也将开始泄漏,因为没有任何东西可以使该位线保持在 VDD 点。这些是差分对,它们可以恰好位于中间,然后消耗大量功率。因此,模拟器与真实芯片的工作方式之间存在很大的相关性差距。”

 

即使假设采用数字抽象法,也仍有很大的出错空间。Ambiq 的 Cermak 说:“在仿真过程中确定必须分析的适当工作负载 / 方案存在问题很重要,这是代表性的工作运行进程吗?它是否涵盖了设计的所有关键操作模式吗?对于较大的设计,这样的问题变得更加复杂,因为您必须将这些工作负载分解为较小的微型工作负载才能进行实际评估。”

 

Knoth 补充说:“你的功率分析仅与您的向量一样,您必须向上一级看问题,在哪里看,此向量的覆盖范围是多少?活动看起来如何?我们已经投入大量资金来构建实用程序,以帮助客户在仿真本身上做更多的工作,将不同的向量合并在一起以创建新的场景,从而在一个向量与另一个向量之间扩展活动。”

 

整个过程比功能验证要复杂得多。Thanikasalam 说:“除非你使用激励电路的一部分,否则不会触发该设备,也不会有散发出的热量,在进行模拟仿真时,必须确保电路的每个部分实际上都在使用运行,从而使测试平台更加严格。这会对性能产生负面影响,并且需要更多时间和计算。它不再是一个单一的问题。您必须同时解决所有问题。使隔离单一的仿真结果变得准确异常困难。”

 

您不能随意创建大型向量集。Gupta 说“我可能有成千上万个向量,如何识别所有这些向量中最活跃的信号。我有时序的关键路径,我该如何表征沿这些路径的时序功率敏感度以便做出设计决策?方法是我们需要能够存储各种与电源相关的数据的能力,然后是框架和 API,用户可以在其中查看大型设计,长向量,并帮助他们获得有意义的结果。”

 

IP 问题


在设计中使用 IP 时,可能会对所提供电源模型的保真度存在疑问。Myers 说:“如果采用数字逻辑,并且您有适当的仿真激励,那么 EDA 工具会很好地确定功率的消耗方,但是它们对于检查内部宏功能(如内存或设计的混合信号部分)没有帮助,因为你依赖于设计人员或 IP 提供商。幸运的是,在这方面有一些标准计划,例如 IEEE 1801,它正在寻求增强的功耗感知和宏模型标准建立。”

 

现在还在测试的早期阶段。Knoth 说:“在包装和销售 IP 时,功率信息与时序信息同等重要,这一事实在标准化方面已经取得了很大的进步,即使您只看时序模型在整个行业的传播情况,自从首次引入 Liberty 模型以来,发生了令人难以置信的演变,而功率具有比时序更大的维度。”

 

目前,问题仍然存在。Thanikasalam 表示:“当设计公司为最终客户定义其功率规格时,会有很多假设。这些设置用于那种电源使用情况,在实际的芯片上甚至不可能实现这些特定设置。因此,基于模拟仿真的报告与芯片提供的实际数字之间存在差异。”

 

功率错误是谁的责任?


设计和验证团队可以协同工作,但又彼此独立。理解电源比功率验证需要更多的设计知识,那么谁最终负责发现功率错误?

 

Gupta 说:“在功率方面更成功的公司会创建了一个新的团队,称为功率方法团队。这个团队适合设计团队和验证团队。他们是由 RTL 设计师创建的设计,并进行这些功耗分析并找出可以进行哪些更改验证人员。然后,他们通过设计分析来管理这些更改。他们与验证工程师合作,帮助他们识别功率矢量应试是什么。”

 

验证团队传统上一直是向量集的维护者。Knoth 说:“验证行业已经成熟,产品的功能验证与产品的功率分析和优化结合在一起,这两个人真的需要团结一致,否则两个人都不能尽所有可能有效地工作。进行功能验证的人员可以随时注意电源。不应该强迫人们使用完全独立的工具或运行集生态系统。EDA 行业有责任使它尽可能轻松地将波形转换为瓦特,方便计算。”

 

这可能会造成目标冲突。Gupta 说:“随着时间的推移,我看到功率方法团队开始聘请验证工程师,因为他们正在与能量回归资源竞争。 没有应用功能,芯片什么都不是。因此,他们很难游说和宣传功率矢量,开始转变的是,功率方法学工程师现在正在为功率编写矢量。”

 

结论


当今,大量的投资和创新正在投入到功率分析工具中,并且没有简单的答案。用户被迫在测试的广泛性和结果的真实性之间进行权衡,并评估在开发过程中必须做出的每个决定所必要性。但这仅仅是分析工具开发的开始。

 

分析的方法是开发的第一阶段,随后需要提供有一定的芯片浻察力,优化和自动化。随着问题产生的方面不断发展,其中有些问题又会同时出现。

 

Knoth. 说:“当你从专注于能量转向关注功率时,您将获得前所未有的自由设计度。仿真这不同的设计,诸如布局布线以及功能合成之类的设计,不同的组合最终产生什么样的结果非常令人迷惑。一旦你开始考虑能量计算还是功率计算时,你可能就会产生一些惊人的创新机会
 

作者:BRIAN BAILEY

编译:与非网