软件定义硬件架构

硬件软件建立合作设计,但迁移多处理器系统添加了许多新的挑战。

受欢迎程度

硬件/软件合作设计几十年来一直是目标,但成功是有限的。最近,进展在优化处理器以及加速器软件对于一个给定的工作负载。虽然这两个技术可以产生令人难以置信的收益,这是不够的。

随着要求对所有类型的处理,单处理器解决方案服务不断下降。当需要多个处理器,互连和通信和内存架构中发挥巨大的作用在整个解决方案的效率和有效性。

所有必要的任务的工具确实存在,但没有一个单一的工具存在,它可以做所有的人。流是基本的,但大量的越来越多的关注,在很大程度上带来的RISC-V处理器体系结构——我们可以期待进步快。

“我们正处于一个非常有趣的时间点为芯片设计或产品设计,”Simon Davidmann说创始人兼首席执行官治之软件。“今天,几乎所有电子产品都是由他们的软件。这并不是一个软件。想到ADAS的复杂性或推理引擎。我们有这些软件的工作量,现在我们必须设计芯片来实现它们。你不能有一个处理器,因为我们没有硅技术。它最终被面料的处理器。ADAS需要处理数量级比可以从少数SMP处理器。没人能卖给我一个芯片,会做我想做的事,所以我必须构建自己的芯片。你需要三件事。 You need the optimized processors, you need the interconnect, and then you need the accelerators with the processors.”

在准备这个故事,进行了采访。西门子提出三个专家,每个从不同的部门在公司里。这个调用是一个很好的指标在行业的挑战,“观察尼尔的手,设计验证技术战略总监西门子数字行业软件。“不管你说话,无论他们的注意力,他们看到这个问题有点不同。”

最先进的
虽然处理器+加速器的概念首次引入与英特尔1980年8086/8087,所有的功能被挤到一个1993年个人电脑从英特尔奔腾处理器。但在移动世界,并不是所有的功能结合是由于严格的权力和区域限制。

“移动设备看起来就像这几十年来,随着gpu,视频、显示、ISP,和DSP加速移动工作负载的特定部分,”彼得·格林哈尔希说技术的高级副总裁手臂。“我们只有缩小这一观点略到达网络设备,它由许多加速器(例如数据包处理)周围的一个应用程序处理器。”

不过,两件事正在改变。首先,现在的处理器本身可以被修改为特定应用程序或用例。其次,软件越来越驱动过程。

新的工具已经开发出来,非常适合这些目标,。“领域特定的处理器不仅仅是一个处理器+加速器,“说Zdeněk Přikryl,首席技术官Codasip。“有些领域这种方法仍然是有意义的。但也有许多其他的加速器是不够的,以及处理器本身应该优化或定制。领域特定的处理器可能包含具体指示,有助于显著提高性能。或者,新的安全方法,比如谢利,可以被采纳。工具支持不仅仅是一个实现,例如RTL代码,而且软件移植,如C / c++编译器,可执行的模型,调试器等等。”

这些处理器会操作在一个更大的上下文中。“RISC-V只是在正确的时间和地点对于那些想要建立自己的处理器和面料的处理器,“治之”Davidmann说。“这是完美风暴的一部分,因为突然每个人都想与RISC-V建立这些新的面料。他们需要虚拟平台。他们需要模拟织物在设计过程的早期,这样他们就可以运行他们的软件工作负载和分析他们软件功能正确。然后他们工作是否满足性能需求才能实现它。”

有些情况下,一个更大的背景下必须被考虑。“如果我们和异构系统的想法去做很多事情,但利用本地化资源,你开始进入的问题,“系统表现如何?”西门子的手说。“这不是这么多的软件和硬件怎么设计,但什么是系统的总体架构。你需要做什么异构系统建模和系统分析?这将帮助你识别你的瓶颈在哪里。”

添加在太多的灵活性可以创建问题,证明RISC-V今天。“太多的自由创造意想不到的灾难之后,”Frank Schirrmeister说负责营销的副总裁Arteris IP。“你有RISC-V,原则上你可以做任何事,但这创造了一个巨大的问题。如果您创建了一个支离破碎的软件生态系统,你不重现您的软件只会工作的经验。这是手臂的伙伴关系的承诺。RISC-V现在设置防护栏杆,将帮助你获得大量的软件,然后运行在这些资料。”

