中文 英语

DVFS值得一试吗?

动态电压和频率缩放可以节省大量的电力和能源,但设计成本高,验证困难。

受欢迎程度

几乎所有的设计都有节能意识,并被迫考虑每一种节能技术,但并不是所有的设计都能产生预期的结果。此外,它们还会增加设计的复杂性,增加生产时间,提高成本。

动态电压和频率缩放(DVFS)就是这样一种节能节能技术,目前被广泛应用于高性能系统、最新几何设计以及边缘的超低功耗系统。在过去,使用的是更简单的动态频率技术。其基本思想是,如果频率除以2,完成某项任务所需的时间将翻倍。在其他条件不变的情况下,所消耗的总能量似乎保持不变。

问题是这个公式没有考虑泄漏,泄漏在较长时间内是固定的。泄漏造成的能量损失将翻倍,即使峰值功率已经降低,但这也会减少总能量节约。当电压降低时,功率和能量都降低了。但是泄漏只随电压线性减少,所以它开始消耗总能量的更大百分比。在某些点,通常在阈值电压附近,漏电成为主导。

电力和能源节约也必须放在系统其他部分的背景下考虑。内存电压不能降低与CPU相同的数量,以保持功能。虽然可以将核心内存电压降低到最小值,使其仍然可以保留内容,但在该电压下无法对其进行读写。

即使内存电压的缩放方式与处理器不同,仍然可以获得增益-特别是在内存受限的应用程序中。例如,对内存的争用可能会减少,从而导致更少的失速。

其他记忆,如动态随机存取记忆体,必须不断刷新。而且I/O电路通常不能改变电压,因为它必须符合标准。

简单地说,必须考虑执行整个功能的总能量,这意味着要了解系统可能遇到的典型用例。只有这样,硬件和软件的额外成本和复杂性才能与部署dvfs类型解决方案的电力和能源效益进行权衡。

基本技术
这些技术中的许多已经使用了很长时间,只是不是以动态的方式使用的。“如果有些东西不需要,就关闭它,”亚历山大·米贾托维奇(Aleksandar Mijatovic)说Vtool.“如果某些东西不需要在高电压下运行,那么就降低它。如果某些东西需要在到达时响应数据,但没有处理任何东西,那么尽可能降低频率。动态缩放只是将旧技术引入新方法。”

传统的节电技术对很多人来说已经足够了。“处理器和内存技术的最新发展导致了处理器时钟频率的饱和和更好的空闲/睡眠模式,”Progyna Khondkar说,产品工程师Mentor是西门子旗下的企业.“这些都限制了DVFS带来的潜在节能。趟车为低功耗设计提供准确的指导。这限制了DVFS可能实现的潜在节能可能性,加上使用DVFS方法验证和实施设计的困难,可能也是限制其广泛使用的潜在原因。”

泄漏会降低收益。公司首席应用工程师Tim Kogel表示:“通常无法扩展的是开销功耗Synopsys对此.“因此,最大化计算效率和最小化能源消耗的最有效方法是快速运行然后停止(RFTS)。然而,热约束可能需要对电压和频率进行节流,特别是为了防止在小工艺节点上由于温度依赖性泄漏功率而导致的热失控。由于内存和互连等其他组件的开销功耗无法扩展,因此将执行时间延长需要更多的能量来完成工作。”

图1显示了AI推理设计在不同设计参数(如时钟频率、MAC单元数量和DDR内存速度)下的仿真扫描结果。端到端延迟(红线)与总能量(蓝条)相关。“工作完成得越快,能量消耗就越低,”Kogel补充道。“这是以更高的功耗为代价的(绿条),因为工作在更短的时间内完成。”

图1所示。人工智能推理中的功率、能量和性能权衡。来源:Synopsys对此

这里使用了几种技术。“虽然电压缩放正变得越来越广泛地实施,但对许多人来说,这是一个新的、肯定不是微不足道的功能,”理查德·麦克帕特兰(Richard McPartland)说Moortec.“我们区分了静态电压缩放(SVS)、动态电压和频率缩放(DVFS)和自适应电压缩放(AVS)。(见图2。)

其中一些方案比其他方案更适合于特定的应用程序。McPartland说:“例如,SVS方案非常适合持续的高工作负载应用程序。“例如,以电信芯片为例,数据总是以固定的速率到达,你不能简单地降低时钟速率和VDD。这里SVS是一个不错的选择。相比之下,DVFS方案特别适用于可变工作负载,在这些工作负载中,您可能会有低活动期,或者可能需要为具有不同处理级别的不同应用程序重新配置SoC。”

图2所示。静态电压缩放和动态电压频率缩放技术。来源:Moortec

