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

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

3天内不再提示

如何处理SoC中的性能瓶颈呢?

数字芯片实验室 来源:数字芯片实验室 2024-05-01 09:33 次阅读

SoC 中不断添加处理核心,但它们不会都得到充分利用,因为真正的瓶颈没有得到解决。

SoC 需要处理的数据量激增,虽然处理核心本身可以处理这些数据,但内存和通信带宽成为瓶颈。现在的问题是可以采取什么措施解决这个问题。

内存和 CPU 带宽之间的差距(即所谓的内存墙)不是一个新问题,还在继续恶化。

早在 2016 年,德克萨斯州高级计算中心的研究科学家 John McCalpin 就发表了一次演讲,研究了高性能计算 (HPC) 的内存带宽和系统资源之间的平衡。他分析了当时排名前 500 的机器,并剖析了它们的核心性能、内存带宽、内存延迟、互连带宽和互连延迟。他的分析表明,每个插槽的峰值 FLOPS 每年增加 50% 到 60%,而内存带宽每年仅增加约 23%。此外,内存延迟每年减少约 4%,互连带宽和延迟每年增加约 20%。这些表明数据移动方面存在持续且不断扩大的不平衡。

这意味着,如果我们传输数据,则每次内存传输所花费的时间相当于 100 次浮点算术运算。也就是说,如果无法预取并且错过了cache,你就失去了执行超过 4,000 次浮点运算的机会。

ba11294e-ffc7-11ee-a297-92fbcf53809c.png

系统性能要素的不平衡。

一个设计良好的系统是平衡的。大多数人想要的是更有效地使用晶体管,目标每美元的吞吐量和每瓦特的吞吐量将会更高,总之利用率越高越好。

在考虑系统性能时,要么受计算限制,要么受内存限制,要么受 I/O 限制。随着计算速度的加快,需要更加重视内存是否能够跟上计算速度,并且还需要更高的带宽接口来将传输数据。

但业界对处理性能非常着迷。实际上,计算单元很重要,但它们通常不是实际系统速度的限制因素。系统速度和工作负载强相关,它取决于数据从某个地方来、以某种方式处理并发送到数据被需要的地方有多快,并受到沿途乱七八糟事情的干扰。

这意味着不可能构建一个适合所有任务的最佳系统。关键是要确保其均衡性良好,并且在任何区域都不会过度配置。

移动数据

移动数据肯定会影响系统性能,也与功耗有关,因为移动一段数据比对其执行计算消耗的功耗高几个数量级。完成一项任务,一般意味着将数据通过外部接口移入内存,从内存到CPU,中间结果在内存和CPU之间来回切换,最后结果通过外部接口推回。

无论你的计算速度有多快,或者你的内存阵列有多大,最终决定芯片和系统性能的是连接两者的总线带宽。这就是最大的瓶颈所在,不仅仅是总线,还有高速接口,它们都为解决数据访问瓶颈做出了自己的努力。

有效的内存带宽的提升是cache的采用。假设大多数内存访问来自cache而不是主存,这有效地使数据更接近处理器,并减少延迟。处理器性能的提高如此之快,主要是通过核心数量的快速增加。然而,cache性能一直在下降,这是导致延迟增加的主要原因之一。即使 HBM 的引入也未能扭转这一趋势。cache性能的降低是因为cache设计变得越来越复杂,特别是随着更多核心保持cache coherent,并且多级cache串行lookup以节省功耗。

另一种选择是将计算移至更靠近内存的位置。in-memory computing的时代才刚刚开始,这可以通过三种方式实现。

1、通常,由于 DRAM 制造的经济性,我们不会在 DRAM 芯片上看到很多复杂的逻辑。我们可能会看到少量非常具体的函数被添加到这些芯片中,例如累加或乘累加函数,这在许多 DSPAI 算法中很常见。

2、第二种可能是像 CXL.mem 这样的技术,在这种技术中,将计算功能添加到控制内存阵列的逻辑芯片中是非常可行的。从技术上讲,这是在内存附近处理而不是在内存中处理。

