中文 英语

降低软件功耗

软件在整体功耗中扮演着重要的角色,但到目前为止,在这方面几乎没有进展。

受欢迎程度

随着摩尔定律的放缓,过去做出的每一个决定都必须重新检查,以获得更高的性能或更低的功率。到目前为止,软件还没有受到影响,但它可能是一个尚未开发的优化领域,可以显著降低功耗。

普遍的共识是,新的应用程序,如人工智能而且机器学习,其中遗留软件最少,是引入软件优化新技术的明显地方。但也有人认为,更成熟和不变的地区将成为明显的目标。在设计快速变化的领域,可能会看到大的架构变化,而不是微调。

微软RTL产品管理总监普雷蒂•古普塔(Preeti Gupta)表示:“这两个世界曾一度脱节,但我看到软件和硬件团队之间的合作日益加强。有限元分析软件。“人们逐渐意识到软件会影响硬件,最近也出现了一些解决方案。”

变化还没有广泛传播。“有一个意识范围。这是非常具体的行业,它不只是软件与硬件,它是节能与否,”Rob Knoth说,产品管理总监节奏。“是产品空间决定了他们的意识程度。我们将继续看到与功耗无关的硬件设计,您将看到为运行在许多可能永远不会优化功耗的硬件上而设计的软件。您将看到越来越多的系统公司正在朝着更多的方向前进节能软件。”

通用软件将保持不变。“当我从一个SoC从这个角度来看,在很大程度上,软件在高层是既定的,”微软产品营销高级总监约翰内斯•斯塔尔说Synopsys对此。“应用软件、游戏、手机应用程序、服务器上运行的程序——这些都是既定的。这些软件开发人员能做得更多吗?这是值得怀疑的,因为他们没有动力去做更多的事情。真正的机会在于较低层次的软件——固件、电源管理软件——它们是优化的机会。”

这需要一致的努力。Cadence的Knoth补充道:“拥有整个堆栈的公司负责软件和硬件。“他们正在研究硬件和软件之间的协同优化,看看什么能产生最高效的最终产品。我们首先用能量的概念来表示。在这里,你不能只考虑硬件的静态表现,你必须开始考虑软件如何使用硬件来实现某个最终目标。”

即使是高级软件也有一些意识。“当你在谈论智能手机上运行的应用程序时,有些应用程序显然会耗尽你的电池,而另一些应用程序则做得更好,”at的ASIP工具高级总监格特·古森斯(Gert Goossens)说Synopsys对此。“有时,它似乎与应用程序的复杂性无关,并清楚地表明这是一种错误。这表明,有些应用程序在编写时并没有考虑到权力。”

但其中许多bug可能仍然是低级别的。Synopsys的斯塔尔解释说:“当硬件以一种意想不到的方式对软件做出反应时,它可能在软件中,也可能在硬件中。”“或者只是有一个寄存器被编程错了。这些bug是相当低级的。很可能是他们打开或关闭了某个处理器或芯片上对功率有巨大影响的区域。并不是应用软件以某种方式编写,从而导致性能更高。”

同样的问题也可以在功率敏感的设备中发现。Knoth补充道:“如果你正在编写大量的新代码,无论是C还是RTL,并且你有一个具有关闭和休眠模式的高级电源敏感平台,你可能会有电源漏洞。”“有人可能在if语句中为‘enable’编写了错误的术语,而静态分析方法无法捕捉到这种情况。你只能在函数方法中找到它,在函数方法中,你要查看与软件中的操作相关的开关或瓦特。这需要大量的模拟和模拟。”

动力分析
重要的是,嵌入式软件设计人员要了解功耗消耗的位置,这意味着他们必须能够进行功耗分析。

Synopsys的Goossens说:“处理器供应商提供了一些工具,可以进行某种程度的功率分析。“这显示了代码中大多数切换发生的位置,这是一个功耗的指示器。它们还显示内存访问,这是一个典型的源电力消耗。内存访问消耗了大量的能量。这为软件开发人员创建了一个反馈循环,然后软件开发人员可以重构代码以减少内存访问的数量——或者确保数据保持在更接近处理器的位置,例如将数据保存在寄存器中而不是内存中。也许处理器有一个循环缓冲区,这是一个紧密连接的指令存储器,您在其中保存应用程序中循环的关键代码。这与处理器紧密耦合,因此耗电量更少。此外,在数据内存中,可能存在一定的内存层次结构,您希望优化最接近处理器的内存的使用。”

