中文 英语

设计低能耗芯片和系统

性能和效率的数量级提升是可能的,但实现起来并不容易。

受欢迎程度

随着设计团队开始研究在不影响电池寿命或增加电力成本的情况下提高设备性能的新方法,能源优化开始向左倾斜。

与功率优化不同的是,一个熟练的工程团队可能会将功率降低1%到5%,能源效率可能会将有效功率降低一半。但是这些收获需要对系统的整个体系结构进行重大的重新思考,包括处理发生的方式和位置,哪些功能是优先级的,它们需要运行多长时间,以及如何在系统中控制和优化所有这些。

“对于从事IP设计的工程团队来说,这是非常重要的,但对那些更垂直的公司影响最大,他们拥有整个堆栈-从将写入设备上的固件到设备实际将是什么,”Digital & Signoff集团的产品管理总监Rob Knoth说节奏.“当你优化整个系统时,你能够实现更多。你的解决方案空间越大,你需要处理的变量集就越大,你能产生的影响也就越大。这并不会发生在每个人身上,但对于那些在这个水平上运作的人来说,你会看到他们能够获得一些非常变革性的收益。”

随着设备连接到电池,以及这些设备需要处理的数据量的增加,这是至关重要的。因此,以前的“好有”正日益成为一种竞争优势。电动汽车也是如此,在电动汽车领域,各家公司都在争抢每次充电续航里程的最远距离;在电脑和智能手机领域,电池续航时间是一个卖点。

公司首席产品经理Qazi Faheem Ahmed指出:“服务器或手机等任何东西的生命周期能量需求都必须很低西门子EDA.“人们通常倾向于关注IP层面的权力,他们可能会试图减少和优化一定比例的权力。假设他们节省了20%的动态功率。在系统层面上,这对能源效率有多大贡献?有时它可能没有多大作用。你可能会看到整体能源效率的提高甚至不到1%。当能量等于功率/时间时,时间就成为一个重要因素,因为它能告诉我们区块的功能。”

处理这个问题的最佳方法是在系统级别。Ahmed说:“在SoC级别上,一些区块可能没有高切换活动,但它们可能会活跃相当一段时间。”“其他区块可能会有大量信息进入,可能会有高切换活动,然后就会保持沉默。如果我们看一下所做的功的量,在这种情况下,一个没有切换那么多,但大部分时间主导功能的块所做的功的量实际上可能最终消耗更多的能量。这可能是优化的一个很好的开始。”

随着设计变得更加定制化和异构化,这种权衡变得越来越普遍。不过,降低功率相当简单。减少能源则更为复杂,而且并非所有事情都值得我们努力。

“通常情况下,我们会确保自己的电量很低,”特朗普的核查主管菲利普·卢克(Philippe Luc)说Codasip.“为了将这与能源效率结合起来,我们确保我们有效地使用电力,这样我们就可以使任务尽可能小,并在任务完成时关闭CPU。具体来说,我确保我是低功率的,但我要说,我不关心能量。我只是确保我没有浪费精力去完成任务。节约能源归根结底就是尽快关掉电源。我们想要的是快速高效的cpu,这样可以降低能耗。我们谈论电量,但最终最重要的是我的手机在充电前能坚持多久。”

然而,情况并非总是如此。“从架构的角度来看,假设我必须完成一个任务X,”建筑师Godwin Maben说Synopsys对此科学家。“要么我可以很快地完成任务,然后无所事事,要么我可以慢慢地完成任务,只要我知道我必须在一段时间内完成。假设我有50个时钟周期来完成这项任务,但如果我真的很努力,我可以在5个时钟周期内完成它,并等待更长的时间。在能量方面,快速完成并等待空闲是不好的,而如果我花更多的时间来完成,但我减少了频率,我的能量会更好。问题是我的重点是什么。”


图1:设计更高效的芯片。来源:Synopsys对此

分析能量,做出权衡
未来设计的关键挑战之一将是架构级的优先级。为了优化能源效率,必须在设计之初就进行架构分析。

Maben说:“在对多核设计进行架构分析时,例如移动SoC,可能有5或6个处理器。”“你可以以1GHz的频率运行所有六个处理器,或者根据需要调用这个处理器,以更低的频率运行,但在低频下使用更多的处理器,而不是在高频下使用一个处理器。”

软件调度是这个决策过程的一部分。“我们需要了解的第一件事是在一段时间内所需的平均功率与峰值功率。你可能需要峰值爆发,然后在一段时间内拥有平均功率。该系统应设计成这样一种方式,即这种短峰值爆发应该能够接收电力。即使你在五个时钟周期内完成一项工作,而不是在80个时钟周期内完成一项工作,即使在80个时钟周期的情况下,如果我们放慢速度,中间也会有剧烈的爆发,因为在这段时间内会有请求处理器做某事。因此,这个处理器并不是在任何时候都致力于完成工作。这意味着会有很多日程安排。”

