中文 英语

分区以获得更好的性能和功耗

设计权衡变得更加复杂,转移到系统级别。

受欢迎程度

分区变得越来越关键,也越来越复杂,因为设计团队平衡不同的方法来优化性能和功耗,将他们的重点从单个芯片转移到包含多个芯片的包或系统,执行非常特定的任务。

近年来,设计分区的方法已经发生了变化,最近的变化是因为处理器时钟速度遇到了瓶颈,而需要处理的数据量却急剧增加。在过去,大多数处理器都以CPU的形式出现,它负责几乎所有的事情。但随着处理需求的增加,晶体管密度的增加,热量和噪声等物理效应迫使设计人员利用具有专门加速器和存储器的异构架构,要么在单个芯片上,要么在高级封装中。

“这些cpu负责所有的计算,”Steven Woo说Rambus.“他们负责处理I/O。它们负责处理网络流量。他们还负责所有的图像。快进几十年,现在我们有更多数量级的门,现在人们思考处理器的方式是多核和多功能的。这意味着除了拥有多个CPU核心外,现在它们还拥有图形等功能,其中一些还拥有用于加密等功能的专用加速器,甚至还有像向量引擎这样的高性能计算。”

这也需要更多的处理分区、对各种资源(如内存)的访问以及片内和片外数据流量的优先级。

“在处理器中——尤其是在像英特尔至强这样的处理器中,有多个内核设计用于支持多个用户,具有多个计算线程——问题开始变成,‘如果我有所有这些内核,可能所有这些用户,或者可能多个程序都在CPU上执行,那么如何对所有这些资源进行公平的分区?’”吴宇森说。“所谓‘公平’,你必须让每个人都能拥有自己的资源,但如果不是每个人都在使用所有这些资源,你就不希望它们被浪费掉。所以它们必须既可共享又可分割。在过去,我们不必担心这类事情。”

要做到这一点,需要进行一系列权衡,并对数据流和使用模型进行一些复杂的分析。“也有物理上的挑战,还有一些问题,‘我知道,理论上我可以拥有所有这些内核和所有这些资源,但我如何将它们取出来,因为从一个地方到另一个地方需要时间?“在这里,我们看到的是一种非常空间的布局,有一个核心,它将有一些内存资源和附近的东西。这意味着您必须仔细考虑连接拓扑。在这个拥有如此多晶体管的新时代,我们必须认真思考如何对这些晶体管进行正确的分区,以及如何使资源能够被供应,同时在全球范围内可访问。这样才能获得最好的性能和利用率,”他说。

2.5 d而且3 d方法增加了混乱。

“设计方法是不同的,特别是当你考虑如何划分平面图时chiplets,因为某些组件需要物理上紧密地结合在一起,”产品管理总监约翰·弗格森说西门子数字工业软件.“你必须考虑到这一点。那么,如果你正在计划一个新的设计,你的目标是2.5D或3D实现,你如何决定在哪里把东西划分到不同的die ?如何确定每个模具的最佳工艺?现在还没有很好的答案。每个人都在为之努力。如果所有东西都只有两个级别,那就简单多了,因为更多的自由级别意味着更多的变量,而要找出哪一个是最优的真的很复杂。”

另一个重要的考虑因素是资源的优先级,这可能会因用例和架构而有很大差异。为了解决这个问题,Arm开发了内存系统资源分区和监控(MPAM)框架,将资源控制绑定到访问内存系统的软件上。这允许对虚拟机或特定应用程序使用的资源进行限制。

的系统架构师Steve Krueger说:“在计算中有一些常见的资源控制用例手臂.“考虑RTOS和非RTOS如何共享一个系统,并为RTOS提供预期的响应级别。资源(例如部分高速缓存内存)可以专门供其独占使用。例如,这种类型的设计可能发生在汽车系统中,其中安全关键功能和非安全关键功能都运行在一个集成系统上,例如在车载娱乐系统上运行的备用摄像头显示器。资源控制有许多不同的用途,而MPAM提供了一个资源控制框架,可以适应不同的系统设计和不同的应用程序。”

权力的限制
功率优化也需要这样做,这可能是出于各种原因,而不仅仅是为了节约能源。例如,随着每个新节点的增加,动态功率密度会增加,这反过来会导致芯片或封装的某些部分过热。这反过来又会影响整体功能,以及电路的过早老化,可能会持续10年或20年。因此,设计团队可能会在芯片的特定部分设置功耗上限,而这反过来又会影响系统中多个组件的性能。

