一文读懂:到底什么是Chiplets?

50多年来,Intel和AMD一直是两家主流的处理器公司。

虽然两者都使用x86 ISA来设计新品,但是在过去十多年左右的时间里,两家cpu公司却走上了完全不同的道路。

大约在2000年代中期,随着推土机(Bulldozer)芯片推出,AMD在与Intel的竞争中节节败退。低IPC和低效的设计组合几乎让AMD公司进入绝境。

Image

这种槽糕的表现持续了近十年,直到2017年,随着AMD Zen微架构的到来,情况开始发生变化。

新的Ryzen处理器标志着AMD对cpu设计方法的彻底的重构,将重点放在了IPC、单线程性能上面。最值得注意的是,AMD转向MCM或Chiplets设计。而在那时候,Intel仍在做着与2011年Sandy Bridge问世以来几乎一模一样的事情。

Image

▉ 一切都始于Zen

在发布Zen架构的时候,AMD通过提供比酷睿i5-7600K等部件更多的内核和线程来搅局Intel中端产品。

但是由于在延迟等方面的问题,以及Ryzen缺乏针对游戏的优化, Intel在游戏等方面依然占据着显著的性能领先地位。但Zen架构的成功推出,还是给AMD打了一针强心剂,在性能、功耗及规格方面终于有了与英特尔同一水平的产品,终于可以让AMD稍微喘口气了。

Image

随着基于Zen 2的Ryzen 3000 cpu的推出,AMD的游戏部分开始有所改善,而英特尔的游戏王冠最终被随着基于Zen 3的Ryzen 5000 cpu的发布被抢走。对IPC的巨大改进意味着AMD能够提供更多的内核,而且在单线程工作负载上也能与Intel匹敌。

Image

AMD能够在Zen 2的时候大获成功,与其大胆的尝试有很大关系。

AMD放弃了过去CPU里尽可能集成多功能的做法,将计算核心和I/O接口部分分离,进行了更灵活的调配,也就是我们所说的Chiplets小芯片技术。

Chiplets设计不同于以往的胶水封装,本质上是把不同工艺、不同架构的芯片电路按需搭配,比单纯的胶水封装要高明,也要复杂。

为了方便更好的理解Chiplets,我们将CPU比喻成一个西瓜。为了满足用户越来越高的需求,传统的方式是通过方法让西瓜长的越来越大。但当西瓜足够大的时候,你很难再让西瓜继续长大,同时还增加了西瓜可能坏掉的风险。Chiplets的方式则是提供两个、四个小西瓜来满足用户的对越来越大的需求。

Image

一个不够,多个来凑的做法虽然看起来很简单,但是在处理架构设计上却是一个非常难得的创新。

AMD在Zen2上采用这样的设计无疑是很聪明的做法,配置也非常灵活,提升CPU核心数量就堆CPU模块即可,所以锐龙处理器可以从之前的8核16线程轻松变成16核32线程。

此外,AMD这样做也需要生产小核心,提高了良率,降低了成本,而且IO核心使用的还是更成熟的14nm工艺,进一步削减了成本。

▉ 单片设计vs Chiplets设计

在当时,Intel采用的单片处理器设计方法。从本质上讲,这意味着需要将内核、缓存和I/O资源等都要放在同一个单片芯片上。

Image

这种方法有一些明显的优点就是降低了延迟。由于所有的模块都在同一个基板上,所以不同的内核通信、访问缓存和访问系统内存所需的时间要少得多。延迟减少,这将带来最佳性能。

Image

如果其他条件都相同,那么单片方法将始终为您带来最佳性能。不过,这有一个很大的缺点。这是在成本和扩展方面。

当代工厂生产cpu(或任何硅片)时,他们几乎无法实现100%的良品率的产量。

如果你采用成熟的工艺节点,比如英特尔的14nm+++,你的良品率将超过70%。这意味着您将获得大量可用的cpu。然而,反过来说,每生产10个cpu,就必须丢弃至少2-3个有缺陷的单元。被丢弃的单位显然是要花钱制造的,所以成本必须考虑到最终的销售价格。

