一文读懂:到底什么是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,一经查实,立即删除!

相关文章

centos安装vim编辑器

第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步:一般安装vim编辑器需要一下四个安装包,缺失了之后可对应下载 vim-minimal-7.4.160-2.el7.x86_64vim-common-7.4.160-4.el7.x86_64 v…

京东商品链接获取京东商品评论数据(用 Python实现京东商品评论信息抓取),京东商品评论API接口,京东API接口

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取京东多网站上的商品详情页面评论内容。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#…

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(一键查找相机)按钮,搜索相机。第一次查找相机耗时会略…

25期代码随想录算法训练营第三天 | 链表 part 2

目录 24. 两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 24. 两两交换链表中的节点 链接 双指针 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # …

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

【聚观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,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

transforms.Resize(512, interpolation=Image.BICUBIC)

t [] t.append(transforms.Resize(512, interpolationImage.BICUBIC)) transform transforms.Compose(t)代码没有debug,看见上述代码以为是将整张图片resize成(512,512),实则是固定高度为512, 宽度为保持…

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

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

Kotlin协程核心理解

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

深入理解指针3

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

Pandas数据导入和导出:CSV、Excel、MySQL、JSON

导入MySQL查询结果:read_sql import pandascon "mysqlpymysql://user:pass127.0.0.1/test" sql "SELECT * FROM student WHERE id 2"# sql查询 df1 pandas.read_sql(sqlsql, concon) print(df1)导入MySQL整张表:read_sql_table…

springboot自定义404页面

添加配置类 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.servlet.Servlet; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.valves.ErrorReportValve; import org.apache.coyote.UpgradeProtoc…

并发安全问题之超卖问题

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

【数据库】

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

html转pdf、Img

一.转pdf // 导出页面为PDF格式 /* eslint-disable */ //不使用JQuery版的 import html2canvas from html2canvas import JsPDF from jspdf/*** param ele 要生成 pdf 的DOM元素(容器)* param padfName PDF文件生成后的文件名字* */funct…

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

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