戈德温·马本(Godwin MabenSynopsys对此Fellow列出了六个涉及分区和优先级的步骤,以优化功率和性能:

  1. 对设计进行分区,这样就有了对功率敏感的重复模块。这确保固定一个块/分区/模块可以节省电力。例如,大多数AI/加速器芯片都有许多计算单元,如果在整个设计中重用这些计算单元将是有益的。在最近的一个芯片中,一个特定的计算单元在设计中被重复使用了超过10,000次,因此即使在该单元中节省1mW的功率也会节省10KmW。
  2. 钟门以各种可能的方式确保所有顺序元素、内存和宏在不需要时都被门控到最精细的级别。
  3. 以不同的方式编码/解码所有重型交通客车以降低功率,甚至包括差异数据。
  4. 在不需要的时候关闭电源,即使是1000个时钟周期。
  5. 尽可能部署DVFS/AVFS,充分利用“V”在功率上的二次效益。
  6. 由于故障在较低的几何图形和计算密集型设计中越来越占主导地位,因此尽可能使用容错架构,以适应时间和功耗。

基本上,分区决策总是归结为设计的优先级。

“通常你会听说魔法三角性能,功率和面积的数字设计经理亚历山大·米贾托维奇(Aleksandar Mijatovic)说:“我们将以最低的功率和最低的价格为您提供最大的性能。Vtool.“这意味着面积只是一个营销谎言。你不能那样做。但你可以利用现有技术来优化你的产品需求,并尽可能延长电池寿命。”

提高能源效率需要使用它的硬件和软件团队的合作。Mijatovic说:“他们依赖于知道最大流量在哪里的人来确保,例如,整个内部互连是优先考虑的,以降低延迟,甚至有时从某个地方和路线的角度考虑,或者将某个内存块移动到其最大用户附近,以使生活更容易。”“具体来说,你在非常基本的时钟级刻度上做了很多技巧。你要尽量避免在关键消费者和关键生产者之间有太多的仲裁。您还尝试在“位置-路由”(place-and-route)中避免通过部分到部分的线路产生延迟,这在纸上是老式的方法,但通常您将有多个用户和多个生产者,并且一切都是相互关联的。因此,您需要优先考虑某些路径,使其优先级低于其他路径。不管你的评估工具有多好,最重要的是工具的输入是正确定义的。”

虽然许多工具会估计功率、吞吐量和延迟,但最大的问题是它是否被配置为真正考虑实际使用情况。米贾托维奇说:“如果你错过了这个,那么你就会计划使用其他芯片。”“你需要适当地适应你的应用。首先,重要的是要分析用例,或者在大多数芯片中,分析一组最常见的用例,以优化数据线,优化位置和路线。通常在此之后,通过将一起工作的事物分组来优化权力域或门。这在电源方面尤其棘手,因为每个电源域都需要布线和隔离电池。您并不是免费获得任何东西,因此您确实需要考虑是否将它路由到特定分区,它将如何影响时间,或者您是否引入了延迟,例如,在唤醒过程中,因为每次断电实际上都需要通电和唤醒过程。也许你浪费的能量比你节省的要多,因为你需要重新初始化一些东西。从建筑的角度来看,这非常有趣。必须从大局出发,特别是考虑到芯片生命中所需要的东西。”

例如,考虑一下为大芯片配置互连所涉及的内容。协议和吞吐量被指定。执行数字运算以进行优化等。你得到了你想要的。如果您要求进行配置,那么没有任何工具可以帮助您避免不了解自己的项目。如果我们谈论的是优先考虑速度,这是一种方法,通常你会从一个弯道开始。要么速度非常快,要么你想优先考虑动力。很可能,你会首先尝试做最快的芯片,只要你在你的要求边界,然后你会尝试得到更少的面积或更低的功耗。我还没有看到一个项目主要是面积或电力驱动的,从最低的电力消耗开始,并试图满足要求。需求是固定的。 Power and area are good to have, but performance requirements must be met. Your customers may give you allowances for most things, but if you do not meet minimal performance, you are gone. This is why all the power partitioning, clock gating, use of different frequencies, and everything else are the second layer of techniques applied during the chip’s life cycle. The first thing you want to check is that your chip is functional. That, of course, can bring you to a completely unacceptable product from the perspective of power consumption and area, because if you have too big a chip, your production often will fall behind your competitors. You need to think smart from the start.”

低延迟的分区
性能的一个关键方面是延迟,这只是最近才成为一个大问题。降低延迟的优化与分区交织在一起。

“人们不需要处理延迟问题,除了在金融领域,当他们进行某种高频交易时,他们必须非常快地发出指令,”泰富的产品管理和营销总监Tony Chen说节奏.“今天,因为我们必须移动和处理更多的数据,当工程团队开始构建他们的芯片时,他们必须把这作为优先事项,并做出一定的权衡来降低延迟。例如,以前我们可能会强调性能,而今天我们愿意牺牲一些性能来换取延迟增益。你可以拥有世界上所有的性能,但如果你的延迟太长,这对你没有帮助。”

图1:在异构多芯片包中,分区变得特别复杂。来源:节奏

图1:在异构多芯片包中,分区变得特别复杂。来源:节奏

同样的权衡也适用于权力。“如果你想要快速移动数据,你必须消耗更多的能量,你必须聪明地划分设计,你可能想要优化设计的某个部分,以低延迟路径,但设计的另一部分你仍然想保持低功耗。所以设计分区也需要考虑。”Chen说。“对于我们的许多客户来说,在不同构建块之间的接口中,通常存在同步不同块以便它们能够操作和数据同步流动的问题。在过去,对于这种类型的接口,人们使用了很多触发器门来确保正确地进行同步,因为接口中发生了很多开销。今天,我们看到我们的客户和我们的内部工程团队重新思考区块之间通信的接口,这也发生在芯片设计的转变中。同样的问题也发生在那里——你如何让芯片彼此交谈而不招致延迟惩罚?”

Cadence的产品营销组总监阿里夫•汗(Arif Khan)表示,性能的一个关键权衡是稳健性。“在权衡延迟时,系统会受到限制,比如‘是的,你会得到这个延迟,但现在你的系统设计必须更严格,因为如果你真的想要这个,你必须更好地管理你的时钟倾斜,你必须更好地布局这些块。你真的必须控制整个系统的两端,这样你才能真正实现性能最大化。如果没有发生这种情况,那么您将退回到最糟糕的延迟,因为系统不可能失败。你不能在理想场景的假设下进行设计。你不能有数据损坏,因为你是为晴天场景设计的。”

涉及分区的权衡可能会非常复杂,有时需要判断什么是最重要的,对谁最重要。

“你必须考虑对市场和主要终端用户绝对最重要的事情,”Rambus的Woo说。“在很多情况下,驱动因素实际上是数据移动。当然,你想要你的表现。问题是实现这一切的最大障碍是什么。我们所看到的是,数据的移动实际上是限制性能和电源效率的因素。这就导致你说,‘当我有一个核心时,它的资源必须是接近的。当我有一堆数据时,我必须弄清楚如何最小化它的移动,因为这将影响性能和我所消耗的能量。因此,数据移动确实是事物如何组合的一个重要决定因素。”

权衡的问题
如何划分很大程度上取决于工作负载,Woo说。“你要做的第一件事是查看工作负载,并试图理解它试图做什么。在很多情况下,会有一个捕获阶段,你试图收集一堆信息,你试图对它进行计算,然后你对结果做一些事情。你要观察每一个阶段,然后决定在哪里做这些事情是最好的。你必须平衡这与需要多少数据移动来完成这一点,这是一场拉锯战。有些地方设计了一些硅,在某些任务上效率更高。gpu擅长处理图形和矢量计算。这是做这些事情的正确地方,只要你不为引擎付出如此沉重的代价,它会抹掉所有的好处。这真的是一个权衡游戏,‘我拥有一个非常强大的引擎,但我如何确保这个等式的整体平衡,并且利用它对我有利?’所以你会看到人们改变算法,重新组织计算。”

有许多方法可以优化设计,围绕这些不同的选择有许多权衡,这些选择需要不同的方法来划分芯片,以根据任何时候可用的技术来改进数据移动。

图02:英特尔的XEON。来源:英特尔

图2:英特尔至强处理器。来源:英特尔

他说:“你看着自己的申请,10年前的写作方式可能和现在完全不同。“如果我重构我的应用程序,把它分解成不同的结构,使用可用的新芯片,我该怎么做呢?这是很多与可用硬件和你想要尝试实现的算法有关的事情。如何重构这些东西?一些已经存在多年的应用程序包含大量嵌入式知识,因此值得针对当前存在的体系结构对其进行优化。对于某些应用程序来说,重构任务是非常密集的,并且在试图计算开发成本时会有一点权衡,因为有时开发成本实际上并不适合进行重构。做软件开发,然后重新验证一切都是很昂贵的,有时等式就是不成立。”

与此同时,西门子的Ferguson表示,这些划分决策在哪里以及如何进行取决于公司和所涉及的团队,因为涉及到很多不同的意见。“今天,这有点取决于现有组件的位置,这些组件要么已经构建好,要么我们知道我们可以构建,并且知道它们将会屈服、可靠和可重用。如果他们能做到这一点,那就容易多了。他们不需要考虑在哪里进行分区,因为它是自定义的。这将在设计过程的早期完成,例如,‘这是我们已经拥有的一些东西。围绕它进行设计,让它发挥作用。’”

结论
虽然关于单个芯片的分区已经讨论了很多,但这些对话现在也发生在系统级别。

“系统的设计和组合方式是基于几十年前数据移动的观点,”Woo说。“自那时以来,它一直在发展,但现在人们更愿意考虑对系统组合方式进行更彻底的改变。你可以看到,对芯片来说很好的东西,对整个系统来说不一定是正确的答案,反之亦然。目前还没有所有的答案,但它将在很大程度上受到数据移动需求的推动,以及人们对未来十年将发生什么的看法。”



留下回复


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

Baidu