
Whoscored中文官网 | 编译自 Semiconductor Engineering
最大限度地减少电力、能源或热影响需要在整个设计、开发和实施过程程中采取协调一致的方法。
器件的功耗,会受到设计、开发和实现三个过程的影响,但寻找省电的机会不再仅仅是采用更有效的硬件。
从RTL到布局布线,大部分能省电的工具和方法都已到位,部分半导体行业已经在使用它们。两者都被认为是成熟的,定义功耗的标准也是这样的意图。
可以节省额外更多的电力和能源的巨大的机会仍然存在。其中许多涉及到质疑系统级的决定,这些决定已经被几代人盲目地接受和实施。其中一些决定需要重新考虑,因为它们阻碍了更大、更复杂设计的构建。
Cadence公司数字与签核部的产品管理总监Rob Knoth说:"在这个组合中有三个要素:功率、能源和热能。他们一直都在那里,功率可能是最突出的,但能源在过去几年中已经走到了前列。现在我们看到热能出现了。所有这些都很有趣,因为你可以用特定的工具在开发流程的特定节点上解决它们。"
问题就在这里。"架构师的困境是,你需要低级别的信息来进行早期估计",Arteris IP公司解决方案和业务发展副总裁Frank Schirrmeister说。"这个困境从未被解决过,而且在我的商业生涯中可能也不会被解决。为了尽早做出架构决策,我们需要一套信息、一套工具和一套能力来支持这些决策。我们需要尽可能早地做出这些决定,但它们也需要尽可能准确地反映实施效果"。
补充一点,功率不能作为一个单一的因数来呈现。有些人关注总能量,因为这可能会影响电池寿;其他人更关心峰值功率,因为这可能导致芯片上的操作问题;或随着时间推移的功率,这可能造成热问题。
为了进行分析,你需要确切地知道系统将如何被使用。"想象一下,你有一颗SoC,它由100个不同模块组成",Innergy Systems的创始人兼CEO Ninad Huilgol说。"它们都在一起相互作用,而你事先不知道它们将如何产生功率密度的峰值。当你有一个模拟正在运行的时候,这些模块一起互动,会突然产生一个功率密度峰值"。
各种市场都在关注不同的方面。"边缘人工智能,或边缘智能,与数据中心超滤器计算型应用相比,有不同的关注点和不同的问题",Cadence的Knoth说。"然而,他们两个都将推动技术的某些方面,其中有些是相互加强的,有些是独立的。由于电池寿命的问题,边缘将更关心能源的某些方面。思考你在软件中运行的东西和你在硬件中运行的东西是至关重要的。你要把什么传达给你的基站,让他们运行并送回给你?有一些非常棘手的问题,物联网行业是唯一适合领导和创新的。这并不意味着他们是唯一的领导者。那些正在开发大规模、超大规模计算数据中心的人在一个完全不同的级别上处于领先地位。通常,他们是最努力的人,因为你看一下,需要大量的基础设施资金来进行计算。"
RTL和实现技术
省电技术已经在RTL和布局布线层面上应用了很多年,但还有进一步节省功率和能源的可能。在布局布线层面,较新的技术正在增加一些问题,如果不加以解决,将导致功率的浪费。
Ansys公司的产品营销总监Marc Swinnen说:"技术已经使得提供可靠的电压变得更加困难。"你会有一些电压下降,但人们往往只是预留了一个缓冲区,说我最多许可100毫伏的压降。然后我设计时就必须假设每个电源都可能低那么多。显然,不是每个电源都会达到最大的电压降,所以你越能准确地模拟实际的电压降,你就能更准确地设计你的配电网络以避免这种误差,你可以减小这个电压降的余量。你试图下降的这个余量,可能会产生巨大的影响。"
在RTL层面,时钟门限(clock gating)和电源门限(power gating)已经使用了很长时间。虽然它们优化了与指定任务相关的功率和能量,但它们对评价该任务是否为所执行功能的最佳功率没有任何帮助。
"我们有一个术语叫做理想功率",Knoth说。"它是一种试图识别功率浪费的行动。例如,如果你有一个时钟自由运行的模块,而它实际上正在被重置,你可以对该时钟进行门控。我们可以分析在该模块内进行的切换,将该层次的这些切换所产生的功率加起来,然后在报告中显示这些功率被浪费的地方。使用这种方法,我们看到硬件工程师从设计方法的角度改进了他们正在做的事情。还有一大堆其他更深入的功率清理技术可以使用。"
对RTL的研究可以提供其他可能的功率节省。Ansys的Swinnen说:"功率艺术家会通过观察你的工作方式来建议对你的RTL进行编辑"。可能是你以这种方式实现了一个功能,但如果你以不同的方式实现同样的功能,你将节省功率并实现同样的功能。有一个优化库,它将自动扫描RTL并识别每一个可以将RTL升级为更省电的实现方式的地方。它将告诉你根据估计会节省多少功率,如果你批准,它将实际实现这些。"
早期估计
很少有人会质疑,越早评估权衡产生的影响就会越大。"你的范围越广,你带来的相关方越多,你多退一步看得越早,你就会越能看到更大的机会",Knoth说。"这些是更大的趋势,超越了把你正在开发的小部件变得更好的目标。你真的要看看这个小部件如何适应于小组件,而小组件如何适应于数据中心的产品,这些产品被连接到水力发电站或太阳能电站。
问题是,如果没有足够准确的估计,错误的决定也是可能的。"随着设计变得越来越大,越来越复杂,产生准确的估算也变得越来越困难",Schirrmeister说。"例如,你需要平面规划信息来估计跨硅的路径需要多少个寄存器,因为在大尺寸芯片上传播信号是非常困难的,不可能在一个时钟周期内完成。对于NoC,我们试图优化寄存器的数量,这对功耗和你在芯片上携带的互连数量有影响。我们从.lib开始做反标,一直到NoC的生成,做早期估计路径会有多长。以后还需要改进吗?当然会。问题的多维现实使它变得非常困难,特别是在有垂直依赖关系的地方。"
“为了能够进行热分析,必须考虑长的时间框架,而且你必须看一看现实的工作负载。这最有可能意味着运行实际的软件"。Knoth说:"大多数行业使用他们的RTL代码映射到仿真器上,在该平台上运行真实的软件工作负载,并获得向量,从中进行功率估算。通过每天的多次迭代,他们可以调整软件以更有效地利用硬件的功率特性。一夜之间,他们就能对硬件进行调整。现在你有了这种系统级的协同优化,你正在寻找浪费的电力,并确保你正在创建尽可能最优化的系统。"
业界一直在寻找插入抽象模型而不是使用RTL的方法,这是因为它可能运行得更快,而且可以在RTL准备好之前进行分析。"分析软件执行的功耗直到现在还被归入仿真平台",Innergy的Huilgol说。"一种可以帮助的技术是,建立可以在软件环境中模拟的硬件的功率模型。这些模型可以提供关于软件运行时各种硬件模块的平均和瞬时功耗的准确反馈。这使得硬件和软件在流片之前可以共同优化功率。"
过去对硬件和软件的功能验证也采取了类似的方法,现在正尝试将其应用于电源。"我们不是在发明黑魔法,我们也无法与物理学对抗",Huilgol说。"但是你不需要一直运行详细的功率模拟。我们在模块级收集微小的采样,把这些结合起来,在子系统级、系统级、仿真、软件等方面运行。功率有两个方面。一个是数据路径,另一个是控制路径。我们主要考虑控制路径,但当有数据路径的依赖性时,我们的模型中有一个设施可以使它们具有数据路径的意识。这些是在交易模型上操作的统计功率模型。你如何提高分辨率?你可以有更小的周期或单一周期。但如果你的分辨率是15个周期,或更多,相当大的交易,会出现一些统计误差。"
对过去的反思
在过去,摩尔定律使得从一个节点迁移到下一个节点变得相当容易,利用额外的门,更高的性能和更低的功率。这意味着跨时代的连续性是很重要的,尤其是为了确保现有的软件能够继续在新的硬件上运行。
随着时间的推移,这已经烘托出了一些低效率,将很难摆脱。"很多事情在过去是不可能的",Knoth说。"也许是因为半导体的工艺节点无法满足所有将被部署在边缘的计算。但现在它可以。也许你没有工具在适当的时间内以适当的精度进行分析,或者因为封装技术不可用。但是,每当这个时候,你就必须喘口气,退后一步,重新审视情景,并问:"我们是否正确地优化了这个方程式,或者我们只是做了我们能做的最好的?有时我们需要戴上科学家的帽子,不要害怕质疑我们已经固有的一些基本原则。"
考虑整合的复杂性是很重要的。"有两个层次的复杂性:先是应用的复杂性,然后是半导体技术上的实施复杂性",Schirrmeister说。"这就是我们正在处理的晶体管的数量。因为你有应用的复杂性,随着功能数量的增加,并继续增加,你必须处理诸如共享内存、一致性等问题。如果你没有缓存,你总是要把东西搬来搬去。缓存连贯性是对一个问题的解决方案,但却引入了一个新的问题"。
处理器一直是由性能驱动的。西门子EDA的Catapult HLS团队的项目主管Russell Klein说:"在处理器中添加分支预测器或投机执行会增加电路中的门数,从而增加动态和静态功耗。但是这些功能增加了在处理器上运行的计算的性能。所以功率肯定会上升,但能量,即功率乘以执行计算所需的时间,可能会上升或下降。这取决于性能增加与功率增加的比例。例如,如果功率上升了20%,但性能只提高了10%,那么计算的总能量就会增加。"
电源、能源和散热不能总是以简单的方式进行优化。Lightelligence公司工程副总裁Maurice Steinman说:"这似乎有悖常理,但提高性能可以降低某些工作负载的平均能耗。这类工作负载可以从所谓的'空闲竞赛'中获益,如果能更快地完成工作,就可以长时间地进入深度节电状态。考虑保持可预测(但利用率低于100%)的计算需求状况的工作负载,例如25%的可用性能。一种方法是将工作频率降低到25%(并相应降低工作电压)。现在设备将保持完全活跃,但功率降低;另一种方法是努力快速完成工作,从而实现大幅节电(25%开启,75%关闭),其中关闭可能需要零或接近零的能量消耗,从而导致平均功率低于25%时钟速率下的持续运行。超频/超电压甚至可能是有利的,以进一步增加关闭时间到75%以上。
平衡硬件和软件
与系统复杂性和功率有关的最大的平衡技巧之一是建立硬件/软件边界。西门子的Klein说:"任何用软件实现的功能都会比用硬件实现的同等功能慢几个数量级。根据定义,软件中的任何东西都不是最佳的。在一个非常高效的处理器上高度优化的软件,甚至不能接近一个糟糕的硬件实现的效率。"
Klein说:"什么应该留在软件中,什么应该在处理器上完成,什么创建一个定制的硬件加速器更有意义,这就是你开始看到巨大的100倍、1000倍类型的时间或功率减少的地方,这取决于你在哪里优化你的系统。"
随着性能改进变得更加困难,这些类型的方法变得至关重要。"底线是,更大的处理器能效更低,所以只有在你不关心电源的情况下,用更大的处理器来解决你的性能需求才有意义",Klein说。"正确的答案是将繁重的工作从CPU移到定制的加速器中。"
这种方法已经越来越受欢迎。Flex Logix公司负责IP销售和营销的副总裁Andy Jaros说:"专用硬件加速器和协处理器可以提高系统的性能,因为转移到更先进的节点后,性能的提高会减弱。专门的加速器减轻了CPU的处理负担,使其不必为执行复杂的算法而耗费巨大的计算周期。为这些专用的硬接线加速器使用eFPGA,可以提供所需的功率效率,但在工作负载发生变化时仍可保持可编程性。"
只要你能专业化,就会有巨大的收益机会。Schirrmeister说:"今天,通过增加指令使一个处理器专业化已经变得非常容易。这些指令的定制大多是为了低功耗的目的。我见过这样的情况:在处理器中增加一条指令,就可以让你留在一半的内存中。从功率的角度来看,这是巨大的。但是,当你在孤立的岛屿上做这些事情的时候,你要做的事情的整体复杂性却增加了。"
或者你可以将该功能全部移入硬件。"另一个解决方案是将计算复杂的操作卸载到定制的加速器中", Klein说。"高级逻辑综合(HLS)是实现这一目标的简单方法。这仍然是硬件设计,所以你仍然必须要有聪明的工程师来使它工作。但是用HLS,你是从一个软件C或C++算法开始的。没有对算法的解释,这是一个缓慢和容易出错的手工过程。而且,一个黄金参考是以软件的原始函数的形式随时可以得到的,这使得验证变得更加容易。"
所有这些选择都在变得更容易。"过去,在架构层面做出决定的最大问题是,你必须在项目的后期重新评估这个决定,但这些流程并不相连",Schirrmeister说。"对于像可配置处理器和NoC这样的情况,这些流程已经被连接起来了。如果你回去,重新运行工具需要时间,但不再是人们必须手动验证架构决策。自动生成允许你通过更多的数据点运行"。
结论
单独优化电力、能源或热能问题并不容易。但解决这三个问题中的每一个问题的需求都在增长,虽然它们是相互关联的,但要确定哪一个应该被优化或如何优化并不总是容易。只有通过观察整个系统,才能做出决定。在过去,建模、分析和设计流程使之更加困难,特别是当它跨越了硬件/软件障碍时,但更多的工具正在出现。这仍然不容易,但随着行业意识的增长和更多的人想解决这个问题,未来将会有更好的工具和流程使用。