Image

在低核数的情况下,单一的方法可以很好地工作。这在很大程度上解释了为什么英特尔的主流消费级CPU产品线之前一直都只有4核。但是,当您增加核心数量时,单一方法会导致指数级的成本增加。

为什么会这样呢?

在整体式芯片上,每个内核都必须具有功能。如果您要制造八核芯片,而八核中的七核可以工作,那么您仍然不能使用它。还记得我们所说的超过90%的收益率吗?从数学上讲,单片芯片上每增加一个内核就有10%的缺陷率叠加,以至于使用20核Xeon,英特尔实际上必须为每一个可用芯片丢掉一两个缺陷芯片,因为所有20个内核必须起作用。成本不仅随核心数量线性增长,而且由于浪费而成倍增长。

Image

此外,当扩大14nm产能时,新工厂的处理器产量将无法达到现有工厂的水平。这已经导致Intel的处理器短缺。

所有这一切的结果是,Intel的工艺在低核数下具有价格和性能竞争力,但在高核数下就站不住脚了,除非他们降低销售利润或者亏损。对于Intel来说,制造双核和四核处理器比AMD交付Ryzen 3 sku要便宜得多。

接下来我们要讲下为什么会这样。

▉ Chiplets有何优势?

AMD采用基于芯片或MCM(多芯片模块)的方法来设计处理器。把每个Ryzen CPU看作是多个独立的处理器,用AMD的话说就是用超级胶水粘在一起。

Image

一个Ryzen CCX具有4核/8核处理器,以及L3缓存。两个CCX(带有Zen 3的单个8核CCX)被粘在CCD上以创建一个芯片,这是基于Zen的Ryzen和Epyc cpu的基本构建块。多达8个ccd可以堆叠在单个MCM(多芯片模块)上,允许消费级Ryzen处理器(如Threadripper 3990X)最多64核。

这种方法有两大优势。第一个优势是,成本或多或少与核心数量呈线性关系。由于AMD的浪费率与其相对于最多能够创建功能性4核模块(单个CCX)有关,因此他们不必丢弃大量有缺陷的CPU。第二个优势来自于它们能够利用那些有缺陷的CPU本身的能力。英特尔只是将它们淘汰了,而AMD则逐个CCX禁用了功能内核,以实现不同的内核数量。

Image

例如,Ryzen 7 5800X和5600X都有一个8核的CCD。后者禁用了两个核心,使其具有6个功能核心,而不是8个。当然,这使得它能够以比英特尔更有竞争力的价格销售六核部件。

Image

但是,什么事情都有两面性,Chiplets方法有一个很大的缺点:延迟。每个晶片都在单独的物理基板上。由于物理定律,这意味着Ryzen cpu在Infinity Fabric上的通信会产生延迟惩罚。这在第一代Ryzen上最为明显。因此,Infinity Fabric速度与内存时钟和内存超频相关,因此可以显著提高CPU性能。

AMD设法通过Ryzen 3000 cpu纠正了这一点,然后通过新推出的Ryzen 5000系列进一步改进了这一点。前者引入了一个大型L3缓存缓冲区,称为"游戏缓存"。L3缓存是系统内存和低级CPU核心缓存(L1和L2)之间的中介。通常情况下,消费级处理器的L3空间很小,例如英特尔的i7 9700K就只有12 MB的L3空间。然而,AMD为3700X配备了32mb的L3内存,而3900X配备了64mb的L3内存。

L3缓存均匀分布在不同的核之间。增加的缓存量意味着,通过一些智能调度,内核可以缓存更多它们需要的东西。缓冲区消除了Infinity Fabric带来的大部分延迟损失。

Image

Ryzen 5000 cpu更进一步,取消了四个核心CCX,取而代之的是八个核心综合体,每个核心直接连接到CCX/CCD上的其他核心。这改善了核间延迟、缓存延迟和带宽,并为每个核提供了两倍的L3缓存,显著提高了游戏性能。

Image