自适应频率缩放(AVS)与SVS类似。AVS公司产品管理高级经理Mallik Vusirikala表示:“在AVS中,有一组传感器被放置在芯片上,你可以测量特定位置的电压有限元分析软件.“然后,LDO(低压差稳压器)有闭环反馈,可以提高或降低电压。如果芯片某个区域的电压下降,你可能会想要扩大电压,以满足你的频率要求。”

AVS和SVS倾向于在有限的范围内利用细粒度动态电压缩放。“DVFS通常有一组固定的电压,”Vusirikala补充道。“例如,你可能希望块的频率为300MHz,或者我希望我的块的频率为400MHz。它将根据应用需求制定固定的步骤。”

DVFS上的范围可能非常大。Movellus总裁兼首席执行官Mo Faisal表示:“DVFS的使用电压从0.5伏一直到0.95伏。“这是从接近阈值一直上升到0.95伏,这超过了电气过度压力的限制。做一个很宽的DVFS是很有挑战性的。你需要有在极端电压范围内具有特征的标准单元库,这通常成为想要这样做的公司的定制项目。不是每个人都能买得起DVFS,因为你基本上必须重新描述你的库。”

要了解哪种技术效果最好,以及必要的范围,就必须了解应用程序。“在工作负载受内存限制的情况下,通过DVFS降低电压和频率可以节省二次元的能量和立方的功率,”Shidhartha Das说手臂.另外,通过DVFS增加电压可以提高需要更大功率的工作负载的性能。这就是裕度(特别是由于电压噪声事件)发挥关键作用的地方,因为它们限制了由于峰值功率上限而允许的电压升压。能够动态适应电压噪声效应的设计技术可以优化这些裕度,从而实现DVFS的有效应用,提高性能和效率。”

在最先进的节点上,它正在成为一种必要的技术。“先进finFETMoortec公司的McPartland说:“节点提供了领先的性能,但伴随着更高的工艺变化。“电压缩放使VDD电源能够在每个模具甚至电压域的基础上进行优化,因此具有FF特性的模具(或域)可以在较低的VDD下运行,节省大量电力和能源,同时仍能实现所需的性能。我们的目标是优化每个芯片的VDD保护带,在最坏情况下最小化操作,在不必要的情况下最高VDD。”

显然,这只能通过传感器来实现,无论是在测试器中还是在芯片上。他说:“我们建议配备完整的芯片内监视器。”“这些可用于大幅减少确定工作点(电压/频率对)所需的测试时间。它们还提供了芯片状况的可视性,包括处理速度、关键电路块上的VDD以及整个芯片的温度。芯片内监控是实现电压缩放的重要元素。”

设计问题
在设计DVFS系统时,要记住一些潜在的陷阱。Movellus的Faisal说:“你必须在最高电压、最高温度和最快的弯道上关闭保持时间。“暂停犯规基本上是一个死筹码。这将是一个统计错误,很难调试。然而,在最低电压的另一端,设置时间是最难的。为了在最低电压下达到足够快的频率,你最终会使用很多低阈值设备,这些设备往往非常漏。现在,当你进行高压操作时,你要为泄漏付出很多,你要为利润和诸如此类的事情付出很多。”

另一个困难是电力供应。“当你打开电源开关时,来自电路板的电源不能足够快地为特定块供电,”Ansys的高级产品管理经理马利克·乌西里卡拉(Mallik Vusirikala)说。“这是由于电路板和封装中的电感。当一个模块通电时,它会为已经在工作的电路部分释放芯片上的decaps。这意味着在一直打开的块和现有的功能逻辑上有大量的下降,所以你必须慢慢地打开它,这意味着在块准备好进行计算之前有一段时间。”

这是第一阶段。费萨尔补充说:“首先你要提高电压,并给它时间来稳定。”“然后你改变频率,你必须等待锁相环达到新的频率。这所花费的时间也是浪费时间,所以寻找可以快速完成这一任务的解决方案非常重要。当你锁定新频率时,你就可以开始做功了。”

应用程序级的担忧
AVS和SVS是在硬件上完成的,而DVFS通常涉及软件。“DVFS主要是一个应用程序问题,”Minima Processor的CTO劳里·科斯基宁(Lauri Koskinen)说。“应用程序必须重新编写,以便能够利用DVFS功能。虽然存在一些设计问题,比如超宽DVFS的验证和特性描述,但如果您了解您的应用程序,并且您的硬件和软件团队之间具有良好的协同作用,那么DVFS就非常适合您。”

其他人也同意。Vtool的高级验证经理Olivera Stojanovic说:“你可以让软件来控制它,应该有硬件机制来告诉它什么时候可以关闭某些部分,或者只是让芯片的某些部分自己进入睡眠模式,直到被一些外部信号唤醒。”“这是由软件来启用两种模式,硬件将在一段时间不使用后决定是否可以关机。或者,软件可以负责决定什么时候关闭一些东西。这些是架构上的选择。你需要了解你的应用程序,并为芯片每个部分的使用制定一个时间表。”

