0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将多核复杂性与不同的工具和架构混合在一起

星星科技指导员 来源:嵌入式计算设计 作者:Bruce Edwards 2022-06-14 16:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

假设不考虑金钱、时间或商业限制,并且只有物理学是唯一的限制,您将如何设计最终的计算机处理器?它会大规模并行,以极高的频率运行,并使用奇异的光学或量子互连吗?它会运行熟悉的软件,如 x86 或 PowerPC,还是有新的优化指令集?它会很大还是很小?它是否需要智能编译器或独特的软件结构?

多年来,为了让处理器运行得更快,设计人员必须做的就是提高时钟速度。在功耗和相关的散热赶上速度增加之前,这一直很好。超越这一点,走得更快意味着除了走得更快之外还要做一些事情。

多核速度更快,但是……

从此开始了多核时代。如果两个头比一个好,那么四个肯定是两倍好。在某种程度上,这个公理是正确的。但是今天的双核和四核处理器的运行速度并不比上一代快两到四倍。

这有两个原因:硬件和软件。当今绝大多数多核芯片的扩展性都不是很好,因此四核并不能真正提供四倍于单核实现的性能。片上总线跟不上,缓存一致性开销会消耗性能,管道过于频繁地停止等等。由于各种原因,当核心数量翻倍时,传统的微处理器架构不会接近双倍的性能。

在软件方面,许多程序员不习惯或不熟悉多核编程。当所讨论的多核芯片包含不同类型的处理器内核(通常称为异构架构)时,尤其如此。对一个处理器进行编程已经够难了;使用单独的工具链对四个不同的工具进行编程要复杂得多。

异构的,同质的,还是只是庞大的?

可以提出一个论点,即不同的计算问题需要不同的资源,因此微处理器应该包括一系列不同的处理资源。例如,一些任务可能需要信号处理能力,另一些可能需要单指令多数据矢量处理,而还有一些可能涉及复杂的决策树和大量数据移动。

一种观点认为,没有一种处理器架构可以有效地处理所有这些不同的任务。因此,需要不同架构的马赛克。在极端情况下,可以设想一个处理器由截然不同的计算引擎组成,除了它们共享的包之外没有任何共同之处。这些处理器实际上是共存的,而不是合作的。

相反的方法是选择一个指令集并坚持下去。这无疑简化了编程,但存在部署过于通用的处理器的风险,这些处理器没有针对特定任务进行微调。另一方面,处理器是可编程的,改变软件比改变硬件更容易、更便宜。

易于编程也不是一个小问题。延迟通常是由软件错误引起的,而不是硬件问题。更复杂的是,程序员被多核处理器吓得要死。让一个高端处理器可靠地工作已经够难的了。你如何编程和调试其中的 10 个?使用一个内核架构进行编程、调试和设计比处理具有不同指令集、架构、总线、工具和调试方法的不同内核的混合体更容易。

对比方法

英特尔AMD 已将大部分建议牢记在心,并生产了其传统 x86 架构的双核和四核版本。在某种程度上,这只是将资产从负债中提取出来。x86 是他们知道如何做的,向后兼容性对他们的市场至关重要。现有的 x86 代码在这些升级后的设计上运行良好,尽管它很少运行得比以前快得多,也很少使用额外的内核。

相比之下,许多 RISC CPU 和网络处理器 (NPU) 供应商采取了截然不同的方法,将各种不同的处理器内核和架构混合到各种瑞士军刀设计中。例如,IBM 著名的 Cell 处理器(图 1)有一个通用处理器内核和八个专用内核,需要不同的工具和编程技术。几条宽总线——一些环,一些更传统的——以各种方式连接核心。Cell 的性能令人印象深刻,但 PlayStation 程序员抱怨 Cell 是一头难以驯服的野兽,部分原因是管理带宽、延迟、总线事务和一致性都是游戏的一部分。

图 1: IBM 的 Cell Broadband Engine 芯片包括九个处理器,其中一个基于 PowerPC。处理器通过元素互连总线连接,共有 12 个主控器。它被实现为四个反向旋转的单向环。

poYBAGKoQYeAJBpFAANXntrKZqg173.png

将所有正确的硬件资源集中到单个芯片上是一回事。使组合可用是另一回事。具有混合架构的大规模并行芯片结合了两全其美:大规模多核复杂性与完全不同的工具和架构。这就像在您的芯片中举行联合国会议一样。

啮合在一起

更好的方法是保留大规模并行部分,这是高性能的必要条件,但抛弃差异并将许多相同的处理器内核连接到二维网格中。从概念上讲,它与通过网络连接单个计算机没有太大区别,只是在微观尺度上。

