多核 CPU 和多个 CPU 有何区别?
先说结论,多核CPU和多CPU的区别主要在于性能和成本。多核CPU性能最好,但成本最高;多CPU成本小,便宜,但性能相对较差。
再描述之前,先来认识几个基本知识:
CPU : 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令以及处理计算机软件中的数据,计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上,影响运行速度的性能指标包括CPU的工作频率,Cache容量,指令系统和逻辑结构等参数。类似于一个人的大脑。
DIE : 核心(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。
为了更好的认识,接下来我们来看一个例子:如果我们需要组成一个48核的计算机,我们可以有这么三种选择:
- 第一种 —> 把48个核全部做到一个大Die上,Die很大。这个Die加上一些外围电路组成一个单Die多核CPU。
- 第二种 —> 弄4个小Die,每个Die 12个内核,每个Die很小。把这4个Die,加上互联总线和外围电路,全部封装(Packaging)到一个多Die多核CPU中。
- 第三种 —> 还是弄4个Die,每个Die 12个内核,每个Die很小。每个Die加上外围电路封装成一个单独的CPU,4个CPU再通过总线组成一个多路(way/socket)系统。
我们来看看他们的性能差距和成本差距。
性能差距如下:
为了很好的理解三者之间的区别,我们通过一个生活中的场景分别指代三种方式。我们想像每个Die是一栋大楼,Die里面的内核们,内存控制器们、PCIe控制器们和其他功能模块是其中的一个个房间。数据流和指令流在它们之间的流动看作房间里面的人们互相串门,这种串门的方便程度和走廊宽度决定了人们愿不愿意和多少人可以同时串门,也就指代了数据的延迟和带宽。
好了,有了这种方便的比喻,我们来看看三种情况分别是什么。
第一种 - 单CPU单DIE多核模式
48核的大Die是Intel至强系列的标准做法:【单CPU单DIE多核模式】这种方法就是既然需要这么多房间,业主有钱,就建一个大楼,每层都是超级大平层:走廊众多,这里堵了,换个路过去,反正方向对了就行,总能到的。所以人们可以很方便的串门,也可以有很多人同时串门。所以延迟小,带宽高。
第二种 - 单CUP多DIE多核
一个CPU pacakge里面包了4个小Die的做法是AMD的标准做法:【单CUP多DIE多核】这种做法可以看作业主没钱搞大平层,但也要这么多房间,怎么办呢?在原地相邻得建4个小高层,再把小高层连起来,房间数目不变。怎么把它们连起来呢?做法可以看作为了两个楼互通,我们把地下都挖空了,搞了个换乘大厅。而EMIB可以看成在两个楼之间挖了一个地下通道。显然挖通道更省钱省力,但因为通道是两两互联的,如果大楼多了,还不如换乘大厅方便。
好了,那我们的串门问题怎么解决呢?因为楼和楼(Die和Die)之间只有地下互通,要串门的人都要做电梯到地下一层,通过地道或者换乘大厅到另一个大楼地下,再做电梯去想要的楼层。路途遥远,好多人都不想串门了,同时如果串门人太多,会挤爆电梯,不得不串门联系工作的人们在电梯口排起了长队。显然,建筑四个相邻小高层的办法,延迟和带宽都比较差。
第三种 - 多CPU多DIE多核
多CPU的情况:【多CPU多DIE多核】还是没钱盖大平层,这次更惨,因为4层小高层间隔比较远,为了方便人们串门,不得不在园区里面搞了班车,用于跨楼通勤。因为班车开停需要时间,人们串门更加麻烦了。借助这个比喻,我们应该能够得出结论,这三种方式提供48核的算力,延迟和带宽是依次下降的。下降的幅度和需要进行的work load有关,不能一概而论。大家可以借助一个工具[1]来具体测量一下内存的延迟:
在这个例子里面看出,本大楼的访问延迟比跨大楼的访问延迟低了一倍!
结论
相信读到这里,大家已经有了答案,结论开头已经说明,就不再赘述了。多核CPU和多Die乃至多路CPU,对操作系统等来看,区别不大,BIOS都报告了同样多的很多CPU供他们调度。区别主要在于性能上面,大Die多核性能最好,也最贵。多Die性能下降,但经济实惠。
线程
对于目前的技术来讲,还是以“1个核处理1个线程”,但是随着超频CPU的出现,已经实现了1个核处理2个线程的现象。