中文 英语

实现限制功率优化

为什么动态功率、静态泄漏和热问题需要在整个设计过程中处理。

受欢迎程度

实现仍然是决定芯片设计中功耗预算的关键一步,尽管功耗估计、功耗模拟和功耗相关架构决策的数量都在增加。原因是:所有这些决策都必须贯穿整个设计流程。

“如果决定放弃实施,那么在一天结束时,这真的无关紧要,”低功率at公司的产品管理总监克里希纳·巴拉钱德兰说节奏.“你达不到能源目标的。”

其中一个问题涉及到综合和位置-路线阶段的工具算法。几年前,这两个步骤的算法都根据时间和面积进行了调整,但功率通常在满足时间后才进行优化。他说,这为优化功率留下了一些空间,因为它没有与时间同步,也没有与时间同步。

但是,由于功能现在是主要的设计考虑因素,实现工具必须重新架构。这些工具从头到尾进行了改进,将功率作为整个优化过程的成本函数,无论是逻辑综合、楼层规划、布置还是路由。例如,在布局算法中,功率被视为一个基本因素,以决定当前的布局状态是否会被另一种布局状态所取代,从而最终获得更好的布局结果。

Balachandran解释说,它必须内置一个ROI引擎,这意味着它正在研究采取行动的影响,并根据成本函数接受或拒绝它。通过将泄漏和动态功率作为组件,然后放置引擎进行这些计算,它可以决定何时何地优化功率。他说:“这不能是你事后做的事情,因为你事后做的任何事情都不会像它本来可以做到的那样好。”

动态力量日益重要

Cadence公司的产品管理组主管Rod Metcalfe说:“这涉及到架构决策和实现决策。”“架构决策往往在流程的早期完成,最终的实现决策主要是在位置和路线期间完成的。当然,实现工具可以做很多事情来提高电力,这就是大部分新技术所做的。我们能够看到动态活动,基于动态目标优化功率,以及静态泄漏功率。因此,实现可以在架构决策之外产生相当大的影响,比如时钟门控和架构选择,这也对电力有巨大的影响。”

与此同时,更多的工程团队正在利用基于实现的能力分析,并且他们可能会基于所看到的内容进行更改,即使这些更改倾向于不那么剧烈。

Metcalfe说:“当你进行架构更改时,这是在流程早期发生的非常基本的事情。“但根据最终的分析,当你有了实施,你就有了所有最终的寄生虫,你有了更详细的信息,所以你可以用这些高质量的信息做更多的分析。这将驱动架构决策。我见过[工程团队]根据他们在实现过程中看到的情况改变时钟门控策略,但周期更长。您可以更快地进行RTL更改,而不必从头到尾进行实现。”

就像硬件中的其他所有事情一样,最好尽可能早地完成,这就是为什么在早期阶段而不是在实现阶段越来越多地使用功率估计和功率优化的原因。“实现就是这样,我有一个规范,我把它收紧了。现在我必须确保我能够交付这个规格,我不想失去它。我必须确保我能在早期阶段交付我认为我能做到的东西。我不希望在那个阶段出现任何意外。”

FinFETs添加一个新的皱纹。虽然动态功率密度随着finfet的增加而增加,但最大的优势之一是它们可以在更低的电压下工作——在某些情况下低于0.5伏。

Galaxy Design Platform的产品营销总监玛丽·安·怀特(Mary Ann White)表示:“这立即提供了动态功耗节省,但由于变化和波形失真效应,可能会引入新的计时挑战。Synopsys对此.“较小的finFET工艺几何形状有更多的变化,特别是在10nm及以下,由于收缩节点工艺和各种光刻效果的线对准。在超低电压下,由于电线电阻的增加,波形失真也会发生,这种变化会被放大米勒的影响(高电容)。”

EDA工具可以处理工艺变化的影响,更准确的参数片上变化,基于优化和分析从综合到地点和路线和签名。此外,他们还可以考虑高级节点的波形失真,为超低电压操作提供更紧密的签名相关性。

热问题带来挑战
作为电源的辅助因素,热问题也会影响实现,促使设计团队在同一区域放置大量缓冲器或高速驱动器。