Meshing也有“grok-ability”的一面。程序员不难想到十个、100 或 1000 个相同的处理器内核以相同的方式工作并以一种简单但大部分透明的方式相互通信。1000 个元素中的每一个是否都针对给定的工作进行了完美调整几乎无关紧要。重要的是有 1,000 个处理器可以解决一个问题。

这种均匀的布置也有助于可扩展性。虽然类似 Cell 的组合非常适合它们的特定任务,但构建更大或更小的 Cell 版本需要芯片制造商进行大量的重新设计工作,接收端的程序员甚至需要更多的工作。现有的 Cell 代码不会神奇地放大或缩小到具有不同资源组合的芯片。它可能根本不会运行。相比之下,在相同处理器的网格中增加 25% 的处理器可增加 25% 的计算能力,而不会破坏现有代码。

这并不意味着设计这种类型的芯片是微不足道的。核心之间的带宽是第一个挑战。如果核心不能有效地相互通信,那么连接它们就没有多大意义了。这种方法的一个例子是 Tilera 的 TILE-Gx100 处理器(图 2),包含 100 个相同的内核。在此处理器中,相邻内核之间的带宽为 1,100 Gbps。每个核心在北/南/东/西方向有四个连接,100 核处理器的总带宽为 200 TBps。大多数应用程序很难使用其中的一小部分。即使是 Tilera 相对适中的具有 4x4 内核阵列的 Gx16 芯片也拥有 20 TBps 的片上带宽。

图 2:其中一个 Tilera TILE-Gx 处理器内核(其中 n 为 16 到 100)有效地处理内核之间的带宽。每个核心块都有自己的 64 位处理器、L1 和 L2 缓存,以及与北/南/东/西方向的四个邻居的网络连接。

poYBAGKoQZCALoVKAAWOv-bzN6Q682.png

这种基于图块的设计的另一个挑战是内存延迟。如果内存不够接近或无法访问,所有这些处理器都可能会停止运行。同样,Tilera 将其设备分解为易于复制的切片,每个切片都有自己的本地 L1 和 L2 缓存。有趣的是,即使内存是每个图块的本地内存,它也可以是更大的共享分布式缓存的一部分,该缓存在所有共享者之间保持一致性。在某些情况下,程序员可能想要定义任意数量的缓存一致性岛,必要时与相邻的切片合作或忽略。

整个芯片架构就像一个计算结构。相同的逻辑块、内存块和互连块在行和列中复制,以制造更大或更小的芯片。就像 FPGA 或分形 Mandelbrot 图像一样,平铺处理器在任何规模上看起来都是一样的。大或小,它的编程方式相同。可扩展性平方。

与四核 x86 类似,但与 Cell 或 NVIDIA 芯片不同,TILE-Gx 网状互连在引擎盖下透明地工作。Mesh 流量不需要手动调整,事务也不需要手动调整以避免冲突或仲裁。尽管它位于中心,但网格基本上是不可见的,这正是程序员喜欢它的方式。

可扩展性最终获胜

与大多数生态系统一样,许多不同类型的处理器将继续存在。有些人会茁壮成长,而另一些人将勉强在某个特定的利基市场谋生。外部力量将淘汰牛群,就像图形和网络处理器一样,筛选出那些不适合当前环境的人。