边缘处理是优化软件能力的一个领域。微软公司副总裁兼总经理哈维尔·奥伦桑兹·马丁内斯说:“软件开发人员正被迫在不断减少的电力预算下工作手臂的发展解决方案组。性能分析工具,如Arm的Development Studio和Keil的MDK,可以连接到各种调试探头,以收集来自目标设备的功耗数据。然后,这些工具同步呈现这些数据和其他系统信息,包括CPU和GPU活动,这已被证明是一种了解和优化软件功耗的强大方法。即使在没有物理探针的情况下,工具也有助于识别内存带宽等性能瓶颈,从而有助于降低功耗。”

良好的分析能够有效地降低成本。“仅仅说我的电池寿命是‘X’并没有多大帮助,”ANSYS的古普塔说。“分析必须是可预测的,而且必须早于RTL-甚至在系统级别。他们知道他们得到了估计的时钟树功率,估计的电线电容和合成效果,如时钟门控。每个人都关心幂数的可预测性,无论你谈论的是什么抽象级别。当我与软件团队一起工作时,他们想要了解趋势。他们不关心电源是否关闭2X。他们关心的是权力是否因为我的改变而增加,还是下降。”

但是,虽然处理器可能存在模型,但整个系统需要功率模型。斯塔尔说:“我很乐意称它为虚拟原型,但这将归结于你所使用的建模范式,以及是否有一种行业标准方法来建模这些架构,以提供足够的关于功率的信息。”“你可以说,这是对算法建模的结合,即对功率的重要性,然后从功率的角度对这些芯片的组件进行建模。我认为这是行业的发展方向,我们将能够为处理器等基本组件提取出足够高水平的功率模型,然后在其上应用一些算法,并以相当快的速度执行。”

模型在哪里?古普塔说:“目前业界缺乏能够提供必要水平的可预测性或可扩展性的模型。”“通过RTL,我们有了Liberty,我们有了可以映射的标准细胞,我们可以提出合理的估计。在系统层面,我们没有一个很好的方法来建模。但这并不意味着不需要高级架构决策。”

IEEE 2416是最近发布的,并提供了一个系统级的功率模型,业界尚未评估这是否是可行的前进方式。目前,大多数系统级功率分析都是使用RTL执行的模拟为了获得足够有用的数据。

克诺斯说:“人们正在把更多的系统放在一个环境中,这样他们就可以更有效地模拟越来越大的工作量。”“这不仅仅是出于功能的角度,也是出于权力的角度。你越准确地模拟一个设备的使用方式,你就越能了解它的功耗。”

业界一直围绕仿真构建分析工具。克诺斯补充说:“在一个非常高的水平上,他们只是在看切换,而不是权力。”“信号转换多少钱?”这需要运行数亿次循环,并帮助他们评估软件的好坏。这就开始细化了。你把它降低到百万周期,你开始看瓦特,而不是开关。这将继续细化到我们更熟悉的世界,如IR drop。但这是系统架构师和设计师共同考虑硬件和软件来优化能源的漏斗前端。”


图1所示。整个设计流程的功率分析。来源:节奏

古普塔说:“快速分析技术已经出现,可以在模拟器上运行软件,转储活动,将其输入功率分析工具,并创建一个快速的功率配置文件。”“该配置文件是基于时钟周期粒度的。现在你知道哪些ip在消耗能量以及什么时候。时间是很重要的,因为平均功率并不能让你准确地了解什么信号在哪里消耗。”

范式变化
一些芯片制造商采取的技术之一是在硬件上做更多的工作,并将硬件上无法完成的工作与与硬件一起开发的高效软件紧密结合在一起。这在嵌入软件并且可以高度优化的情况下尤其明显。

