多核CPU

news/2024/12/5 7:03:20/

ps:本文较长,全文两千五百字左右!

前言

半导体工艺和架构是提升CPU性能的双驾马车。CPU的发展史,其实就是处理器架构和半导体工艺交互升级、协同演进的发展史。半导体工艺采用更先进的制程,晶体管尺寸变小了,芯片面积降低了,CPU的主频就可以做得更高;在相同的工艺制程下,通过不断优化CPU架构,从Cache、流水线、乱序执行、SIMD、多发射、指令预测等方面不断更新迭代,就可以设计出比别家公司性能更高、功耗更低的处理器。

单核处理器的瓶颈

在相同的半导体工艺制程下,芯片的面积越大,芯片的良品率就越低,芯片的成本就会越高,功耗也会越大。而在相同的工艺下,提升芯片性能和减少功耗之间往往又是冲突的。
以Cache为例,我们可以通过增加L1、L2、L3级Cache的容量来增加Cache的命中率,提高CPU的性能,但芯片的面积和功耗也会随之增加。流水线同样如此,我们可以通过增加流水线级数、减少每一级流水的时间延迟,来提高处理器的主频,但随之而来的就是芯片电路的复杂性增加。鱼与熊掌不可兼得,很多厂家在发布自己的处理器时,都会根据产品的市场定位在性能、成本和功耗之间反复做平衡,或者干脆发布一系列低、中、高端产品:要么追求高性能,要么追求低功耗,要么追求能效比。单核时代的玩法玩得差不多了,就要换种新玩法,才能让消费者有欲望和动力扔掉旧机器,刷着花呗白条更新换代。于是,一个更加缤纷多彩的多核大战时代来临了。

片上多核互连技术

现代的计算机,无论是PC、手机还是服务器,一般都是多个任务同时运行,单核CPU的性能再强劲,其实也是在串行执行这几个任务,多个任务轮流占用CPU运行。只要任务切换得足够快,就可以以假乱真,让用户觉得多个程序在同时运行。多核处理器则可以让多个任务真正地同时执行。在单核处理器通过指令级并行性能提升空间有限的情况下,通过多核在任务级做到真正并行,可以进一步提升CPU的整体性能。单核处理器芯片内部除了集成CPU的各个基本电路单元,还集成了各级Cache。当在一个芯片内部集成多个核(Core)时,各个Core之间怎么连接呢?Cache是每个Core独享,还是共享?不同架构的处理器,甚至相同架构不同版本的处理器,其连接方式都不一样。早期的计算机比较简单,CPU和内存、I/O模块直接相连,这种连接也称为星型连接。星型连接通信效率最高,但是浪费的资源也多。举一个简单的例子,如邮局,如图。

星型连接与总线型连接
星型连接与总线型连接图

计算机的CPU和其他模块,如果像邮局一样采用星型连接,通信效率确实高效,快递员到每家都有专门的道路,永不堵车。但星型连接成本高、可扩展性差:如果老王家的小王结婚盖了新房,则还需要专门修一条新公路,从邮局通到小王家;小李家拆迁了,乔迁新居,原来的公路就浪费了,还得继续修公路通到新家。为了解决这种缺陷,如图2-44右侧图所示,总线型连接就产生了:各家共享公路资源,邮局对他们各家进行编址管理。总线型连接可以随意增加或减少连接模块,兼容性和扩展性都大大增强。在单核处理器时代,总线型连接是最理想和最经济的,但是到了多核时代就未必如此了。
总线连接
总线连接图

总线型连接也有缺陷,在某一个时刻只允许一对设备进行通信,当多个Core同时想占用总线与外部设备通信时,就会产生竞争,进而影响通信效率。一个解决方法是使用线性阵列,分段使用总线,就像高速公路上的不同收费点一样,多个处理器可以分段使用总线资源进行通信,如IBM的Cell处理器。另一个解决方法是使用交叉开关(Crossbar)。交叉开关像路由器一样有多个端口,多个Core可以通过交叉开关的端口互连,并行通信。相互通信的各对节点都是独立的,互不干扰。
交叉开关
交叉开关图

交叉开关可以提高通信效率,但其自身也会占用芯片面积,功耗很大,尤其当连接设备很多,交叉开关的端口很多时,芯片面积和功耗会急剧上升。为了缓解这一矛盾,我们可以使用层次化交叉开关,通过层次化交叉开关可以在局部构建一个节点的集群,然后在上一层将每个局部的集群看成一个节点,再通过合适的方式进行连接。
层次交叉开关
层次交叉开关图

