查看原文
其他

带你理清多核CPU和多个CPU有何区别?

混说Linux 2022-11-19

点击上方蓝色“混说Linux”,选择“设为星标

第一时间看干货文章



 1

架构可以千变万化,面向需求、综合考量是王道。



来,简单举个例子:

假设现在我们要设计一台计算机的处理器部分的架构意,现在摆在我们面前的有两种选择,多个单核CPU和单个多核CPU,该如何选择?

如果我们选择多个单核CPU,那么每一个CPU都需要有较为独立的电路支持,有自己的Cache,而他们之间通过板上的总线进行通信。


假如在这样的架构上,我们要跑一个多线程的程序(常见典型情况),不考虑超线程,那么每一个线程就要跑在一个独立的CPU上,线程间的所有协作都要走总线,而共享的数据更是有可能要在好几个Cache里同时存在。


这样的话,总线开销相比较而言是很大的,怎么办?


那么多Cache,即使我们不心疼存储能力的浪费,一致性怎么保证?


如果真正做出来,还要在主板上占多块地盘,给布局布线带来更大的挑战,怎么搞定?


如果我们选择多核单CPU,那么我们只需要一套芯片组,一套存储,多核之间通过芯片内部总线进行通信,共享使用内存。在这样的架构上,如果我们跑一个多线程的程序,那么线程间通信将比上一种情形更快。如果最终实现出来,对板上空间的占用较小,布局布线的压力也较小。


看起来,多核单CPU完胜嘛。



可是,如果需要同时跑多个大程序怎么办?每个程序都需要用很多内存怎么办?假设俩大程序,每一个程序都好多线程还几乎用满cache,它们分时使用CPU,那在程序间切换的时候,光指令和数据的替换就要费多大事情啊!


所以呢,大部分一般咱们使用的电脑,都是单CPU多核的,比如我们配的Dell T3600,有一颗Intel Xeon E5-1650,6核,虚拟为12个逻辑核心。


有少部分高端人士需要更强的多任务并发能力,就会搞一个多颗多核CPU的机子,Mac Pro就可以有两颗。高端的服务器一般都是多颗多核,甚至还高频率。


原文:https://www.zhihu.com/answer/18659825

免责声明:版权归原作者所有,如有侵权,请联系删除。





 关注微信公众号『混说Linux』,后台点击 关于混说 即可添加作者微信。

往期推荐

这些Linux命令你真的用对了吗?

拆解二战时期军用万用表,80多年前的万用表!

在美国当码农是一种怎样的体验?

说说Linux系统调用那些事儿


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存