3、第三个介于两者之间。对于某些堆叠式存储器(例如 HBM),通常有一个逻辑芯片与 DRAM 共同封装在同一堆叠中,并且该逻辑芯片是面向 CPU 和 DRAM 设备的总线之间的接口。该逻辑芯片为逻辑芯片上的中低复杂度处理元件提供了空间。

HBM 的成功无疑帮助普及了chiplets的概念,曾经受到光罩限制或产量限制的芯片现在可以在多个chiplets上制造并集成到一个封装中。然而,现在需要的芯片间连接解决方案可能比单个芯片上的连接解决方案慢。当公司将芯片分割成多个同质芯片时,希望在分割芯片上执行相同的操作,又不会降低性能或准确性。

实际上,这些chiplets是在系统环境中设计的,不仅仅是之前那样的存储器或控制器设计。封装中的 IC 会引入其自身的寄生效应,因此你需要将其视为一个系统,并查看眼图,看看如何根据系统的运行条件,信号的来源和接收方,对其进行优化,从而大幅增加带宽并减少延迟。这些目的决定了接口和协议。USBSATA、PCIe、CXL、DDR、HMC、AXUI、MIPI,这些不胜枚举的协议都需要接口,业内正在创建更新的协议,并且需要新的接收器来实现这些芯片到芯片的连接。

multi-die系统的一大优势是可用连接的数量变得更多。从 I/O 的角度来看,我们曾经拥有 1,024 位总线,然后我们转向串行接口。但最近发生的情况是,那些串行接口现在已经变成并行接口,例如 x32 PCIe,它由 32 通道超高速串行连接组成。

工作负载

如前所述,系统性能和工作负载强相关。不可能制造针对所有情况优化的通用机器。找到PPA平衡迫使人们重新思考和定制芯片。

人工智能这样的任务也存在着不同的工作负载。如果你观察人工智能,就会发现它有两个方面。一个是训练,在训练中你需要不断地访问内存,因为权重就在那里。而且你会不断改变权重,此时内存访问是关键。然而,如果你看推理,模型已经训练好了,你所要做的就是 MAC 操作,没有访问内存去改变权重。

寻找适当的平衡需要采用协同设计方法。在架构阶段,需要评估芯片的各种场景,关注芯片内以及芯片外的吞吐量和带宽。另一方面,物理设计团队必须找出芯片的最佳尺寸。由于产量和功率的原因,它不能太大,更不能太小。然后设计团队必须为他们构建接口和协议。架构团队、物理设计团队和设计团队不断地进行三方战斗,以找到让每个人都满意的最佳点。当然,少不了验证这个守门员。

计算范式

对于某些问题,使用传统软件可能会导致解决方案效率低下。这发生在从单核到多核的过渡以及 GPGPU 的采用期间。业界正在等待新一代人工智能硬件的实现。GPU 可以进行大规模并行计算,除了渲染形状之外还可以做各种事情。

结论

添加更多或更快的处理核心固然很棒,但除非你能让它们保持忙碌,否则就是在浪费时间、金钱和电力。

随着 DRAM 迁移到封装中,预计潜在带宽将持续增加,但 DRAM 性能在过去 20 年里始终没有跟上处理器,那么业界将不得不通过自身架构来解决这个问题。

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

    关注

    68

    文章

    19191

    浏览量

    229311
  • DRAM
    +关注

    关注

    40

    文章

    2305

    浏览量

    183362
  • SoC芯片
    +关注

    关注

    1

    文章

    608

    浏览量

    34883
  • Cache
    +关注

    关注

    0

    文章

    129

    浏览量

    28309
  • HPC
    HPC
    +关注

    关注

    0

    文章

    312

    浏览量

    23706

原文标题:处理 SoC 中的性能瓶颈

