深入了解 CPU 的型号、代际架构与微架构

news2024/11/26 22:32:31

大家好,我是飞哥!

在 10 月 16 号的时候,Intel 正式发布了第 14 代的酷睿处理器。但还有很多同学看不懂这种发布会上发布的各种 CPU 参数。借着这个时机,我给大家深入地讲讲 CPU 的型号规则、代际架构与微架构方面的知识。

CPU 在整个计算机硬件中、技术体系中都算是最最重要的东西了。但很遗憾的是,80%以上的开发同学对 CPU 并不是很了解。所以在前面的文章中,我带领大家深入地学习了很多内核中管理和调度 CPU 资源相关的文章。在今天,我从 CPU 硬件相关的技术细节切入,带领大家更好地认识 CPU。

在本文中,我以手头有一台之前用过的 ThinkPad x270 的笔记本电脑举例。在这台电脑中的 CPU 型号是 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz。那么这个型号字符串中都隐含了哪些技术信息呢?今天,就让我们以这个型号为切入点,深入地了解个人 PC 电脑中 CPU 硬件相关的技术点。

一、Intel 的 CPU 型号规则

无论是哪家 CPU 厂商,为了更好地管理自己生产的众多型号的产品,也为了能更好地让消费者对自己家的产品快速地了解。都会定义一套产品规则。对于 Intel 来说,它的命令规则大致如下:

9296e4888b458727632f2b22bee8eeb1.png

Intel 把 CPU 的编号分成了品牌标志、品牌修饰符、代际编号、SKU、产品线后缀五个部分。接下来我们分别展开对这五个部分来了解。

第一部分是品牌标志。最最常见的 x86 CPU 品牌包括 Intel 和 AMD 两家公司。而 Intel 又面向不同的市场需求,包括凌动、赛扬、奔腾、酷睿、至强等多个子品牌。

  • 酷睿(CORE)、赛扬(CELERON)、奔腾(PENTIUM)都是应用在家用 PC 电脑上的品牌。其中奔腾和赛扬这两个品牌已经算作是历史了。奔腾在 1992 年推出,之后在很长一段时间里是 PC 家用电脑的主流。赛扬是 1998 年时为了和 AMD 竞争低价市场推出的产品,可以理解为缩水版的奔腾。酷睿是 2006 年推出,直到现在仍然是 PC 电脑里的主流品牌。

  • 志强(Xeon)是企业级的CPU,多用于服务器和工作站。大家在工作中使用的线上服务器,基本都是这个子品牌旗下的产品。

  • 凌动(Atom)主打省电和低功耗,主要用在手机平板等设备上。是的,Intel 也是做过手机 CPU 的,但因为功耗问题在竞争中被 arm 架构各家处理器厂商打败,在 2016 年后逐渐退出市场。

第二部分是品牌修饰符。这个部分是为了区分处理器的市场定位的,一般来说同一年代生产的 CPU 中, i3 i5 i7 i9 的性能是依次递增的。分别代表着低端、中端和高端的定位。

第三部分是 CPU 的代际编号。这一部分有可能是一位数字,也有可能是两位的数字。在我们举例的这颗 CPU 上,代际编号是“7”。这个代际编号对应的是 Intel 于 2016 年推出的内部代号为“Kaby Lake” 的 CPU架构。一般来说,CPU 代际编号越大,则代表架构推出的时间点越新。单核的性能也会更好。关于“Kaby Lake” 后面我们还会单独介绍。

第四部分是 SKU 编号。这是 CPU 厂商为了方便对所有的产品进行库存管理而制定的编号。这类似于超市里商品的条形码、图书的 ISBN 号,方便查询和管理产品的库存量。一般来说,这个值也是越大性能越好,但不绝对。

第五部分是产品线后缀。在笔记本电脑中,H代表的是高性能、U系列代表的是较低功耗、Y系列代表的是极低的功耗。在台式机中,X代表的是最高性能、K代表的是高性能、T代表的是功耗优化。