这种灵活性也影响验证。“修改CPU是一个高度侵袭性工作,需要大量的验证周期,”格林哈尔希手臂说。”此外,当修改一个CPU,很少的问题只是开箱验证套件和证明标准的CPU是正确的。相反,新的测试和testbenches需要写,这可能是一个挑战,如果不是由工程师完成设计和验证原始的CPU,他们将有很多现有的知识关于CPU。”

这是一些专用处理器工具发光。“你需要的工具,像是从Synopsys对此ASIP设计水平,或Codasip,或其他开源工具,指令级建模的目标架构,然后生成一个编译器和仿真器体系结构的描述,”蒂姆•Kogel表示虚拟原型的首席工程师Synopsys对此。“与那些,软件开发人员可以再次受益于所有这些美丽的自定义指令。这更像是指令级体系结构优化的问题,调整为一个特定的一个核心目标架构。”

同时,该行业想要进军新的领域。“Tenstorrent做小RISC-V AI系统加速器在过去,但路线图的架构是一个CPU核的海洋,与额外的AI加速器chiplets更多的内存和外部I / O,“Kogel补充道。“在舒适的,奔驰讨论了多个SoC (mSoC)自主驾驶。它由chiplets做不同的任务——计算,推断,一些专家中心融合处理——再一次,异构系统,因为您需要优化性能以及低功率。规模较小,最新一代的英飞凌单片机的嵌入式计算也是一个多核CPU +一个向量DSP。”

专门的工具是新兴来处理这个问题。CacheQ,例如,将软件分为将运行在一个通用的处理器和什么将运行在一个加速器。和建筑类新兴能够排序。

“如果我们看处理器或处理器集群之外,我们可以看到在互联领域特定的解决方案或其他系统级部分,也“Codasip的Přikryl说。“例如,有不同的人工智能引擎利用瓷砖与瓷砖之间具体的互联架构。”

搬到多处理器的解决方案
应用程序处理器迁移到均匀的多处理器解决方案在经济上不再可能提高性能。“你在试图把一切达到收益递减到一个核心,你真的需要分布工作负载在多个核心,”乔治说墙,产品营销组主任Tensilica Xtensa处理器IP节奏。“是真的很长一段时间,新设计提出了挑战。使用特定于域的计算,确定执行仍然是至关重要的。多核设计,你将失去一些决定论由于不确定性和变化在处理器之间的通信和共享内存。任何多处理器的另一大挑战是软件。你如何适应多核软件工具需要注意的,多处理器架构?软件如何帮助你工作负载分区可以实现效率呢?和工具可以帮助识别效率得到的多处理器配置?”

而均匀的进展多处理、异构增加了额外的挑战。“异构的多处理将成为普遍一旦扩展为支持特定于域的处理本地,”查理·豪克说在Bluespec CEO。“例如,硬件加速器连接到处理器在多处理Linux系统可以像软件线程。这使加速器和同样强大的计划和执行任务并发软件提供的多线程几十年来,消除大量的繁琐和容易出错的人工调度。它还支持Linux解决其他问题,如防止加速器故障系统崩溃或影响其他进程。支持特定于域的计算通过扩展证明和熟悉的技术如多处理,Linux和多线程将促进采用最小化方法变化。”

这需要一种系统级的思维。“成功的异构多核SoC设计的两个键,1)提供function-optimized处理匹配工作负载,2)避免软件开发人员不得不考虑分区代码到一个异构的目标,”史蒂夫说罗迪,首席营销官二次曲面。“图形核心一直OpenGL api,干净利落地允许开发人员在GPU上运行,而不需要深入研究给定SoC架构的特点。虽然有这样的框架OpenCL编写程序,神奇地跨异构处理器执行,他们经常依靠成熟的编译器冗长繁琐的软件开发人员,或有很大的性能开销。因此,吸收有限OpenCL及其亲属的市场。”