在这一领域,最容易实现的是对内存的访问,比如在微控制器中。“有时候,内存的功耗并不一定是最重要的方面,”该公司产品营销总监保罗·希尔说Adesto技术。“MCU本身可能是系统的最高功率用户。如果你想发送一个命令,MCU必须处于空闲模式,每隔几秒钟检查一次,看看它是否准备好了。这就像孩子们去度假时问,‘我们到了吗?降低内存功耗是一回事,但如果你能消除MCU必须做的一些工作,你就能节省更多的电量。当然,这一切都离不开软件。但是你能做的是在内存中添加IP,当一个特定的进程完成时告诉MCU。所以你可以向内存发送一个程序命令,然后MCU就可以进入睡眠状态。当记忆完成任务时,它会唤醒记忆并说,‘我完成了。’”

不过,要弄清楚哪些工作要交给软件,哪些工作要交给硬件并不是那么简单。它通常需要一定程度的领域专业知识来了解功率、性能和可靠性方面的权衡。在一些市场,如汽车和数据中心,它需要一个经过验证的记录。

“我们在SerDes上看到了这一点,它在某种程度上相当于存储市场上的软件堆栈,”at的IP核心业务部门总经理Hemant Dhulla说Rambus。“当你是新客户时,没有客户想要使用你的存储软件堆栈。人们总是希望使用一个已经使用了5年或10年的堆栈。这因市场而异。在汽车和医疗行业,这是绝对正确的。”

挑战在于,在其中一些市场中,平衡硬件和软件是一种新事物。五年前的汽车电子产品远不像今天这么复杂,而开发软件的公司也没有可靠的业绩记录。但是挑战是一样的,即使实现是不同的。这有助于解释为什么许多公司的分析工作都是由专业的权力团队完成的,而不是由软件工程师完成的。但这种情况在未来可能会改变,两者都需要相同类型的工具。

斯塔尔说:“我们对软件开发人员的用例是为他们提供一个软件平台,让他们可以在上面执行软件。”“我们没有办法在软件执行周期电力的过程中给他们即时反馈。这是公司内部另一群人的任务,他们与权力打交道。”

这意味着反馈循环是松散的。古普塔说:“有些公司从模拟器活动中创建功率配置文件,并将数据暴露给软件团队。“软件和能力方法论团队已经开始相互交流。未来几年这一数字还会增加。行业正朝着正确的方向发展,其中一部分就是IEEE 2416模型。”

不过,软件模式必须改变。“他们别无选择,”Goossens说。“他们必须关心权力。方法帮助软件工程师更多地了解硬件和硬件成本(包括电源成本)的工具正变得越来越重要。设计问题有多个方面。你可以问这样一个问题,‘这个软件好吗?需要重写吗?这是一个独立于处理器的问题,不管它是运行在标准处理器上还是ASIP(特定于应用程序的指令集处理器)上。你编写软件的方式会有很大的影响。问题的第二部分是处理器本身的架构。你如何优化它以获得更好的能耗?”

许多硬件团队都面临着一个严重的困境。Goossens指出:“如果你将功能从处理器转移到硬件上,你可以改善问题的某些方面,但这些障碍是固定的。”“如今,每个新产品都有丰富的功能,供应商必须能够快速添加功能。这意味着您在硬件中放置的内容可能必须更改,因此您必须使它们更加灵活。越来越多的功能必须在软件中实现,但标准处理器无法完成这项工作。这就是asip变得如此受欢迎的原因。”

伦理问题
问题不仅仅是企业利润。斯塔尔说:“我们所处的阶段是,我们在电子产品方面所做的事情以及我们想要用电子产品实现的目标正在影响环境。”“我们必须做点什么。公司需要考虑整个环境,看看使用某些技术是否有净收益。例如,你可以说自动驾驶汽车对社会是一个巨大的好处,如果总体上你可以优化交通运输的能源消耗——包括用于交通的计算机所需的能源消耗——那么对环境将是一个净收益。我们需要进行全面的分析。”

古普塔表示同意。“现在是软件团队开始利用不断发展的资源来造福他们的时候了。其结果将是一个更绿色的星球。”



留下回复


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

Baidu