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

大家好,我是飞哥!

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

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

一、制程工艺的变化

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

00eaa7c513c4ca38436cf0efeea41c22.png

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

bd64d49227e2f79d444873b5d83fca5a.png

99cce5d765787e5aafac65947d90fdb9.png

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

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

b94e38538c95942c4b204bdd9b8d42b8.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设备通信,并且与北桥通信。

6863aedd8b1a5f86c379af213cbc5d28.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,具体的改进有如下。

adcd23c89bf23d8716d6296a390a1c29.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 语言运行时、性能观测和性能优化共计九大部分。详情参见开发内功修炼视频课程上线

c52508a8b0b008f6600c52c06864b2e4.png

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

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

相关文章

中移链共识机制介绍

01 为什么需要共识 共识是对某事达成的共同看法,它是区块链的灵魂,对确保区块链的完整性和安全性起着至关重要的作用。在传统的集中式系统中,单个实体或一组实体有权验证和记录交易。然而,区块链中的一个核心概念是去中心化&…

4、FFmpeg命令行操作8

生成测试文件 找三个不同的视频每个视频截取10秒内容 ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4 ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4 ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4 如果音视…

整理低秩的理解

秩的定义是矩阵中非零特征值的个数。比如一个NxN的矩阵,它的秩为r,r远小于N,我们可以说它是低秩的。 但还有另一种情况:这个矩阵的的秩接近N,但它的特征值大多数接近于0,只有少数几个特征值特别大&#xf…

【DevOps】Git 图文详解(四):Git 使用入门

Git 图文详解(四):Git 使用入门 1.创建仓库2.暂存区 add3.提交 commit 记录4.Git 的 “指针” 引用5.提交的唯一标识 id,HEAD~n 是什么意思?6.比较 diff 1.创建仓库 创建本地仓库的方法有两种: 一种是创建…

LoRA低秩微调技术详解

在当今快节奏的技术环境中,大型AI模型正在推动不同领域的突破。 然而,根据特定任务或数据集定制这些模型可能是一项计算和资源密集型工作。 LoRA是一种突破性且高效的微调技术,它利用这些高级模型的强大功能来执行自定义任务和数据集&#xf…

ForkLift:macOS文件管理器/FTP客户端

ForkLift 是一款macOS下双窗口的文件管理器,可以代替本地的访达。ForkLift同时具备连接Ftp、SFtp、WebDav以及云服务器。 ForkLift还具备访达不具备的小功能,比如从文件夹位置打开终端,显示隐藏文件,制作替换等功能。ForkLift 是一…

Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】

文章目录 初识 elasticsearch了解 ES倒排索引ES 的一些概念安装es、kibana安装elasticsearch部署kibana 分词器安装IK分词器ik分词器-拓展词库 索引库操作mapping 映射属性索引库的 CRUD 文档操作添加文档查看、删除文档修改文档Dynamic Mapping RestClient 操作索引库什么是Re…

代码随想录二刷 | 数组 | 移除元素

代码随想录二刷 | 数组 | 移除元素 题目描述解题思路 & 代码实现暴力解法双指针法 题目描述 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用…

手搓哈希表、列表、队列,只为了用C语言快速求解华容道游戏,我不是大佬,只是一个游戏算法爱好者

背景 多年前曾经写过C语言求解华容道,当时没有用到哈希表,导致整个查重搜索数组过大,每次求解都得花上数分钟的时间,如今时过境迁,对数据结构和算法有了更深的理解,所以得把这一块补上了。(其实就是最近想…

Redis面经

Redis使用场景 1、缓存: 缓存三兄弟(穿透、击穿、雪崩) 、双写一致、持久化、数据过期策略,数据淘汰策略 2、分布式锁 setnx、redisson 3、消息队列 4、延迟队列 何种数据类型(list、zset) 缓存三兄弟 缓存穿透 缓存穿透…

Python 如何实现职责链设计模式?什么是职责链设计模式?Python 职责链设计模式示例代码

什么是职责链(Chain of Responsibility)设计模式? 职责链(Chain of Responsibility)设计模式是一种行为型设计模式,旨在构建一个对象链,每个对象都有机会处理请求,并且可以将请求传…

动手学深度学习——循环神经网络的从零开始实现(原理解释+代码详解)

文章目录 循环神经网络的从零开始实现1. 独热编码2. 初始化模型参数3. 循环神经网络模型4. 预测5. 梯度裁剪6. 训练 循环神经网络的从零开始实现 从头开始基于循环神经网络实现字符级语言模型。 # 读取数据集 %matplotlib inline import math import torchfrom torch import …

五、hdfs常见权限问题

1、常见问题 2、案例 (1)问题 (2)hdfs的超级管理员 (3)原因 没有使用Hadoop用户对hdfs文件系统进行操作。 在Hadoop文件系统中,Hadoop用户相当于Linux系统中的root用户,是最高级别用…

react实现步进器

创建一个步进器组件,包含当前步骤(currentStep)的状态以及前进和后退的操作: import React, { useState } from react;function Stepper() {const [currentStep, setCurrentStep] useState(1);const handleNext () > {setCu…

⑩② 【MySQL索引】详解MySQL`索引`:结构、分类、性能分析、设计及使用规则。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL索引 ⑩② 【MySQL索引】1. 索引2. 索引的…

搞科研、写论文,如何正确使用GPT?AIGC技术解析、提示词工程高级技巧、AI绘图、ChatGPT/GPT4应用

目录 专题一 OpenAI开发者大会最新技术发展及最新功能应用 专题二 AIGC技术解析 专题三 提示词工程高级技巧 专题四 ChatGPT/GPT4的实用案例 专题五 让ChatGPT/GPT4成为你的论文助手 专题六 让ChatGPT/GPT4成为你的编程助手 专题七 让ChatGPT/GPT4进行数据处理 专题八 …

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…

使用VC++实现分段线性变换,直方图均衡化、锐化处理(使用拉普拉斯算子)

图像锐化1 获取源工程可访问huiningLi的gitee可在此工程的基础上进行学习。 实验要求 5.1实验目的、要求 实验目的: (1)掌握图像增强的原理与相关方法。 (2)能使用VC实现图像增强的一些相关功能。 实验要求&#xf…

【python】均值、中值和高斯滤波详解和示例

本文对均值、中值和高斯滤波进行详解,以帮助大家理解和使用。 这里写目录标题 均值滤波中值滤波高斯滤波核大小为(9,9)核大小为(51,51) 小结 下面是示例中使用的原图。 均值滤波 均值滤波是一种简单的平滑滤波器&…

PyTorch微调权威指南3:使用数据增强

如果你曾经参与过 PyTorch 模型的微调,可能会遇到 PyTorch 的内置变换函数,这使得数据增强变得轻而易举。 即使你之前没有使用过这些功能,也不必担心。 在本文中,我们将深入研究 PyTorch 变换换函数的世界。 我们将探索你可以使用…