这要求软件团队理解硬件架构和软件的含义。Vtool的Mijatovic说:“如果你想关闭某个内存库,你必须决定是否保留它的内容。”“这不应该影响任何人,但这是软件需要理解的事情。这意味着软件需要以这样一种方式编写,它允许功率技术是有效的。您不能简单地告诉软件永远运行,一直使用所有的资源,并认为您将从自动化硬件方法中节省电力。无论谁在编写软件,都需要知道在低功耗模式下他们可以使用什么。”

验证问题
DVFS的实现在电压和频率边界上产生了额外的问题,需要在验证策略中充分解决。Ansys的Vusirikala说:“其中一个问题是将信号从低压域驱动到高压域。“如果信号引脚的驱动电压比接收器低,接收器就会产生撬棍电流。栅极电压可能不会迅速完全越过阈值,从而产生过大的电流。”

标准和工具可能不直接支持方法。Mentor的Khondkar说:“目前的UPF或功率感知模拟工具不支持DVFS的频率部分。不过,用户可以这样写SystemVerilog断言可以通过模拟环境进行协调,与来自试验台或稳压器块的实际电压变化进行协调。”

但也许最大的验证问题是必须考虑关闭时间的角的数量。Vusirikala补充道:“你需要在多个角落、不同频率点、不同电压下关闭计时。”“这是一种典型的多模式、多角封闭模式。现在你将有更多的角落需要关闭。”

这些角落之间的过渡也需要考虑。Vusirikala说:“从电源完整性的角度来看,你需要在这些额外的角落进行压降分析,以确保你的频率得到满足。“然后,当你从低频切换到高频时,电力需求就会增加。您将需要验证LDO是否能够及时响应,以便您的块提高到更高的频率并开始计算。如果LDO放置在芯片外,超调/欠调和基于封装的噪声可能成为问题。如果LDO是片上的,这些问题就不存在了,因为没有电感。”

其他问题
除了额外的设计复杂性、验证复杂性和软件问题,团队还需要记住其他一些事情。“在考虑DVFS的总体成本和收益时,你需要考虑安全性,”思科的技术营销经理塞尔吉奥·马尔切斯(Sergio Marchese)说OneSpin解决方案.“通过误用电路触发故障的远程物理攻击正在上升。Rowhammer就是一个著名的例子。DVFS特性还可以用于引发故障和定位故障。根据应用程序的不同,可能需要进行风险评估,识别弱点,并引入防止恶意滥用的安全措施。目前还没有按钮工具可以解决这一安全保证挑战。正式工具具有将复杂DVFS控制功能的详尽分析与故障注入结合起来的能力和功能,可以识别问题并验证缓解策略。”

也许最大的问题之一是能够预测结果。Synopsys的Kogel说:“电力架构师明白,评估反馈循环的动态影响是非常困难的。“电源管理器根据预计负载确定工作点,这反过来影响处理性能,从而影响预计负载。此外,您需要考虑应用截止日期、热节流等约束条件,甚至是由于温度变化导致的芯片老化等长期影响,这使得使用静态电子表格分析来评估动态电源管理的效益和影响变得非常困难。虚拟样机工具可用于DVFS策略的联合功率和性能分析和优化。我们的想法是结合UPF3系统级功率模型来模拟SystemC事务级性能模型。”

结论
DVFS的电力和能源节约可以是广泛的,但如果不考虑整个系统,这些收益可能很快就会被削减。许多设计支持模块的启动和关闭,并且许多添加了多个系统来执行高性能功能而不是待机模式功能。这允许在每个功率模式下进行更大程度的优化。但是有些设计可以通过拥有一个能够在多个性能/功率级别上运行的单一系统来获得显著的收益。

此外,当变化成为一个关键问题时,自适应系统可以使异常值符合规范,有效地提高产量。

也许采用动态系统的最大障碍是依赖于软件的重新架构,这给项目带来了额外的成本和风险。随着时间的推移,节能可能会迫使这种情况发生改变。



2的评论

DrZ 说:

你最后一段一针见血。然而,“重新构建”软件以提高性能实际上非常简单,并且已经通过固件合成完全自动化了。与虚拟样机、编译器/处理器协同设计、HW-SW协同验证等过去的诸多挑战类似,包括DVFS在内的功耗优化是典型的HW-SW边界问题。聪明的工具可以帮助解决这个问题。

belal 说:

在整个系统场景下理解DVFS的好文章。
作为一个电路设计师,我们可以实现一个电路,使这发生在芯片上,但缺乏软件和硬件协调会使你的努力减少。
谢谢这篇好文章。

留下回复


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

Baidu