关于型号规则大家也可以参考 Intel 的官网介绍(https://www.intel.cn/content/www/cn/zh/processors/processor-numbers.html)。

现在我们再回头来看一下我们开头提到的 CPU,Intel(R) Core(TM) i5-7200U CPU。这里面包含的含义就是,这是一个Intel 的酷睿子品牌的 CPU,i7代表着中高端,代际编号是7,这个代际的处理器架构是 2016 年发布的采用的 Kaby Lake 架构生产的。SKU 编号是 200。产品线后缀的 U 代表的是低功耗,比较省电,同时也就代表着性能并不是最强的。

在看最新的发布的酷睿 CPU 型号有,Intel(R) Core(TM) i9-14900KIntel(R) Core(TM) i7-14700KIntel(R) Core(TM) i5-14600K 等几款 CPU。这里面也表示了还是属于 Intel 酷睿 子品牌下的产品。i9、i7、i5分别代表着每个 CPU 的档次。14 代表的是代际。900、700、600 属于 SKU 编号。

二、CPU 的代际

前面在看到 Kaby Lake 的时候,肯定很多小伙伴都会表示看不懂这是什么意思。所以这里专门准备一个小节来解释下。前面我们提到每个 CPU 型号中都包含了一个代际编号。比如第 7 代、第 8 代,就在刚刚 2023 的 10 月 16 日,已经更新到了第 14 代。

这个代际代表的 CPU 的生产年份不同、生产工艺不同、架构设计的不同。各个代际除了这个数字的编号外,还会有一个英文代号。比如第 7 代的代际编号就是 Kaby Lake。最新的第 14 代的代际编号是 Raptor Lake Refresh。下表是我搜集整理到的各个代际的信息(在手机上看需要往右拖动一下表格才能够看全)。

时间代数CPU代际制程工艺微架构
2013第4代Haswell22nmHaswell
2014第5代Broadwell14nmHaswell
2015第6代Skylake(client)14nmSkylake
2016第7代Kaby Lake14nmSkylake
2017第8代Coffee Lake14nmSkylake
2018第9代Coffee Lake Refresh14nmSkylake
2019第10代Ice Lake(client)10nmSunny Cove
2020第11代Tiger Lake10nmWillow Cove
2021第12代Alder Lake S7nm大核Golden Cove 小核Gracemont
2022第13代Raptor Lake7nm大核Raptor Cove 小核Gracemont
2023第14代Raptor Lake Refresh7nm大核Raptor Cove 小核Gracemont

在上面的表中,我列出了每一代 CPU 发行的时间、代数、代际编号、制程工艺,还有最后一列是微架构。因为我的老电脑中的 CPU 是 Kaby Lake,所以我把 Kaby Lake 的详细的资料给大家翻出来。

我们这颗 CPU 是双核四线程的。所以对应的 CPU 的 die 图(CPU芯片的内部物理结构)就是下面这个

f52dd9ea9c060b1b54f3a6ca3588a682.jpeg

在 Die图中,最上方的Memory Controller 是内存控制器。当前 CPU 能支持什么样规格的内存,以及能支持多大的内存,都是由 CPU 中的内存控制器来决定的。其中 Kaby Lake 的内存控制器相比上一代 Skylake 来说,将支持的内存频率从 DDR4-2133 提升到了 DDR4-2400。

下方中间位置是两个物理核,这是 CPU 中最重要的部分。还有两块 L3 Cache,要注意的是虽然在硬件上是有两块 L3,但不管有几块,所有的 L3 缓存都是所有核共享的。

在CPU 的下方最右侧的 Gen9.5 是 CPU 中集成显卡。因为我们不打算深入讲显卡,所以这里大家只要知道 PC 电脑的 CPU 里是包含一块集成显卡的就够了。对这块显卡感兴趣的同学可以移步 https://en.wikichip.org/wiki/intel/microarchitectures/gen9。

在 CPU 的下方最左侧是 System Agent 模块。在该模块中主要包括外围组件快速互联(Peripheral Component Interconnect Express,简称PCIe) 通道、图像处理单元(Image Processing Unit,IPU)等

在 Kaby Lake 中包含 20 个 PCIe 通道。其中有的通道是用于和显卡通信,有的是通过南桥和硬盘、网卡等设备通信。

南桥芯片是用于帮助 CPU 和外围设备交互的。固态硬盘、机械硬盘、网卡等 IO 设备一般来说都是通过南桥来和 CPU 相连的。南桥会收集好了这些设备上的数据再传输给 CPU 处理。另外现在有些高性能的固态硬盘也是直接通过 PCIe 通道和 CPU 通信,这样的硬盘性能更好。

另外 IPU 的功能是支持视频录制成像、人脸检测识别等图像相关处理的硬件支持。

a14f7d5287c245eed9f82268a24f11c9.jpeg

以上就是 Kaby Lake 架构下 CPU 的主要物理结构。

另外从表中还可以看到 Kaby Lake 是2016年发布的,制程工艺是 14 nm。CPU 的制程工艺一直在进步,从 2013 年的 22 nm 逐步发展到了今天的 7 nm。制程工艺的进步带来的好处主要是能效比的提升,单位面积上晶体管的数量增加了,但是需要的能耗却变低了。(本文来自于公众号「开发内功修炼」)

至于说其它的代际的架构中的内存控制器、PCIe 通道的变化情况,我们后面再单独写一篇文章。

三、物理核微架构设计

另外每个代际的 CPU 还有个非常不同的地方在于微架构的不同。微架构指的是每个物理核设计时采用的技术方案。不同的微架构对核的设计是不同的,比如 TLB、L1、L2 等各种缓存,再比如 CPU 核内部的运算单元都会有所不同。

通过上一节中的表格,可以看到我手头的这颗Intel(R) Core(TM) i5-7200U CPU 代际编号为Kaby Lake,微架构的设计仍然沿用的是 Skylake 中的核设计。那么 Skylake 中的物理核是怎么设计的呢?我从官网站到了它的内部物理结构。

50cdfa124877e1d70e16249cb9c4a1bf.jpeg

上面的图中大致可以根据颜色的不同分成三大块区域。

第一块区域是黄色部分的前端,也叫 Front End

前端部分的作用是从内存中获取指令并解码,然后把解码后的指令放到队列中,等待 CPU 后端处理。还包括了 CPU 中的分支预测的实现 BPU。另外也还包含解析指令是需要用到的 L1 指令缓存和指令 TLB。

其中从上图中也可以看到,Skylake 核中的 L1 指令缓存的大小是 32 KiB。

第二块区域是绿色的后端,又叫 Execution Engine

后端模块的作用是从队列中获取前端解码好了的指令开始运行。在后端中包括 Port0、Port1、...、Port7 等 8 个端口。每个端口都支持不同的微操作(uOP)的处理。

其中 Port0、Port1、Port5、Port6支持整数、浮点数的加法运算,Port2、Port3 用于地址生成和加载,Port4用于存储操作。每个

因为有 8 个 Port,所以后端在一个时钟周期内,是可以最多处理 8 个微操作的。

第三块区域是紫色的存储系统,又叫 Momory SubSystem

在这里包括了 L1 级别的 Data 缓存区,图中也展示了它的大小是 32KiB。还包括 L2 缓存,其大小是 256 KiB。另外还有 Data TLB 等缓存。这些缓存都是位于 CPU 核内部的。访问它们的速度比访问内存更快。(本文来自于公众号「开发内功修炼」)

不同代际的 CPU 的微架构设计也是不同的,单核性能也会有变化,后面的文章里我们再讲。

总结

今天借助我手头的一枚老旧的 CPU Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz。咱们深入地介绍了 Intel 的 CPU 命名规则。了解了命名规则有助于你快速判断一颗 CPU 的大概的性能。不过如果你是一名发烧友,还是建议你搜索天梯图来了解每个 CPU 的排名情况。

另外我们也找到了这颗 CPU 的硬件解剖图 - Die 图。从 Die 图里我们直观地看到了 CPU 内部的物理结构。在 i5-7200U 中包括了集成显卡、包括了物理核、还看到了 L3 缓存的位置。另外内存控制器也是集成在 CPU 的,CPU 就是通过它来和内存通信的。还有就是 PCIe 通道,是 CPU 用来和硬盘、网卡、显卡等设备通信的通路。

最后我们深入到了 Skylake 的物理核的内部。了解到了物理核中的三大组成部分:前端、后端和存储模块。其中前端负责指令的解析,后端负责指令解析后的微操作的运行处理。存储系统为前端和后端提供了 L1、L2 等缓存,用于加速内存访问。

看到这里,相信你对 CPU 会有更深刻的认识了。后面我们再来一篇文章介绍不同代际中都在哪些地方有进步。别犹豫,快把本文快分享给你的好基友吧!

f01aa60abc4cbe4f8f87498d79bd9a25.png

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

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

相关文章

redis教程 一 redis中的常用命令

文章目录 redis常见命令Redis数据结构介绍redis通用命令String类型String的常见命令Key结构 Hash类型List类型Set类型SortedSet类型 redis常见命令 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样&…

IIS中间件漏洞----DotNetScan 工具

用DotNetScan 工具把目标网站IP,端口填写下。找到IIS的网站后就可进行操作上传。 也可以使用IISPutScanner工具 上传文件 利用解析漏洞 利用漏洞的前提条件:网站根目录可写入

教培行业的创新:微信CRM系统带来高效管理

在当今快速发展的科技环境下,教育培训行业面临着越来越多的挑战和机遇。如何提高管理效率、扩大市场份额、提升客户满意度,成为了教培行业亟待解决的问题。而微信CRM系统的出现,为教培行业带来了创新性的解决方案。 一些教育培训行业存在的问…

布雷斯悖论和借贷式拥塞控制

先看布雷斯悖论,新增一条路不但没减少交通延滞,反而降低了服务水准,下面一个简单的例子: 关于布雷斯悖论的讨论已经太多,我给出个新解释,这和我引出 借贷式拥塞控制 (差论证和编码)有关。 看一个不严谨但更…

在SpringBoot 中集成Swagger

前提&#xff1a;我的SpringBoot 项目的版本是 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18-SNAPSHOT</version><relativePath /> <!-- l…

使用Bazel构建高效的Android应用程序

使用Bazel构建高效的Android应用程序 1. 引言 在现代软件开发中&#xff0c;构建工具是至关重要的一环。Bazel是一个开源的构建工具&#xff0c;由Google开发并用于其内部项目多年。它旨在提供高效、可扩展和可靠的构建解决方案。Bazel最初专注于构建大规模软件项目&#xff…

约数之和 (普通快速幂求逆元做法)

假设现在有两个自然数 A 和 B&#xff0c;S 是 AB 的所有约数之和。 请你求出 Smod9901 的值是多少。 输入格式 在一行中输入用空格隔开的两个整数 A 和 B 。 输出格式 输出一个整数&#xff0c;代表 Smod9901 的值。 数据范围 0≤A,B≤5107 输入样例&#xff1a; …

月报总结|Moonbeam 10月份大事一览

万圣节快乐&#xff01;时间一晃眼&#xff0c;10月已经迈入尾声&#xff0c;也即将迎来寒冷的冬天。但与季节相反&#xff0c;加密产业近期的发展可以说是高潮起伏&#xff0c;热度不断攀升。Moonbeam在10月中也发布了许多重大的更新&#xff0c;如Uniswap V3前段上线、众贷DO…

找人做软件,过程该怎么控制?

我们找外包公司或者程序员兼职做软件&#xff0c;我们该怎么做过程控制呢&#xff0c; 做过程控制的目的是确保最终交付的软件是我们需要的&#xff0c; 虽然在开发前我们已经敲定了功能列表和原型&#xff0c;但这两者只是一个框架&#xff0c;就好比要建一栋房子&#xff0…

前端 | (十四)canvas基本用法 | 尚硅谷前端HTML5教程(html5入门经典)

文章目录 &#x1f4da;canvas基本用法&#x1f407;什么是canvas(画布)&#x1f407;替换内容&#x1f407;canvas标签的两个属性&#x1f407;渲染上下文 &#x1f4da;绘制矩形&#x1f407;绘制矩形&#x1f407;strokeRect时&#xff0c;边框像素渲染问题&#x1f407;添加…

【Redis】String字符串类型-常用命令

文章目录 String字符串类型常用命令setgetMGETMSET 计数命令INCRINCRBYDECRDECRBYINCRBYFLOAT 其它命令APPENDGETRANGESETRANGESTRLEN 命令总结 String字符串类型 1&#xff09;⾸先Redis中所有的键的类型都是字符串类型 2&#xff09;字符串类型的值&#xff08;value&#…

鉴源实验室 | 自动驾驶传感器攻击研究

作者 | 付海涛 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 自动驾驶汽车的脆弱性 自2015年以来&#xff0c;汽车的信息安全问题受到国内外的广泛关注。而随着汽车的智能化与网联化的…

C语言scanf()函数读取包含空格的字符串

scanf()函数读取输入时&#xff0c;遇到空格或者回车结束读取&#xff1b; 所以输入的字符串中有空格&#xff0c;到空格就中断了&#xff1b; 根据资料&#xff0c;使用 "%[^\n]" 这样的格式化符遇到空格继续读取&#xff0c;直到敲了回车&#xff1b; 看一下&am…

微信小程序UI自动化测试实践:Minium+PageObject

小程序架构上分为渲染层和逻辑层&#xff0c;尽管各平台的运行环境十分相似&#xff0c;但是还是有些许的区别&#xff08;如下图&#xff09;&#xff0c;比如说JavaScript 语法和 API 支持不一致&#xff0c;WXSS 渲染表现也有不同&#xff0c;所以不论是手工测试&#xff0c…

Javaweb之HTML,CSS的详细解析

2. HTML & CSS 1). 什么是HTML ? HTML: HyperText Markup Language&#xff0c;超文本标记语言。 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等内容。 标记语言&#xff1a;由标签构成的语言…

Netty在Firbase中的使用

1.1前言 实时更新是现代应用程序中用户体验的一个组成部分。随着用户期待这样的行为&#xff0c;越来越多的应用程序都正在实时地向用户推送数据的变化。通过传统的3层架构很难实现实时的数据同步&#xff0c;其需要开发者管理他们自己的运维、服务器以及伸缩。通过维护到客户…

会声会影2024对比2023变化以及功能对比

全新会声会影2024版本现已登场&#xff0c;小伙伴们相信已经急不可待地想知道2024版到底有哪些新功能。对比2023版本&#xff0c;会声会影2024版本有没有功能的增强&#xff1f;事不宜迟&#xff0c;现在就让我们一起来看看会声会影2024对比2023的变化&#xff0c;包括功能对比…

Spring Boot整合Swagger

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

Java 为什么不推荐在 while 循环中使用 sleep() 我悟了

文章目录 前言原因是否正确方案是否合理定时轮询场景事件机制等待和唤醒 个人简介 前言 最近逛 CSDN 看到一篇文章&#xff0c;文章大意是说为什么在循环中不推荐使用 sleep 操作&#xff0c;原因在于线程挂起和唤醒会有很大的性能消耗&#xff0c;并推荐使用 Timer 及 Schedu…