▉ Chiplets,未来潮流?

作为后摩尔时代最关键的技术之一,Chiplets将满足特定功能的裸片通过die-to-die内部互联技术,多个模块芯片与底层基础芯片的系统封装,实现新形式IP复用。在当前技术进展下,Chiplets方案可实现芯片设计复杂度及设计成本降低,且有利于后续产品迭代,加速产品上市周期。

在如此明显的优势之下,Chiplets自然得到了众多国际巨头的青睐。作为AMD的老对手,Intel也在2023年发布了基于Chiplets技术的第四代至强可扩展处理器和至强CPU Max,以及数据中心GPU Max。

据了解,至强CPU Max拥有56个性能核,内核的4个小芯片使用EMIB连接,进行自然语言处理时高带宽内存优势可提升20倍性能。而数据中心GPU Max是英特尔针对高性能计算加速设计的第一款GPU产品,一个封装中有超过1000亿个晶体管,拥有47个不同的块和高达128GB的内存。

在未来的几年中,我们更可能会看到更多Chiplets方法的使用。这是因为摩尔定律(要求每两年将处理能力提高一倍)已经全面放慢了,单个处理器内核的速度不会每两年提高一倍。

因此,提高性能的唯一方法就是扩展内核和堆叠内核,才让近年来硬件圈仍能保持较快的发展速度。未来对Chiplets的研究,也将继续推进下去。

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask基本教程以及Jinjia2模板引擎简介

flask基本使用 直接看代码吧,非常容易上手: # 创建flask应用 app Flask(__name__)# 路由 app.route("/index", methods[GET]) def index():return "FLASK:欢迎访问主页!"if __name__ "__main__"…

OpenCV学习笔记

OpenCV基础 threshold函数的使用 https://blog.csdn.net/u012566751/article/details/77046445 图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位&#xff0…

线扫相机DALSA--常见问题一:软件安装顺序

1.软件安装顺序 先安装:Sapera_LT_SDK,后安装Xtium-CL MX4驱动。 2.初次安装CamExpert,重启电脑后未找到相机 Settings(搜索协议)配置完毕后,需点击Detect Camera(一键查找相机)按钮,搜索相机。第一次查找相机耗时会略…

聚观早报 |蔚来推出婚车服务;长城汽车第三季度财报

【聚观365】10月30日消息 蔚来推出婚车服务 长城汽车第三季度财报 AI汽车机器人极越01上市 谷歌投资初创公司Anthropic 东方财富第三季度营收 蔚来推出婚车服务 据蔚来汽车官方消息,蔚来宣布推出“蔚来用户专享”的婚庆用车定制服务。 据悉,该服务…

Mac删除照片快捷键ctrl加什么 Mac电脑如何批量删除照片

Mac电脑是很多人喜欢使用的电脑,它有着优美的设计、高效的性能和丰富的功能。如果你的Mac电脑上存储了很多不需要的照片,那么你可能会想要删除它们,以节省空间和提高速度。那么,Mac删除照片快捷键ctrl加什么呢?Mac电脑…

微信小程序实现微信登录(Java后台)

这两天在自己的小项目中加入了微信小程序的很多功能,今天来说一下关于微信授权登录的部分。 需要的材料 1:一个可以测试的微信小程序 2:此微信小程序的APPID和APPscret 流程 微信用户对应一个小程序都有一个唯一的openid,微信…

【文末送书】AI时代数据的重要性

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

分享个自己写的小程序解包工具

闲聊 前几天在吾爱破解上看到一个小程序逆向的帖子:windows下通杀wx小程序云函数实战 ,想着自己也学习一下怎么逆向小程序,一搜 unveilr 仓库没了,看评论好像开始收费了。 我就用aardio写了一个解密和解包工具,这里免…

Kotlin协程核心理解

一、协程是什么? 1.1 基本概念的理解 我们知道JVM中的线程的实现是依赖其运行的操作系统决定的,JVM只是在上层进行了API的封装,包含常见的有线程的启动方法,状态的管理,比如:Java中抽象出了6种状态&#x…

