聊聊近些年 CPU 在微架构、IO 速率上的演进过程

大家好,我是飞哥!

在上一篇《深入了解 CPU 的型号、代际架构与微架构》 中我们介绍了我手头的一颗 Intel(R) Core(TM) i5 的型号规则,以及它的物理硬件的 Die 图结构。以及它对应的 Skylake 核的微架构实现。

不少同学开始问我其它型号的 CPU 和它比有什么区别呢。考虑到了市场上各种新老 CPU 型号太多了,咱们没办法一一介绍。所以我想了一个办法,咱们把这些年 CPU 进化的几个关键点讲一讲。这样将来大家再看其它的 CPU 的时候,也能做到懂得历史,也能展望未来了。最重要的微内核 sunny cove的 介绍在文章的最后。

一、制程工艺的变化

CPU 的生产过程大概是需要经过如下几步:第一步是晶圆的生产。具体过程是将包含有大量硅的石英沙放到一个巨大的石英熔炉中加热融化,然后向熔炉中加入一个小的晶种以便于硅晶体围着这颗晶种生长。直到生成一个单晶硅硅锭。这个硅锭是一个圆柱体,直径大概在 200 mm 或 300 mm。然后对硅锭进行切割,将圆柱体的硅锭切割成圆形的晶圆。

55eb4ebec434f3bea9189a6b93e6dfeb.png

第二步是 CPU 硬件电路的制作。晶圆表面会被涂上一层光阻物质,这种光阻物质后面被紫外线照到的地方会融化。接着使用固定波长的紫外线通过印着 CPU 复杂电路结构图样的模版照射晶圆。用光来对晶圆进行蚀刻。然后再通过沉积的方式加一层硅,涂光阻物质,再次影印,蚀刻重复多遍形成一个多层结构。而且每层中间都要填充金属导体。最终在一个非常小的面积上形成一个比一座城市还要复杂的 3D 结构。

b47e0bf486aefc91262a7df36ee42a71.png

a1e90feac0e45e210a71668b5126d744.png

第三步是进行封装和测试。晶圆上的电路被封装起来,然后进行测试合格后就会推向市场销售。

在上面的制作步骤中,最重要的是第二步。在这个过程中追求的是不断底在单位面积的芯片上布局更多的晶体管。每个晶体管的结构大概如下。

a82a3c295f21119a6ee54b71e9860f89.png

晶体管的尺寸越小,单位面积上的电路就越丰富,生产出来的 CPU 的性能就越好。另外还有就是晶体管越小的话,单个晶体管的能耗也会越低,整颗 CPU 也会越省电。

衡量晶体管尺寸大小的标准是晶体管中源极和栅极之间(沟道长度)的距离。在 Intel 历年的 CPU 中,在 2013 年的 Haswell 采用的是 22 nm 的工艺。到了 2014 年的 Broadwell 开始采用 14 nm 工艺。到了 2019 年的 Ice Lake 开始引入 10 nm 工艺。到了 2022 年的 Raptor Lake,已经开始采用 7 nm 工艺了。

一般来说,制程工艺越短,生产出来的 CPU 也就越先进。

二、集成度的变化

CPU 虽然是最精密的设备,但是它也是无法自己完成工作的。需要和计算机中的内存、显卡、硬盘、网卡、USB设备、鼠标键盘等组件配合才行。所以,CPU 需要通过硬件线路来和这些设备相连。

在这些设备中,所有硬件的工作频率都比 CPU 要慢。只不过有的设备虽然速度比不上 CPU,但是还是比较快的。另外一些设备比如硬盘、键盘鼠标相比更慢一些。在老式 Intel CPU 中。

在大约 2000 年前后的老式电脑体系结构中,CPU 在主板上设计了南桥和北桥两个硬件。北桥负责与CPU通信,并且连接高速设备内存和显卡,并且与南桥通信;南桥负责与低速设备硬盘、网卡、键盘鼠标、USB设备通信,并且与北桥通信。

a063fc8687f63b388063df39eaaa792c.png

其中北桥芯片是存储控制器(Memory Controller Hub, MCH)。功能包括了 PCIe(Peripheral Component Interconnect Express,是一种高速串行计算机扩展总线标准)总线功能用来连接显卡。也包括了内存控制器,用来连接内存。