在过去,这通常是按顺序完成的。越来越多地需要同时考虑这个问题。Cadence解决方案营销高级集团总监Frank Schirrmeister表示:“业界已经在讨论硬件/软件联合开发的左倾趋势,但电力、能源和热优化也有上移的趋势。”“如今,基于实际技术特征,将模拟和仿真的活动数据与功率分析联系起来是相当普遍的,我们称之为动态功率分析。在可扩展处理器和高级合成的时代,这个过程现在有所提升。用户可以采用更高级的描述并生成RTL变量作为功率分析和优化流程的输入。对于处理器的变化以及软件和硬件的不同划分,对电源、能源和热方面的影响甚至可以在更早的水平上进行评估。”

这一点尤其重要,因为大部分电源管理是由软件控制的。Schirrmeister说:“在使用新的芯片配置的新组装组件上电之前,验证电源固件功能将更加重要。”“我们可能会看到对虚拟样机和多芯片仿真的更多需求。”

在进行涉及多个处理器或计算引擎的架构决策时,另一个需要考虑的问题是静态动态功率是否占主导地位。“这对做决定非常关键,”Maben说。“例如,如果静态电源占主导地位,最佳解决方案是在更高频率下运行更少的节点。但如果动态功率占主导地位,在较低频率下运行更多节点是可取的。同样,在较高频率上运行较少节点比在较低频率上运行较多节点更好。做出这个决定的那一刻就是日程安排进入画面的时候。”

这需要动态电压和频率缩放等技术(dvf)、动态电压缩放(DVS)或自适应电压缩放(AVS)。“无论如何,在一天结束的时候,更高的频率意味着更高的能量,”他说。“例如,当我们使用DVFS时,必须将其链接到软件调度器,以决定是否打开更多的节点。如果它是动态的,需要运行更多的节点,它将调用电源管理单元。调度器会说,‘我要运行处理器1、3和5,所以把频率从1GHz降低到500MHz,因为我已经调度了三个核。’在调度器知道静态功率占主导地位的情况下,它会说,‘我只运行一个核心,但频率是3GHz。’”


图2:不同的技术产生不同的结果。来源:Synopsys对此

Maben说,仅仅改变频率不会有任何不同。“你必须改变电压,因为电压越高,频率就越高。从功率角度看,开关功率为CV2F,所以有直接的影响。一旦我们降低频率,就意味着我们可以降低电压。当我增加频率时,我需要增加电压。这些是相辅相成的。”

能源优化选项
为了实现能源优化,需要在系统级和IC级采取不同的架构决策。西门子的Ahmed说:“通常情况下,IC级别可能会有一种、两种甚至四种不同的场景,他们可能会运行它们。”“这些可能来自计算平均功率,他们会看到空闲功率情况,峰值功率情况。然后,他们会尝试用空闲电源来确定是否有漏电,或者是否真的没有做功。”

峰值功率,也称为最大平均功率,是发生最多工作的地方,它消耗大量的功率。在两者之间,有不同种类的正常功能模式,可能会有电力消耗。“这是线性缩放吗,取决于我做了多少功和消耗了多少电?”这通常被证明是不真实的,因为在没有做多少工作的情况下,消耗了更多的电力。”“这可能是由于在设计中浪费了切换。为了消除这种情况,有许多优化寄存器和内存功率的策略。您可以经常将一些数据写入内存,但这只是配置的一部分。这里,也许你可以把它写在触发器上,让内存只在需要的时候工作,当你有大量数据输入的时候。或者,你可能想要进行细粒度时钟门控或一些微架构更改,以减少切换次数,从而实现一些功耗降低。”

然而,这些优化并不总是转化为系统级的能源节约。

“在真实的用例场景中,您所关注的一些块完全有可能是系统级别的,”Ahmed说。“假设你有一个模拟器,它运行了一个非常长的手机跟踪,就像有人在玩游戏一样。在这种情况下,一些块可能只在某些时间是活动的,但许多块可能在大多数时间是活动的。考虑到这类信息,您希望以一种可以优化工作负载以最大化能源效率的方式来设计电源。为了做到这一点,在硬件的系统级上有一些标准技术,包括分配电压岛,这样一些不是以性能为导向的块实际上可以在更低的电压下工作,这节省了大量的电力。此外,SoC可以分为多个功率域。有些障碍是可以的权力的也可以节省漏电。互连的记忆可以状态第一切换,你可以把记忆轻度睡眠。在硬件层面有很多方法可以解决这个问题。”