深入理解指针3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 字符指针变量 2. 数组指针变量 2.1 数组指针变量是什么? 2.2 数组指针变量怎么初始化 3. 二维数组传参的本质 4. 函数指针变量 4.1 函数指针变量的创…

并发安全问题之超卖问题

并发安全问题之超卖问题 乐观锁总结: 优点:不加锁性能好。 缺点:同时请求成功率低(即只要发现数据变了就放弃了)。 乐观锁思想的具体体现:一共两步,第一步,先查询状态。第二步&…

【数据库】

文章目录 1. 聚合函数练习: 2. 子查询 1. 聚合函数 where中过滤条件中不能写聚合函数,有聚合函数需要写到Having中 方式一效率高: Select执行流程 练习: 2. 第七题:count(*)有问题,原因是左外连接后…

Apache Doris (四十八): Doris表结构变更-替换表

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

Leetcode—275.H指数II【中等】

2023每日刷题&#xff08;十三&#xff09; Leetcode—275.H指数II 算法思想 实现代码 int minValue(int a, int b) {return a < b ? a : b; }int hIndex(int* citations, int citationsSize){int left, right;left 0;right citationsSize - 1;while(left < right) …

Openssl数据安全传输平台017:Linux客户端代码的编译与调试-Bug记录

文章目录 1 在windows上先预编译2 Centos上进入项目文件夹进行编译2.0 最终的编译指令2.1 找不到lprotobuf&#xff0c;找不到protobuf的google文件夹2.1.1 编译指令及提示2.1.2 问题分析2.1.3 解决办法 2.2 json类中方法unreference2.2.1 编译指令及提示2.2.2 问题分析 *** 最…

【工具使用】NPS内网穿透工具介绍

文章目录 前言一、内网穿透二、NPS概述三、NPS原理四、NPS服务器搭建(一)云服务器配置 五、NPS内网穿透演示(一)演示案例一(二)演示案例二 六、NPS内网穿透检测建议(一)流量监控(二)流量协议分析(三)网络行为异常检测 七、NPS内网穿透防范建议(一)阻止或隔离流量(二)更新和强化…

[架构之路-245/创业之路-76]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业资源管理计划ERP

目录 前言&#xff1a; 一、企业信息化的结果&#xff1a;常见企业信息化软件 1.1 企业资源管理计划 1.1.1 什么是ERP&#xff1a;企业最常用的信息管理系统 1.1.2 ERP的演进过程 1.1.3 EPR模块 1.1.4 EPR五个层级 1.1.5 企业EPR业务总体流程图 1.1.6 什么类型的企业需…

常用 sqlite3 命令

本次将向您讲解 SQLite 编程人员所使用的简单却有用的命令。这些命令被称为 SQLite 的点命令&#xff0c;这些命令的不同之处在于它们不以分号 ; 结束。 让我们在命令提示符下键入一个简单的 sqlite3 命令&#xff0c;在 SQLite 命令提示符下&#xff0c;您可以使 用各种 …

【MyBatis Plus】初识 MyBatis Plus,在 Spring Boot 项目中集成 MyBatis Plus,理解常用注解以及常见配置

文章目录 一、初识 MyBatis Plus1.1 MyBatis Plus 是什么1.2 MyBatis Plus 和 MyBatis 的区别 二、在 Spring Boot 项目中集成 MyBatis Plus2.1 环境准备2.2 引入 MyBatis Plus 依赖2.3 定义 Mapper2.4 测试 MyBatis Plus 的使用 三、MyBatis Plus 常用注解3.1 为什么需要注解3…

【C++初探:简单易懂的入门指南】二

【C初探&#xff1a;简单易懂的入门指南】二 1.引用1.1引用做函数的参数1.2 引用做返回值1.2.1 关于引用做返回值的几点补充 1.3 多引用(对一个变量取多个别名)1.4 引用类型一致性原则以及权限的问题阐述1.5引用的效率问题1.6引用和指针的比较 2.auto关键字2.1 auto关键字的使用…