我是靠谱客的博主 怕孤独钢笔,最近开发中收集的这篇文章主要介绍开核cpu_多核 CPU 和多个 CPU 有何区别?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

多核CPU和多CPU的区别主要在于性能和成本。多核CPU性能最好,但成本最高;多CPU成本小,便宜,但性能相对较差。我们来看一个例子:如果我们需要组成一个48核的计算机,我们可以有这么三种选择:

  1. 把48个核全部做到一个大Die上,Die很大。这个Die加上一些外围电路组成一个单Die多核CPU。
  2. 弄4个小Die,每个Die 12个内核,每个Die很小。把这4个Die,加上互联总线和外围电路,全部封装(Packaging)到一个多Die多核CPU中。
  3. 还是弄4个Die,每个Die 12个内核,每个Die很小。每个Die加上外围电路封装成一个单独的CPU,4个CPU再通过总线组成一个多路(way/socket)系统。

我们来看看他们的性能差距和成本差距。

性能差距

为了很好的理解三者之间的区别,我们通过一个生活中的场景分别指代三种方式。我们想像每个Die是一栋大楼,Die里面的内核们,内存控制器们、PCIe控制器们和其他功能模块是其中的一个个房间。数据流和指令流在它们之间的流动看作房间里面的人们互相串门,这种串门的方便程度和走廊宽度决定了人们愿不愿意和多少人可以同时串门,也就指代了数据的延迟和带宽

这种方法就是既然需要这么多房间,业主有钱,就建一个大楼,每层都是超级大平层

走廊众多,这里堵了,换个路过去,反正方向对了就行,总能到的。所以人们可以很方便的串门,也可以有很多人同时串门。所以延迟小,带宽高。

这种做法可以看作业主没钱搞大平层,但也要这么多房间,怎么办呢?在原地相邻得建4个小高层,再把小高层连起来,房间数目不变。怎么把它们连起来呢?比较现代的做法有两种:

这种做法也叫做MCM(Multi-Chip-Module),详细内容可以看我的这篇文章:

老狼:如何像搭积木一样构建CPU?Intel和AMD都是怎么做的?​zhuanlan.zhihu.com

其中AMD采用硅中介(Interposer),也就是上面那种;Intel采用EMIB(Embedded Multi-die Interconnect Bridge),是下面那种。

还是没钱盖大平层,这次更惨,因为4层小高层间隔比较远,为了方便人们串门,不得不在园区里面搞了班车,用于跨楼通勤。因为班车开停需要时间,人们串门更加麻烦了。[1]来具体测量一下内存的延迟:

在这个例子里面看出,本大楼的访问延迟比跨大楼的访问延迟低了一倍!

成本差距

既然大平层这么好,为什么还有人盖小高层呢?存在都是合理的,当然是成本高了。我在这篇文章中讲述了为什么Die大了成本就高:

老狼:CPU制造的那些事之二:Die的大小和良品率​zhuanlan.zhihu.com

简单来说,晶圆在制造过程中总是避免不了缺陷,这些缺陷就像撒芝麻粒,分布在整个Wafer上:

如果考虑缺陷,Die的大小会严重影响良率:

上图大家可以点开看(图比较大),其中不太清楚的红色小点是晶圆的缺陷,在Die很大时,有很大概率它的范围内会缺陷,而只要有缺陷该Die就报废了(简化处理);在Die比较小的时候,它含有缺陷的可能性就大大降低了。如图中,随着Die的减小,良率从第一个的35.7%提高到了95.2%!我们举个极端的例子,整个Wafer就一个Die,那么良率只有0%了,生产一个报废一个。谁还干这么傻的事!1个大Die成本 > 4个小Die+互联线路总成本

结论

相信读到这里,同学们已经有了答案,结论开头已经说明,就不再赘述了。多核CPU和多Die乃至多路CPU,对操作系统等来看,区别不大,BIOS都报告了同样多的很多CPU供他们调度。区别主要在于性能上面,大Die多核性能最好,也最贵。多Die性能下降,但经济实惠。 老狼:NUMA与UEFI​zhuanlan.zhihu.com

在接触的服务器领域会用到NUMA的优化,为什么在台式机上就没有呢?​www.zhihu.com

操作系统可以具体做出优化。但也有部分是操作系统不能够知道的,只有通过各种真实的workload,用户那里才会感觉有明显的不同。其他CPU硬件文章:

老狼:为什么CPU的频率止步于4G?我们触到频率天花板了吗?​zhuanlan.zhihu.com
老狼:CPU制造的那些事之一:i7和i5其实是孪生兄弟!?​zhuanlan.zhihu.com
老狼:CPU制造的那些事之二:Die的大小和良品率​zhuanlan.zhihu.com
老狼:为什么晶圆都是圆的不是方的?​zhuanlan.zhihu.com
老狼:为什么"电路"要铺满整个晶圆?​zhuanlan.zhihu.com
老狼:CPU能用多久?会不会因为老化而变慢?​zhuanlan.zhihu.com
老狼:为什么CPU越来越多地采用硅脂而不是焊锡散热?​zhuanlan.zhihu.com
老狼:为什么Intel CPU的Die越来越小了?​zhuanlan.zhihu.com
老狼:破茧化蝶,从Ring Bus到Mesh网络,CPU片内总线的进化之路​zhuanlan.zhihu.com
老狼:450mm的晶圆在哪里?​zhuanlan.zhihu.com
老狼:什么是TLB和PCID?为什么要有PCID?为什么Linux现在才开始使用它?​zhuanlan.zhihu.com
老狼:什么是Speculative Execution?为什么要有它?​zhuanlan.zhihu.com
老狼:为什么不把南桥集成进CPU?CPU和南桥芯片中什么资源最珍贵?​zhuanlan.zhihu.com
老狼:CPU底部的小块是干什么用的?为什么CPU这么多电源引脚?​zhuanlan.zhihu.com
老狼:TDP是CPU的功耗吗?TDP是固定不变的吗?​zhuanlan.zhihu.com

欢迎大家关注我的专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。

用微信扫描二维码加入UEFIBlog公众号

参考

  1. ^Intel Performance Checker https://software.intel.com/en-us/articles/intelr-memory-latency-checker

最后

以上就是怕孤独钢笔为你收集整理的开核cpu_多核 CPU 和多个 CPU 有何区别?的全部内容,希望文章能够帮你解决开核cpu_多核 CPU 和多个 CPU 有何区别?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部