目录
书接上文:CISC&RISC? CPU架构有哪些? x86 & ARM?-CSDN博客
前面咱们聊到了计算机的 CISC和RISC,也大致了解了市面上主流的一些CPU架构。
今天咱们就继续讲讲目前PC和服务器领域的老大哥——Intel的x86架构,看看x86 CPU里面到底有什么!
x86架构的历史
首先,先简单了解下Intel x86架构CPU的历史,大致理一下其发展脉络,可以帮助我们更好地理解x86架构。
x86 architecture is a computer processor architecture that was originally introduced by Intel in 1978 and became the dominant architecture in the PC market. Today, the x86 architecture is widely used in computing devices such as desktops, laptops,workstations and servers.
x86架构作为一种计算机处理器架构,最早是由Intel 于1978年提出,后来成为个人电脑(Personal Computer, PC)领域的主流架构。目前,x86架构被广泛应用于桌面、笔记本、平板、工作站和服务器等领域。
我们最初熟悉的x86 处理器,相信不少本科是自动化的同学在课堂上都学过,笔者当时的课程是:《单片机原理与设计》,其中就主要介绍的是8086/8088系列单片机。
下面列出一张笔者总结的x86架构脉络发展图,只是个大概,不是很详细,但基本能说明意思。
x86架构的发展呢,大致经历了以下几个阶段:
- 8086/8088阶段,16位模式,采取了代码分段机制(写汇编代码时的代码段、数据段等等)。
- 80286阶段,引入了保护模式。
- 80386阶段,正式进入32位模式,引入虚拟8086模式和分页机制。
- 80486阶段,引入并行执行,8KB L1级缓存和 x87浮点算是单元FPU。
- Pentium阶段:引入Netburst微架构,流水线、16KB L1缓存,和分支预测机制。
- Xeon阶段: 64位模式,引入多核设计,超线程技术、虚拟化技术
- Core 阶段: 我们熟悉的i3,i5,i7,i9,Nehalem 微架构,低功耗设计,集成内存控制器IMC,Turbo Boot技术
- Ultra阶段:目前,Intel正式推出Ultra系列,采用4nm制程,采用CPU + GPU + NPU的异构计算模式,以支持本地AI算力部署。
注意,上述Pentium、Xeon、Core 系列的时间线是有交叉的,并非严格按照时间线的先后顺序,图中只是列出来标志性时间点,方便理解。
具体发展脉络可参考Intel的官方文档:64-ia-32-architectures-software-developer-vol-1-manual.pdf
x86 CPU 架构
了解了X86架构的大致发展脉络,那 x86 CPU里面的架构具体是什么样子呢?
本文以 Intel 的志强系列 (Xeon) 为例来进行介绍。Xeon系列处理器的特点是多核,其广泛应用于工作站和服务器领域。
目前,Intel Xeon 系列已经发展到第五代了,其采用DDR5内存,支持PCIe 5.0和 CXL技术,可以提供强大的计算能力和快速的内存访问,为目前异常火爆的AI,高性能计算HPC,数据中心提供了有力支持。
关于Xeon的详细内容,读者可以参考Intel官网:第五代英特尔® 至强® 处理器 – 英特尔 (intel.cn)
好,那我们继续讲CPU。
通常来说,我们的CPU可以被划分为两部分: Core 和 Uncore。根据字面意思,可以简单理解为:核心部分和非核心部分。
下图是笔者根据网上资料总结的CPU内部Core和Uncore的划分图,里面有些部件可能已经弃用,但不妨碍咱们理解Core和Uncore的设计理念。
那接下来,咱就围绕着这张图进行详细讲解。
首先 SOCKET 通常指的是主板(Mother Board)上的CPU插槽,通常PC上只有一个,服务器上可能会有多个。由于SOCKET和处理器基本一一对应。所以,可以直接用SOCKET代指处理器,即CPU。
早期一个CPU里面通常只有一个核,即一个计算单元。但随着对计算性能要求的提升,现代CPU里面大多采用多核实现,即一个物理CPU里面集成了了多个计算单元电路。一个计算单元电路也就是一个核,即我们所说的Core。
除了Core以外,其余部分就是Uncore部分啦。
Core
那Core里面又包含什么东西?Core扮演着至关重要的角色,是计算机系统的核心,主要负责计算和控制功能。
所以,一般来说,Core包含以下部件:
- 控制单元 EU (Control Unit) 负责控制,协调各单元,完成计算功能。
- ALU(Arithemetic Logical Unit) 算数逻辑单元和FPU(Float Point Unit)浮点算数单元,主要负责计算。
- L1(FLC,First Level Cache)和L2(MLC, Middle Level Cache) 缓存,主要负责存储ALU和FPU经常使用的代码或数据,提升计算效率。
- Registers: 寄存器,主要保存计算结果或中间临时变量。
- Clock\Bus\...: 时钟,总线,为其它部件提供时钟信号和信息传输通路。
这里也可以参考下早期 8086/8088 CPU的内部架构图,加深理解 Core 部分。
还是不能理解?
那必须祭出此图了!下图是 Intel Xeon E5 系列的CPU内部结构图。
可以看到,其中包含Core0, Core1, 除开这些,其余部分便是Uncore啦,主要包括:
- CBox : Cache Box,可以理解为LLC和Core通信的信道。
- LLC : Last Level Cache,最后一级Cache,也叫做L3 Cache。
- HA : Home Agent,负责Cache和memory一致性等。
- IMC : Integrated Memory Controller,集成内存控制器。
- Pbox : Physical layer ,我理解为链接物理层的信道,比如SMI,PCIe,QPI等等。
- QPI :Quick Path Interconnect,高速信号通路,目前已经被UPI (Ultra Path Interconnect)取代。
- Ubox : System Config Controller,和PCU打交道。
- PCU: Power Control Unit,电源控制电路。
- IIO: Intergrated Input Output,集成输入输出模块。
- PCIe: Peripheral component interconnect express, 一种高速数据接口总线,目前主板上的大多数设备都挂接在PCIe总线下,包括显卡,内存,硬盘等等。
- DMI : Direct Media Interface, 连接CPU和PCH的物理链路。
可见,Uncore部分包含很多,而且每款CPU的Uncore具体包含哪些部件还不一样。
那,有的读者可能要问了,上图中那个橘黄色的圆环是什么?感觉像是信息通路?
其实,差不多就是那个意思。准确来说,这是Intel为实现多核通信而设计的一种Ring Bus,也叫环形总线。
本文并不打算对环形总线进行详细展开,感兴趣的读者可以参考下面的链接,该文章出自笔者关注的一位知乎大佬博主,里面有详细的介绍。
友情链接:破茧化蝶,从Ring Bus到Mesh网络,CPU片内总线的进化之路 - 知乎 (zhihu.com)
其实,目前,最近几代 Intel Xeon系列早已不采用Ring Bus总线结构,因为随着CPU核心数的增加,Ring Bus 逐渐显示出它的局限性,即多核之间的通信延时越来越长。
为了解决这个问题,Intel设计了Mesh Bus,如下图所示,这里不再深入介绍,可参考上面的友链。
好,看到这里,相信读者对CPU的Core和Uncore设计应该有了大致的了解。
那咱们再继续深入一下吧。
P Core / E core
不知道,大家有听说过大小核吗,或者 P Core 和 E Core 呢?
Intel在酷睿12/13代推出了大小核的设计,其中:
- ”大核“也就是”P Core“ ,即 Performance Core,性能核。
- ”小核“也就是 ”E Core“, 即 Efficiency Core,效率核。
大核主打性能,睿频高;小核主打低功耗,睿频小。
当系统开启超线程(Hyper-Thread)技术后,一个大核可以等效为两个小核,更准确地说,是等效为两个逻辑核(Logical core)。
在操作系统看来,每一个逻辑核就是一个物理核。
比如笔者的电脑是:4个P Core + 8个 E Core,那总的物理核心数 = 4 + 8 = 12个,而逻辑核心数 = 4 * 2 + 8 = 16 个。
读者不妨看看你们的电脑的核心数是多少呢?是否支持大小核呢?
总结
好啦,本文的分享到这里就基本结束啦。简单总结一下,本文主要对以下三方面进行了介绍:
- x86架构CPU的发展脉络
- CPU的Core和Uncore架构
- CPU的大小核机制
后面,笔者也会针对Uncore的部分组件,如Cache等进行专门的介绍,欢迎大家及时查看~
结语
好,相信通过本文的分享,大家应该对CPU有了更深的了解了吧。以后当同事问你知不知道CPU的Core和Uncore,大小核时,你应该不至于一脸懵逼了吧哈哈。
最后呢,给大家留一个小问题:你知道如何关闭电脑的小核吗?Win10有大小核调度机制吗?Win11呢?
如果大家觉得本文有帮助话,还请点个赞以及关注我的 【CPU】专栏哦,你的鼓励是笔者不懈创作的动力~,蟹蟹~