“假设你有一个非常宽的总线,你把所有的寄存器放在一起,”Aveek Sarkar说,产品工程和支持的副总裁有限元分析软件.“当所有这些总线寄存器或缓冲区同时触发时,这就产生了两种情况。它会在芯片上产生巨大的电压或电源闪光,几乎没有人可以设计,所以在实现方面,如果你能做些什么来减少这种情况,那将是非常有帮助的。人们最终会制造出热热点,因为他们把很多高功率电池聚集在一起。”

在这些情况下,由于高速驱动器和高强度电池相互靠近,热和压降问题是密切相关的。他强调,正是工程团队遗漏了一些东西,才导致了后续出现的问题。“缓冲区聚集在一起——这些显然是你可以处理的事情。你的位置,你的平面图,你放置一些温度传感器的地方,这些都是你开始仔细研究的事情。”

权力是一种竞争优势
对于一些公司来说,能够节省每一滴电力就意味着一种竞争优势。因此,微型建筑师和设计师们开始更早地考虑节能问题,at工程总监Abishek Ranjan说导师图形

因此,新的工具正在满足日益增长的需求,RTL设计人员需要更多地参与其中。“RTL设计人员,因为他们工作在RTL级别,对于后端级别将会发生什么,他们的预见性有限。他们可以做很多改变。许多是微建筑和顺序性质的,许多是组合的,”他说。

设计人员可以随意使用组合时钟门控,这在整个实现流程中主要保留,但他们也可以重新定位数据路径操作符,例如移位器、乘法器、多路复用器和加法器。“虽然在RTL中,用两个加法替换一个乘法看起来很诱人,而且这将大大节省电力,但RTL设计人员根据他们在RTL中获得的反馈所做出的许多组合决策往往会被实现工具取消,以支持性能、时间和区域需求。最终,你的芯片在功率方面的表现比你早期估计的要差,”Ranjan说。

Mentor Graphics的高级产品经理Ellie Burns表示,让设计师在头脑中做出转变非常重要。“我们认为设计的功能是1和0,以及它的数据是什么。但是,如果RTL设计人员更多地认为功能还包括电源,而电源有泄漏或问题,那么这就是一个功能问题。如果您在RTL中更改它,那么根据定义,它将贯穿整个实现,因为您实际上已经进行了功能更改。因此,重要的是要认识到RTL中的功能更改会一直持续到实现。而且工具正在变得越来越好,可以在RTL中看到设计人员无法看到的过于复杂的东西。这些工具将这种复杂性简化为,‘你遇到了一个功能问题。’”

定义的权力
同时,Tobias Bjerregaard,的首席执行官Teklatech他断言,重要的是要定义我们对“权力”的定义。有功耗或总功率,以及功率完整性,即功率传输以及芯片上的功率如何到达电路。

Bjerregaard说:“关于电力完整性的有趣之处在于,执行是混乱的全部原因,因为我们试图通过一个不完美的物理系统来交付一些东西。”“试图用不完美的材料——金属,在包装层面上有电阻和电感——构建完美的东西的整个概念——我们试图用不完美的材料以完美的方式传递能量。所以物理实现是首先导致问题的原因。从电源完整性的角度来看,您可以说执行以非常消极的方式影响了它。这首先是一个权力完整性问题。”

总功率是不同的,因为设备使用功率,但是讨论实现如何以消极的方式影响它通常包括讨论它如何通过后端流,从合成网络列表到放置和路由设计,以及在那里发生了什么。

Bjerregaard说:“从总功率的角度来看,功率受到了负面影响,因为我们使用耗电的方法来实现很多事情,最重要的是,计时。”“在实施方面,你不能只谈一件事而不谈另一件事,所以我们如何管理和平衡这些不同的指标始终是一个问题,比如功率、时间和面积,这是三个基本指标。问题在于,在实现过程中,10nm及以下的可路由性是最大的问题之一,原因是电线的扩展速度不如电池。所以我们可以把晶体管和电池装得更近,但我们不能设计路线。这实际上决定了先进节点的面积和成本。”

这就涉及到时间问题,因为可路由性问题,设计必须绕一圈才能让导线通过,这就导致了时间问题。那么如何解决这些时间问题呢?

他说:“我们通过缓冲路径来修复它们,使它们更快,这消耗了大量电力。”“这里的问题是,我们在高级节点上看到了很多问题,即使是在16和14纳米的节点上,在关闭时间内消耗的功率也是相当大的。在这些高级节点中,电源对关闭时间的影响可能为20%,具体取决于设计。这是在缓冲过程中消耗的能量,每次我听到由于这样或那样的事情导致关闭计时的开销时,我都认为有可能不使用这种能量。”