在过去的几十年里,可扩展性和可编程性一直是关键。开发人员需要一种他们可以理解并能持续使用的芯片。他们想要一个增长路线图,包括价格/性能规模的上下。让它变得非常非常快也没有什么坏处。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20382

    浏览量

    255642
  • 芯片
    +关注

    关注

    463

    文章

    54655

    浏览量

    471057
  • NVIDIA
    +关注

    关注

    14

    文章

    5727

    浏览量

    110299
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    大厂推荐:设计RS485接口电路--6KV防雷电路设计

    (RS485接口防雷电路) 接口电路设计概述:RS485用于设备与计算机或其它设备之间通讯,在产品应用中其走线多与电源、功率信号等混合在一起,存在EMC隐患。 本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计,从设计层次解决EMC问题。
    的头像 发表于 05-18 17:01 316次阅读
    大厂推荐:设计RS485接口电路--6KV防雷电路设计

    如何使用 Python I2C LCD 与 VIsionFive 一起使用?

    我刚刚发布了篇关于 I2C LCD 与 VisionFive 一起使用的新文章。你可以检查下。 注意:这是基于 libgpiod 库,我已经在使用这个库。您可
    发表于 03-30 06:52

    如何 VisionFive 2 与业余无线电一起使用?

    VisionFive 2 与业余无线电一起使用
    发表于 03-25 07:01

    阿里狗16.6,层叠表能打开,但是打开后内容缩在一起,调整间距之后,关闭在打开还是缩在一起,怎么处理呢

    阿里狗16.6,层叠表能打开,但是打开后内容缩在一起,调整间距之后,关闭在打开还是缩在一起,怎么处理呢 试过初始化窗口,重新破解,还有重新加载补丁,都不行
    发表于 02-13 11:01

    XINGLIGHT成兴光 2026光耦产品手册

    1.晶体管光耦(PhotoTransistorCoupler)是发光器件和光敏器件组合在一起的半导体器件,用于实现电路之间的电气隔离,同时传递信号或功率。可分为单向晶体管光耦(直流)和双向
    发表于 01-19 14:16 1次下载

    聚是鸿蒙气,散是满天星!《鸿蒙星光盛典》诠释“在一起”的群像力量

    在“数字中国”战略迈入十周年、“十四五”规划收官之际,各地追光人用特别的方式相聚《鸿蒙星光盛典》。这场以“在一起”为主题的盛典,是中国科技自立自强之路的深情回望,是千行百业共建数字中国的生动展示,更是场面向未来的集体期许。
    发表于 12-22 17:58 1125次阅读
    聚是鸿蒙气,散是满天星!《鸿蒙星光盛典》诠释“<b class='flag-5'>在一起</b>”的群像力量

    Video Processing Subsystem与HDMI示例设计

    在撰写本文时,HDMI Transmitter Subsystem IP 核与 Video Processing Subsystem IP 核均有多个示例设计可供使用,但并没有演示两者功能结合在一起来使用的设计。
    的头像 发表于 11-07 10:35 1047次阅读
    Video Processing Subsystem与HDMI示例设计

    医疗PCB供应链复杂性与风险管控

    印刷电路板(PCB)最初作为种用于承载和连接电子元件的简单解决方案,并不需要复杂的点对点布线。如今,PCB已成为我们日常生活的重要组成部分,并且随着技术进步,以前的简单性逐步让位于复杂性。现在我们
    的头像 发表于 10-14 14:17 719次阅读

    N9H20如何 SPI 闪存与非作系统 BSP 一起使用?

    N9H20如何 SPI 闪存与非作系统 BSP 一起使用?
    发表于 09-01 08:27

    Temp-Flex混合型带状电缆有哪些特性?-赫联电子

      Molex推出了Temp-Flex混合型带状电缆,把各种类型和尺寸的电线结合在一起,同时提供系列绝缘设计。   Temp-Flex混合型带状电缆的特点和优点是定制的
    发表于 08-19 11:36

    电动汽车用异步电动机混合控制系统的研究

    ,通过把 FOC 和 DTC 这两种控制方法结合在一起,取长补短,形成种对异步电动机的混合控制方法。其次,还搭建了该控制系统的 Matlab 仿真模型和基于 DSP2812的硬件电路,通过
    发表于 07-24 11:51

    无法Jlink调试器与CYBT263065EVAL COOLDIM_PRG_BOARD连接在一起怎么解决?

    我无法 Jlink 调试器与 CYBT263065EVAL COOLDIM_PRG_BOARD连接在一起
    发表于 07-03 06:24

    Analog Devices Inc. LTC4451 40V 7A理想二极管数据手册

    Analog Devices Inc. LTC4451 40V 7A理想二极管使用集成N沟道功率MOSFET替代高性能肖特基二极管。该器件可轻松OR电源结合在一起,以提高系统可靠并防止反向导通。
    的头像 发表于 06-24 11:46 1090次阅读
    Analog Devices Inc. LTC4451 40V 7A理想二极管数据手册

    MBSE工具+架构建模:从效率提升到质量赋能

    MBSE解决方案,以架构建模为纽带,工具链集成为支撑,帮助客户有效应对汽车电子系统日益增长的复杂性挑战。通过打破信息孤岛、实现变更协同、提升工具链流畅度,加速开发进程、降低返工成本、提
    的头像 发表于 06-20 10:57 530次阅读
    MBSE<b class='flag-5'>工具</b>+<b class='flag-5'>架构</b>建模:从效率提升到质量赋能

    扫描电机的PID恒速控制仿真及实验

    数学模型,并通过 Matlab Simulink 搭建了仿真模型。提出了使用增量式PID控制算法实现电机的恒速控制,并进行了仿真,最后,利用STC89C52PID控制与BIDCM结合在一起,通过实验
    发表于 06-16 21:53