文章出处:【微信号:数字芯片实验室,微信公众号:数字芯片实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    串口接收不等长的数据如何处理

    串口是一个很重要的通信方式,但是要用好串口并不是那么简单,比如如何接收不等长的数据等。你们是如何处理?大家来说说你们的做法。
    发表于 05-15 08:02

    PCB电源部分如何处理?

    PCB电源部分如何处理?DDR的基本要求是什么啊 ?看了好多资料什么样的说法都有
    发表于 03-14 14:51

    SoC语音处理系统有什么功能?

    在设计一款面向多媒体应用的嵌入式系统时,实时性能非常重要。本文提出了一种基于ARM7TDMI内核的SoC语音处理系统的设计方案,并根据该款SoC
    发表于 10-24 07:12

    何处理好跨时钟域间的数据

    跨时钟域处理是什么意思?如何处理好跨时钟域间的数据?有哪几种跨时钟域处理的方法
    发表于 11-01 07:44

    TTL集成与非门电路不用的输入端如何处理

    TTL集成与非门电路不用的输入端如何处理
    发表于 04-28 10:52

    NANO芯片系统,其对应的AVDD,VREF等引脚该如何处理

    NANO芯片系统,如果用不到ADC模数转换模块,其对应的AVDD,VREF等引脚该如何处理?可以悬空或直接接地吗?假使能悬空或直接接地,这样能节省一部分不必要的功耗吗?
    发表于 08-25 06:46

    SoC集成处理单元性能评估及功能划分

    SoC集成处理单元性能评估及功能划分
    发表于 01-12 22:09 2次下载

    SoC处理单元性能分析

    功能的划分。 在准备开发目前越来越复杂的便携式系统时,设计人员面对的最大挑战之一就是采用什么样的处理器组合来实现最优化的3p指标,即系统性能最高、价格最低及功耗最小。系统级芯片(soc)集成使得今日的创新成为可能,但它常
    发表于 10-21 10:37 1次下载
    <b class='flag-5'>SoC</b><b class='flag-5'>中</b>的<b class='flag-5'>处理</b>单元<b class='flag-5'>性能</b>分析

    何处理电子污染

    电子垃圾污染给环境造成了巨大的压力,当今随着电子产品废弃量的增加他逐渐得到了社会各界的高度关注。如何处理电子垃圾带来的污染?请看下文
    发表于 01-22 14:18 7128次阅读

    处理DS2155性能报告消息

    本应用笔记详细介绍了如何处理DS2155性能报告消息(PRM)以及如何处理 通过 T1 设施数据链路 (FDL) 以 HDLC 消息的形式发送或接收 PRM。
    的头像 发表于 02-22 09:41 786次阅读
    <b class='flag-5'>处理</b>DS2155<b class='flag-5'>中</b>的<b class='flag-5'>性能</b>报告消息

    何处理HTTP 503故障问题?

    HTTP 503故障问题在业务管理上很常见, 以问题的可能性也相当多, 故障时除了503提示, 好像什么也没有, 发生故障时应如何处理? 文章内会为大家详细说明
    的头像 发表于 04-12 10:05 1067次阅读
    如<b class='flag-5'>何处理</b>HTTP 503故障问题?

    ttl与非门不用的输入端如何处理

    。但是有时候,输入端的某些端口不需要使用,那么应该如何处理? 首先,我们需要了解 TTL 芯片和非门芯片的内部结构和工作原理。TTL 芯片是由一些晶体管和电阻器组成的。它的输入端接收高电平(1)或低电平(0)的电信号,而输出
    的头像 发表于 09-17 15:42 6216次阅读

    调试TrustZone时,如何处理HardFault?

    调试TrustZone时,如何处理HardFault?
    的头像 发表于 09-27 16:33 659次阅读
    调试TrustZone时,如<b class='flag-5'>何处理</b>HardFault?

    广播系统出现噪音、啸叫如何处理

    公共广播系统目前是一个各行各业都会有需求的系统,酒店、商场、公园、景点等场所都会用到。现实使用,我们会发现有的广播系统是电声悦耳、自然流畅,但是有一些则带有些噪音、啸叫。面对这种情况,我们该如何处理
    发表于 11-08 09:41 1539次阅读
    广播系统出现噪音、啸叫如<b class='flag-5'>何处理</b>?

    何处理同轴阻抗失配?如何避免阻抗失配这种风险

    何处理同轴阻抗失配?如何避免阻抗失配这种风险? 同轴阻抗失配是电子通信领域中一种常见的问题,当同轴电缆的输出端口的阻抗与接收端口不匹配时,就会发生阻抗失配。这种失配会导致信号反射、传输效率降低
    的头像 发表于 11-28 14:18 1066次阅读