有趣的是,Bjerregaard说,在实现过程中发生的一件事对电源完整性产生了负面影响,那就是工具做出了一些糟糕的决定,因为它们没有全面了解情况。“在设计流程的早期阶段,我们做了很多假设。例如,我们假设电网的电力分布均匀,所有设备都以合理的方式连接在一起,等等。然后一切看起来都很好,或者至少我们可以知道它看起来有多糟糕。但一旦我们开始实施,事情就会变得更加复杂。也许RAM没有那么强的电源连接,因为这个区域需要路由资源,或者我们没有足够的通孔,等等。”

人们普遍认为,早期的权力必须与后期相关联,但Bjerregaard认为这是错误的看法。“重要的是要理解,早期工具会做出假设,所以如果你沿着流程走下去,突然发现预期的不连续——例如,从一个步骤到另一个步骤,最坏的电压降急剧增加,或者总功率上升——这可能意味着你实现了一些不符合你假设的东西。”

他说:“如果它慢慢恶化,也就是说,变得更糟、更好、更糟,那也没关系,因为你无法预测每个物理细节。”但如果突然出现跳跃或不连续,这意味着你所做的事情并不符合你的假设。这需要立即解决,而不是在结束之后,因为在结束之后,你有一个很长的设计流程循环要关闭,那并不能保证收敛。他说,从这个意义上说,早期阶段的假设成为规范,并在整个物理实现流程中跟踪电源完整性。

当归结到这一点时,积极地节省电力意味着必须在晶体管水平上控制泄漏超音速他指出。“要做到这一点,如果你想让它们运行得更快,有两个选择:你可以降低一些晶体管的电压,或者你可以切断这些晶体管的电压。如果你不需要它们快速运行,那么你基本上不能使用短通道或具有高阈值电压的晶体管,这些晶体管不会泄漏那么多。但对于大多数想要跑得快的人来说,这并不是一个很有吸引力的解决方案。”

如果目标有时是降低电源电压,这就进入了动态电压和频率缩放的领域,伴随而来的挑战是在多个不同的电压工作点上描述电路的行为,并试图确保满足所有的电气要求。

温加德说:“与执行相关的描述往往会有点夸张。”“你会认为,无论你在快速工作点上做了什么,在缓慢工作点上都是安全的,如果你不想对在较慢工作点上的操作频率有侵略性,这是正确的。但大多数人都想要激进一点,所以他们最终会重新塑造角色。”

除此之外,为了执行DVFS,必须在许多不同的工作点上分析设计。

最后,所有这些描述都需要来自实现后端的信息。“一旦你有了完整的芯片布局,那么你就知道所有这些电容的实际值,”他说。“现在你可以开始估计为所有这些电容充电需要多少电荷,然后你可以计算出为了安全启动电路需要多慢。”

考虑到当今设计的复杂性,实现对功率的影响,以及功率对实现的影响,都是无法解决的问题。随着前沿节点越来越接近现实,挑战只会继续增加。



3评论

Sandeep帕蒂尔 说:

谢谢安的帖子。作为一名实现工程师,与任何RTL设计人员相比,我们几乎可以控制大约2%或更少的功耗节省。我有兴趣知道更多关于这一点的信息,工具会提示“你有一个功能问题。”

艾莉烧伤 说:

嗨Sandeep,
我所说的RTL功率函数问题是指RTL的逻辑功能以一种逻辑正常工作的方式实现,但功率被浪费了。一个例子可能是在一个序列逻辑链中,在逻辑中有几次反转,其中序列末尾的结果永远不会被使用,或者重置对逻辑正常工作来说是不必要的,因此是冗余的,内存访问切换没有使用,等等。如果RTL设计人员(或与RTL设计人员一起工作的人)能够找到并修复这些问题,并对RTL进行更改,那么它们将在整个流程中永久地节省电力。RTL设计人员需要将功能作为RTL功能的一个维度来考虑。

Sandeep帕蒂尔 说:

我还想知道在超低电压下提到的放大波形失真的概念,以及它对导线R和C的影响。

留下回复


(注:此名称将公开显示)

Baidu