层次化交叉开关利用网络通信的局部特征,缓解了单个开关在连接的节点上升时产生的性能下降,在性能、芯片面积和功耗之间达到一个平衡。交叉开关两两互连如下图所示,处理器的多个Core之间通过开关可以相互独立通信,效率很高。但随之而来的问题是,随着连接节点增多,交叉开关的互连逻辑也越来越复杂,功耗和占用的芯片面积也越来越大,所以这种连接结构一般适用于四核以下的CPU。
交叉开关两两相连
交叉开关两两相连图

四核以上的CPU可以采用Ring Bus结构(如下图所示):将总线和交叉开关结合起来,连成一个环状,相邻的两个Core通信效率最高,远离的两个Core之间可以通过开关路由通信。Intel的八核处理器一般都是采用这种结构的。
Ring Bus结构
Ring Bus结构

Ring Bus结构结合了总线型连接和开关型连接两者的优点,在成本功耗和通信效率之间达到一个平衡,但是也有局限性,当这个环上连接的Core很多时,通信延迟又会带来效率下降。面向服务器的处理器一般都是16核以上的,这种众核结构如果再使用以上连接方式则都会有局限性,影响多核整体性能的发挥。面向众核处理器领域,目前比较流行的一种片上互连技术叫作片上网络(Net On Chip,NoC)。

现在比较常用的二维Mesh网络,当处理器的Core很多时,我们不再使用总线型连接,而是使用网络节点的方式连接。每个节点包括计算单元、通信单元及其附属电路。计算和通信实现了分离,每一个节点中的处理单元可以是一个Core,也可以是一个小规模的SoC。Core与Core之间的通信基于通信协议进行,数据包在网络中按照设定的路由算法传输,通过网络通信的分布化来避免总线的竞争。当2D Mesh网络连接的Core很多时,距离较远的两个Core,因为经过太多的路由,通信延迟也会对处理器整体性能产生一定影响。将网络路径中每一条线的首尾路由节点相连,就变成了二维的Ring Bus结构,即Torus网络,可以进一步减少路由路径较远时带来的通信延迟。

二维Mesh网络
二维Mesh网络


http://www.ppmy.cn/news/517119.html

相关文章

平面设计计算机基本配置,平面设计电脑配置要求

如何配置一台好用的用于平面设计的电脑?首先我们要了解下电脑有哪些部分组成,一台电脑有CPU、主板、硬盘、内存条、显卡、显示器、机箱、电源、鼠标和键盘组成。电脑的配置,也就是这些硬件的配置。 作为一个平面设计的电脑,需要打…

cpu满载寿命_CPU的使用寿命大概有多少年,多久迭代一次为佳?

主频fcpu占用率*最高主频,核心电压cpu占用率*标称电压,功耗cpu占用率的三次方*标称功耗.有的CPU平均满负荷有效寿命高达10万小时。CPU并不是易损件,CPU正常使用下,保养得好的话(注意散热和除尘,防潮也做得很好,而且朝频后的温度也不高)&#…

计算机组成CPU最佳配置,计算机组成原理--CPU

算是读书笔记吧 最简单的 CPU 1. 首先,我们有一个自动计数器 这个自动计数器会随着时钟主频不断地自增,来作为我们的 PC 寄存器。 2. 在这个自动计数器的后面,我们连上一个译码器 译码器还要同时连着我们通过大量的 D 触发器组成的内存。 3. …

实时操作系统的滴答Tick设置多少才合适?

关注星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不? 相…

linux线程时间片是多少合适,嵌入式linux 线程内usleep与cpu调度时间片大小分析

1.在嵌入式linux平台下调用sleep或者usleep函数的CPU线程调度情况? 2.开发板上使用的时at91sam9261 ARM9 CPU芯片,主频240M,操作系统是linux2.6.28.10版本,那么在该操作系统下的线程调度的切换CPU时间片是多长,网上有地方说是linu…

sqlserver对cpu主频要求_记一次SQLServer服务器CPU飙升100%的处理

某集团一台sqlserver服务器,据系统管理员反应,经常会出现CPU飙到100%而且高居不下的情况,然后应用层会出现各种等待超时。 服务器配置:windows server 2008R2 x64 + 32GB内存 +6核CPU,业务量不算特别繁忙,按理CPU使用率不会很高。 首先确认CPU高是否确实是由SQLSERVER导致…

linux cpu控制软件下载,Linux CPU频率控制

Linux 内部共有五种对频率的管理策略 userspace , conservative , ondemand , powersave 和 performance。 l performance : CPU 会固定工作在其支持的最高运行频率上; l powersave : CPU 会固定工作在…

计算机专业需要单核还是多核,CPU主频指的是单核还是多核,多核计算机是指计算机有多个CPU-...

小伙伴周末的留言里有几个人一直问买什么CPU合适。 如果仅仅是单纯看钱,那小编的回答肯定是在你经济承受范围内最贵的那个最合适。 不过呢,因为大家的需求各不相同,CPU可真不是靠钱衡量就可以的,今天小编就针对大家选择CPU时的误区…