处理器核心之外的扩展的问题。“这是这两个世界结合在一起,“Kogel说。“你正在探索在精密指令级CPU指令集。你正在探索宏观架构,考虑如何将多核集群在一起这是连接到一个支柱连接DDR内存。和整体性能,做什么工作?这正是我们认为这两个词结合在一起。他们已经分开很长时间了。”

必须做出决定如何异构的核心应该是。“从软件设计的角度来看,这是简单得多有这些加速器是相同的在一个集群中,“节奏的墙说。“然而,会有情况下,集群的处理器将共享一个共同的加速器。这种加速器更可能是松散耦合的,也许定期执行任务,只发生在你在处理流。”

在高端应用程序加速器也可以是可编程的。fpga和嵌入式fpga正在不断发展与gpu,很大程度上是因为他们可以通过编程算法更新。

“有成千上万的不同uart(通用异步收发两用机),”Andy Jaros说销售的副总裁Flex Logix。“如果有人是构建一个以UART芯片,他们想要的目标的任何应用程序的灵活性。越来越发展,芯片是昂贵的,不管是在90 nm或28 nm。所以他们愿意牺牲一些区域FPGA reprogrammability,即使它是要花一点,因为它会让我应对更多的客户。”

通信
许多计算系统是制约通信,而不是处理马力。“数据存储和数据移动变得极其重要,”拉塞尔·克莱恩说,弹射器HLS团队计划主任西门子EDA。“你发现的一件事是你打破这些系统是数据运动成为限制因素多快可以计算的东西。通常,我们真的可以建立足够的计算元素执行任何东西。但这是获取这些数据计算元素,并消耗结果,他们需要使用,在设计成为真正的挑战。”

这个问题存在于多个水平。“虽然有进步扩大计算在一个芯片上,扩展了快速互连技术变得最重要手段扩大马力,“伟峰Zhang说,首席架构师和副总统Lightelligence的软件。“这可能是来自chiplet-to-chiplet芯片级,或accelerator-to-accelerator compute节点水平。”

吞吐量数据移动成为关键。“这不仅仅是映射处理不同类型的核心,你需要考虑如何将数据从一个子系统移动到另一个,“Kogel说。“看起来很容易在一个电子表格,变得更加复杂,当你有一个定制的加速器,可以完成一定的任务快十倍。但是如果要花十倍的时间移动数据子系统,最后你没有获得太多。这是一个复杂的问题,设计这些系统有足够的带宽,使用正确的沟通模式,无论是DMA引擎,有效地移动数据,或者是连贯的互连自动移动的数据缓存一致性协议。有很多选项在一个大型设计空间探索。”

通信需要物理互连和可能需要更高级别的协议。”,这一趋势反映在计算链接(CXL)表达的积极发展和普遍Chiplet互连表达(UCIe)财团,快速成长与超过100名成员,“Lightelligence的张先生说。“同样的,开放的计算项目基金会((OCP)起着重要的作用,建立和促进开放的领域特定体系结构(ODSA)使用群与die-to-die互联线(鞠躬)。与这些开放标准,计算和内存崩溃,比如内存池和异构加速器(包括gpu)池、将可能很快成为数据中心的主要基础设施。”

内存子系统的组织是至关重要的。“标准CXL备受关注、记忆不再被困在一个地方,”尼克说Ilyadis高级产品规划总监Achronix。“你可以分享它以不同的方式,您可以缓存它以不同的方式。它能给你更多的灵活性在内存架构是如何扩散到不同的处理器。有加速器,记忆是如何隔离,共享或合并或分割。会有私人的记忆,共同的记忆和集中记忆。”

这一切都需要捕捉到一个可执行的模型。“企业需要应用程序的高级方法通过构建一个模型,甚至在你之前有一个特定的体系结构中,“Kogel说。“高级资源模型,就像一个虚拟样机的架构,您可以探索选项,然后试着地图应用程序。然后你可以分析的通信开销的影响资源利用率。你需要做一个高级勘探阶段选择之前,或为了选择正确的目标架构。”

在未来的故事,适合流动将以及如何描述一些空白需要填补。最重要的是,它将检查软件的状态准备利用它。



留下一个回复


(注意:这个名字会显示公开)

Baidu