后来由于 CPU 对内存和显卡的数据带宽需求越来越大。Intel 从 2011 年正式发布的 SandyBridge 开始,CPU 整合内存控制器和 PCIe 控制器,相当于是把原来北桥的功能集成在 CPU 内部了,北桥从那时开始就消失了(参考https://en.wikichip.org/wiki/intel/microarchitectures/sandy_bridge_(client))。

随着时间的推移,CPU 硬件整合度越来越高。在手机芯片中,已经由于只剩下一个芯片了,也没有“芯片组”的说法了,只剩下孤零零的PCH (Platform Controller Hub)。

未来随着集成度的进一步提高,未来在台式机中南桥也可能会消失。在手机中由于体积的特殊性,已经实现了最高的集成度。通过系统级芯片(System on Chip,SOC)已经把 CPU、GPU、内存、导航定位模块、多媒体模块等全部集成到了一起。

三、内存控制器的变化

每代 CPU 的一大变化就是内存控制器的提升,一般来说,越新的 CPU 所支持的内存代际越来越新、支持的内存频率越来越高。

先看 2011 年第 3 代的 Ivy Bridge。该代际下的的 CPU 支持的还是 DDR3 代的内存。Celeron、Pentium 等系列的 CPU 支持的内存频率大部分都是 DDR3-1333。只有 Core i3 和 Core i5 系列的内存频率支持到了 DDR3-1600。

到了 2014 年第 5 代 Broadwell 开始,Intel 开始在多数的 Core 系列开始大规模地支持 DDR4-2400 内存。2015 年的第 6 代 Skylake,其代际下高端的 Core i9 支持到了 DDR4-2666。到了 2016 年的 Kaby Lake,普通的 Core i5 和 Core i7 也都支持了 DDR4-2666。2019 年的 Ice Lake 的 Core 系列支持了 DDR4 3200。

到了 2021 年的 Alder Lake S 开始,开始支持 DDR5 的新内存。而且还是同时支持 DDR4-3200 和 DDR5-4800。

上面说的是台式机的内存规格。对于笔记本电脑来说,还有对应的低电压规格的内存条代际。低电压标准的内存相对比较省电,但性能会差10%左右。在具体的内存标准上,包括 DDRxL 和 LPDDRx 两个系列标准。其中其中 L 是低电压 Low Voltage 的简写,LP 是 Low Power 的简写。

拿第 4 代内存来举例, DDR4 的工作电压虽然相比 DDR3 的 1.5 v 下降到了 1.2 v,更加省电。但是相比用在笔记本中的话,功耗仍然是比较高的。而 DDR4L 可以同时除了兼容 DDR4 的 1.2 v 电压模式外,还支持 1.05 v 的低电压模式。LPDDR4 的工作电压是 1.1 v,DDR4L 和 LPDDR4 所以更适用于用在笔记本电脑等移动设备上。

CPU支持的内存除了以上指标外,还有另外一个就是通道数。直观理解,就是 CPU 上可以支持几条内存插槽。家用 PC 电脑一般都 2 个或 4 个内存插槽。在英文中对应的叫 channel 数。越多内存插槽的电脑支持的最大内存数量也就越大,整体带宽也就更高。

四、PCIe 插槽变化

前面我们提到 PCIe 总线。它是一种用于连接高速组件的高速串行计算机扩展总线标准,它取代了历史上出现的 AGP、PCI 和 PCI- X 总线标准,并经过了多次调整改进。

最早在 2003 年的时候,PCIe 1.0标准首次发布。后来因为带宽需求增长越来越快,已经陆续出现了 PCIe 1.0、PCIe 2.0、PCIe 3.0、PCIe 4.0 和 PCIe 5.0 等 5 代标准,PCIe 6.0也将在不久后发布。传输速率每过一代就会增加很多。

版本发布时间单通道传输速率16通道传输速率
PCIe 1.020032.5 GT/s (250 MB/s)40 GT/s (4 GB/s)
PCIe 2.020075 GT/s (500 MB/s)80 GT/s (8 GB/s)
PCIe 3.020108 GT/s (984.6 MB/s)128 GT/s (15.75 GB/s)
PCIe 4.0201716 GT/s (1968 MB/s)256 GT/s (31.51 GB/s)
PCIe 5.0201932 GT/s (3938 MB/s)512 GT/s (63.02 GB/s)

Intel 的 CPU 发展过程中,在 2015 年的 Skylake 中支持了 PCIe 3.0 标准。在 2020 年的 Tiger Lake 的 CPU 中,开始支持了 PCIe 4.0 标准。在 2021 年的 Alder Lake S 中,提供了 16 通道的 PCIe 5.0 用于连接显卡,同时还支持 4 通道的 PCIe 4.0 通道用于连接固态硬盘。

五、微架构(核)的变化

在每代的 CPU 中,单个物理核的设计结构也是非常不同的。所以隔代的 CPU 性能差异也不尽相同。

在 2013 年和 2014 年,Haswell、Haswell Refresh、Broadwell 等代际采用的核的微架构设计都是一样的,都采用的是 Haswell 微架构。

在 2015 年的 SkyLake、KabyLake、Coffee Lake 等代际中,采用的都是 Skylake 微架构。

到了 2019 年发布的 Ice Lake 代际中,开始引入了 Sunny Cove 微架构。该架构下的单核性能大约比上一代提升了有 18% - 20%(参考 https://en.wikichip.org/wiki/intel/microarchitectures/sunny_cove)

每一种不同的 CPU 微架构,在核的内部实现细节上都会有一些不同。就拿 Ice Lake 中使用的 Sunny Cove 微架构来举例,它相比上一代的 Skylake,具体的改进有如下。

336ca0e82b8fd12852a159e5852da98e.png

对于负责指令解析的前端部分

  • µOP cache提升到了 2.3 k(上一代是 1536)

  • 改进的分支预测

  • iTLB 缓存翻倍

对于负责指令执行的后端部分

  • 顺序重排缓存器(ReOrder Buffer,ROB)提升到了 352 条目(上一代是224条目)

  • 调度器(Scheduler)提升到支持 10 路超标量(上一代是 8 路超标量),每个时钟周期最多可以支持 10 个微操作

对于执行引擎部分

  • 存储操作端口提升到了 2 个(上一代是 1 个)

  • 地址生成端口提升到了 2 个(上一代是 1 个)

对于缓存子系统

  • L1 缓存提升到了 48 KiB(上一代是 32 KiB)

  • L2 缓存提升到了 512 Kib(上一代是 256 KiB)

  • STLB(Shared TLB)缓存提升了到了 2048 条目(上一代是 1536 条目),DTLB也有较大改进

另外 Sunny Cove 还引入了一些新的指令,比如 AVX-512 向量指令。所有这些核设计细节中的提升,铸就了 Sunny Cove 比上一代更强的单核性能。

到了 2020 年之后的 Tiger Lake 中,开始采用 Willow Cove 新微架构中 L2 又进一步提升到了 1.25 MB,L3 提升到了 12 MB。(参考https://en.wikichip.org/wiki/intel/microarchitectures/willow_cove)

后面到了 2021 年的 Alder Lake S 时为了平衡性能和功耗, 又开启了一个新的 CPU 设计趋势。就是借鉴手机 CPU 设计,引入了大核小核的设计区分。

在 CPU 的设计中,在性能核功耗上一直无法兼顾。内置更多的晶体管虽然可以提升性能,但会让发热功耗问题更严重。虽然制程不断提升到了 22nm、14nm、10nm、7nm、...,但是由于芯片功能的增加和性能的提升,功耗上取得的效果一直不能令人满意。

在传统的 CPU 中,不管是什么样的任务,都采用一样的核来调度和使用。但其实很多场景中,并不需要这些性能和能耗都较高的核。在新的设计趋势中,“大核”叫做“Performance Cores”,小核”叫“Efficiency cores”。

当运行各种低负载应用时,可以使用“Efficiency cores”来满足用户需求的同时来节约电量,这种核的性能一般,但优势在于省电。当真正需要有更多性能的时候,才会启动更高性能的“Performance Cores”。

总结

由于市场上各种新老 CPU 型号太多了,咱们没办法一一去了解。我们只要掌握 CPU 发展中的几个关键点的进步,就能够做到对所有 CPU 有个基本的了解了。

其中最重要的进步点是 CPU 制程工艺的变化。衡量 CPU 制程工艺的尺寸的标准是晶体管中源极和栅极之间(沟道长度)的距离。在这些年中,制程一直在进步。从 65 nm、45nm、22nm、...、10nm、7nm一直在进步。但总体上来说,已经快到物理的极限,制程的进步速度在变缓。

另外一个就是集成度的变化。早年的 CPU 中,硬件架构上设计的比较细。在新的 CPU 中,由于对带宽的要求变得越来越高。所以 CPU 硬件开发者们倾向于把更多的模块都集成到 CPU 硬件中。比如历史上的北桥,绝大部分功能都被 CPU 硬件实现了。在手机芯片中,一个 SoC 更是集成了 CPU、RAM、导航定位模块、多媒体模块等众多功能模块。

还有就是 IO 支持上的提升。对于内存控制器部分来说,支持的内存代际越来越高,从 DDR3、DDR4,一直到了今天的 DDR5。另外就是内存的频率,即使是同一代际的内存,频率支持的也是越来越高。还有就是连接显卡和固态硬盘的 PCIe 总线,也是从 1.0 逐步支持到了 5.0。

还有更重要的变化是单核微架构的设计。在新的单核架构中,CPU 中的各种缓存如 TLB、L1、L2变的越来越大,支持的超变量路数也再变多。还有就是一个新的发展趋势,CPU 厂商们引入了一些更省电的“Efficiency cores”,俗称小核。用来在系统计算任务不重的时候,使用小核来调度,节约更多的能耗。

CPU硬件一直在进步,在过去的很多年中,服务器端计算性能的提升都是靠硬件来提升的。但我觉得近些年来,这个提升趋势有变缓的迹象。因此未来更好地理解硬件内部原理,好好设计和调优服务的软件部分,让硬件性能最大程度地发挥,这件事情会变得越来越重要。


PS:应部分读者需要我规划了视频体系。具体内容包括硬件原理、内存管理、进程管理、文件系统、网络管理、容器底层原理、Golang 语言运行时、性能观测和性能优化共计九大部分。详情参见开发内功修炼视频课程上线

d0c8822f78b38e53c50d9d266b8e893d.png

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring Boot与Vue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性与扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理与数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试与优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性与可维护性,遵循企业级开发标准,确保了系统的长期稳定运行与后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值