文章插图
多核CPU和多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控制器们和其他功能模块是其中的一个个房间 。数据流和指令流在它们之间的流动看作房间里面的人们互相串门,这种串门的方便程度和走廊宽度决定了人们愿不愿意和多少人可以同时串门,也就指代了数据的延迟和带宽 。
好了,有了这种方便的比喻,我们来看看三种情况分别是什么 。
48核的大Die是Intel至强系列的标准做法:
文章插图
这种方法就是既然需要这么多房间,业主有钱,就建一个大楼,每层都是超级大平层:
文章插图
走廊众多,这里堵了,换个路过去,反正方向对了就行,总能到的 。所以人们可以很方便的串门,也可以有很多人同时串门 。所以延迟小,带宽高 。
一个CPU pacakge里面包了4个小Die的做法是AMD的标准做法,也有部分Intel也这样:
文章插图
这种做法可以看作业主没钱搞大平层,但也要这么多房间,怎么办呢?在原地相邻得建4个小高层,再把小高层连起来,房间数目不变 。怎么把它们连起来呢?比较现代的做法有两种:
文章插图
这种做法也叫做MCM(Multi-Chip-Module),详细内容可以看我的这篇文章:
如何像搭积木一样构建CPU?Intel和AMD都是怎么做的?
其中AMD采用硅中介(Interposer),也就是上面那种;Intel采用EMIB(Embedded Multi-die Interconnect Bridge),是下面那种 。
硅中介的做法可以看作为了两个楼互通,我们把地下都挖空了,搞了个换乘大厅 。而EMIB可以看成在两个楼之间挖了一个地下通道 。显然挖通道更省钱省力,但因为通道是两两互联的,如果大楼多了,还不如换乘大厅方便 。
好了,那我们的串门问题怎么解决呢?因为楼和楼(Die和Die)之间只有地下互通,要串门的人都要做电梯到地下一层,通过地道或者换乘大厅到另一个大楼地下,再做电梯去想要的楼层 。路途遥远,好多人都不想串门了,同时如果串门人太多,会挤爆电梯,不得不串门联系工作的人们在电梯口排起了长队 。显然,建筑四个相邻小高层的办法,延迟和带宽都比较差 。
那么多CPU呢?
文章插图
还是没钱盖大平层,这次更惨,因为4层小高层间隔比较远,为了方便人们串门,不得不在园区里面搞了班车,用于跨楼通勤 。因为班车开停需要时间,人们串门更加麻烦了 。
借助这个比喻,我们应该能够得出结论,这三种方式提供48核的算力,延迟和带宽是依次下降的 。下降的幅度和需要进行的work load有关,不能一概而论 。大家可以借助一个工具[1]来具体测量一下内存的延迟:
文章插图
在这个例子里面看出,本大楼的访问延迟比跨大楼的访问延迟低了一倍!
成本差距既然大平层这么好,为什么还有人盖小高层呢?存在都是合理的,当然是成本高了 。我在这篇文章中讲述了为什么Die大了成本就高:
CPU制造的那些事之二:Die的大小和良品率
简单来说,晶圆在制造过程中总是避免不了缺陷,这些缺陷就像撒芝麻粒,分布在整个Wafer上:
推荐阅读
- python迭代器和生成器区别
- 杨紫赵丽颖关系特别好,赵丽颖和杨紫罕见同框
- 你了解的SEM和SEO究竟是什么样子的?
- 大家闺秀的长相和气质 赵雅芝真的全身都在表达一种气质
- 一分钟弄懂什么是分布式和微服务
- 光猫接交换机和路由器,怎么设置?
- 五类和六类网线有什么区别?
- 女生跟你打闹肢体接触是喜欢吗,愿意和你有肢体接触的女生是怎么想的
- 梦见偷蒜苗和拔蒜苗 梦见拔大蒜苗
- 拜访著名的茶和茶文化专家