此外,当架构师致力于能源管理时,他们将看到软件的功能与硬件的功能不同。

“在软件层面,可能发生的一件事是,资源有时可能被完全使用,有时可能被部分使用,”他说。“可能会有软件无法最佳使用的阻塞。您可以添加OS级别,通过在不使用或部分使用组件时选择性地关闭组件来更好地管理能源。例如,您还可以通过在操作系统级别开发资源管理策略来优化可用硬件资源的使用,从而消除资源浪费。事实上,人们现在在服务器中内置了能量管理程序,这样他们就可以优化工作负载来改变所需的工作量,例如,这取决于客户对其应用程序的保真度。这些都是你可以在软件层面使用的技术。”

修改电压、频率
在架构内进行调整以优化能源消耗是很复杂的,而且随着系统变得越来越复杂,这个问题会变得更糟。

“你不能只是降低频率,”Maben说。“从功能的角度来看,软件将编程并告诉它将进入一种需要降低频率的模式。但是在软件说要减少频率的时候会有延迟。首先,频率降低,其次是电压降低。当两者同步时,一个信号返回说,“我在这个水平。’问题是,如果花的时间太长,那就没有意义了。”

起床和安排时间是这个等式的关键部分。“从一个电压到一个特定频率,再回到正常工作需要多长时间?”这必须在架构级分析中提前完成,在那里您构建了整个SoC样机使用系统C模型,你可以进行事务级交互,”Maben说。“在这一点上,它都是事务级的,你将为系统计算出锁定时间。需要多长时间?对我来说0.4或0.6v有意义吗?这些电压是多少,我什么时候去?”

如今,主要的手机制造商都有10到12种睡眠状态,从轻微断电到完全休眠。选择应用这些状态中的哪一种以及何时应用取决于不同的使用场景。

艾哈迈德说:“如果人们把能源作为主要衡量标准,他们现在通常想要的是如何实现SoC 10%的能效目标。”“有些可能发生在软件方面,有些可能发生在硬件方面。您需要具备设备实际运行所需的所有类型的工作负载。你越能做到这一点,你就越有可能了解硬件中的哪些块适合优化,你需要关注的地方,以及你需要减少多少能量来实现那种能源效率。这几乎就像今天人们看电力报告的方式一样。在不久的将来,人们将关注电力/能源报告。这将变得非常重要。”

这也需要在工具方面进行一些更改。

“现在,人们在设计或等级层次的总结层面上看待权力。有漏电、开关电源、内部电源、总电源。能量可以有相同的测量方法,比如开关能量、总能量或总存储能量。这些是人们想看的报告。能量数字将和功率数字一样重要。”

问题是当一个决策被单独挑出来时,因为只有在SoC级别考虑能源才有意义,或者当工作负载太多时。

“在这种情况下,你可能想要做一些分析,这意味着你可能想要捕捉SoC的行为,甚至在IP级别,当你做出一些微架构选择时,或者当你选择不同的算法时,能量是如何变化的。当目标是能源效率时,这些是人们想做的分析。”艾哈迈德说。“由于目前的实现工具基本上是为性能而设计的,无论你是做综合,还是做位置和路线,性能都是主要的标准。如果人们想要进行能源优化设计,这些下游工具必须开始将电力或能源作为主要标准。因此,例如,任何优化或任何下游技术选择电池,都必须从能量的角度出发,而不仅仅是性能,这取决于他们如何设置电池。”



1评论

thewildotter 说:

你的“从电源的角度来看,开关电源是CV2f,”
短语掌握着权力和能源颠覆性变革的关键。为了打破我们的局部最小值(模拟退火类比)思维盒子,我们需要停止以绝对电压水平编码逻辑状态。设备电压阈值迫使V过高。Delta电压电平、频率、相位等等都是编码逻辑状态的方法,这些方法可能会导致更小(或可能不相关)的平均v平方值来表示和操作逻辑。为了实现更好的电力制度,我们必须克服几十年来使用绝对电压水平来表示逻辑状态的自满情绪。这将是痛苦的。一分耕耘一分收获。作为鼓励,与QRP竞赛相比,业余无线电操作员在全球范围内使用5瓦或更少的功率进行通信,而我们的处理器在进行1厘米的通信时浪费了100倍的功率。我知道我忽略了带宽差。它仍然说我们在芯片上浪费了太多的能量。 Onchip clock distribution power use, being predictable, really carries no information at all despite being the energy prodigal son of chip design work. Changes to move to logic state representation using other than absolute voltage levels will most likely also inherently solve the squandering of chip power on clock distribution. Any voltage and frequency island strategy is an example of a solution having no global perspective.
________________
thewildotter

留下回复


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

Baidu