#辛先森科技说#CPU 和多个 CPU 有何区别?,多核


#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
先说结论 , 多核CPU和多CPU的区别主要在于性能和成本 。 多核CPU性能最好 , 但成本最高;多CPU成本小 , 便宜 , 但性能相对较差 。 我们来看一个例子:如果我们需要组成一个48核的计算机 , 我们可以有这么三种选择:
把48个核全部做到一个大Die上 , Die很大 。 这个Die加上一些外围电路组成一个单Die多核CPU 。 弄4个小Die , 每个Die12个内核 , 每个Die很小 。 把这4个Die , 加上互联总线和外围电路 , 全部封装(Packaging)到一个多Die多核CPU中 。 还是弄4个Die , 每个Die12个内核 , 每个Die很小 。 每个Die加上外围电路封装成一个单独的CPU , 4个CPU再通过总线组成一个多路(way/socket)系统 。我们来看看他们的性能差距和成本差距 。
性能差距
为了很好的理解三者之间的区别 , 我们通过一个生活中的场景分别指代三种方式 。 我们想像每个Die是一栋大楼 , Die里面的内核们 , 内存控制器们、PCIe控制器们和其他功能模块是其中的一个个房间 。 数据流和指令流在它们之间的流动看作房间里面的人们互相串门 , 这种串门的方便程度和走廊宽度决定了人们愿不愿意和多少人可以同时串门 , 也就指代了数据的延迟和带宽 。
好了 , 有了这种方便的比喻 , 我们来看看三种情况分别是什么 。
48核的大Die是Intel至强系列的标准做法:
#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
这种方法就是既然需要这么多房间 , 业主有钱 , 就建一个大楼 , 每层都是超级大平层:
#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
走廊众多 , 这里堵了 , 换个路过去 , 反正方向对了就行 , 总能到的 。 所以人们可以很方便的串门 , 也可以有很多人同时串门 。 所以延迟小 , 带宽高 。
【#辛先森科技说#CPU 和多个 CPU 有何区别?,多核】一个CPUpacakge里面包了4个小Die的做法是AMD的标准做法 , 也有部分Intel也这样:
#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
这种做法可以看作业主没钱搞大平层 , 但也要这么多房间 , 怎么办呢?在原地相邻得建4个小高层 , 再把小高层连起来 , 房间数目不变 。 怎么把它们连起来呢?比较现代的做法有两种:
#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
这种做法也叫做MCM(Multi-Chip-Module) , 详细内容可以看本专栏以前的文章 。
其中AMD采用硅中介(Interposer),也就是上面那种;Intel采用EMIB(EmbeddedMulti-dieInterconnectBridge),是下面那种 。
硅中介的做法可以看作为了两个楼互通 , 我们把地下都挖空了 , 搞了个换乘大厅 。 而EMIB可以看成在两个楼之间挖了一个地下通道 。 显然挖通道更省钱省力 , 但因为通道是两两互联的 , 如果大楼多了 , 还不如换乘大厅方便 。
好了 , 那我们的串门问题怎么解决呢?因为楼和楼(Die和Die)之间只有地下互通 , 要串门的人都要做电梯到地下一层 , 通过地道或者换乘大厅到另一个大楼地下 , 再做电梯去想要的楼层 。 路途遥远 , 好多人都不想串门了 , 同时如果串门人太多 , 会挤爆电梯 , 不得不串门联系工作的人们在电梯口排起了长队 。 显然 , 建筑四个相邻小高层的办法 , 延迟和带宽都比较差 。
那么多CPU呢?
#辛先森科技说#CPU 和多个 CPU 有何区别?,多核
文章图片
还是没钱盖大平层 , 这次更惨 , 因为4层小高层间隔比较远 , 为了方便人们串门 , 不得不在园区里面搞了班车 , 用于跨楼通勤 。 因为班车开停需要时间 , 人们串门更加麻烦了 。