cpu、socket、core、thread 等术语之间的关系

当我们在看技术文档时,经常会发现很多有关 cpu 的术语,比如 cpu、cpu socket、cpu core、hyper-threading 等,乱乱的分不清楚,这篇文章我带大家用三分钟时间,快速的过一遍各种术语代表什么,以及它们之间的关系。

一、CPU

cpu 全称是 central processing unit,中文又叫中央处理器,是用来执行我们的代码,处理各种逻辑的地方,它可以被称之为计算机的大脑。

现在 cpu 的概念已经比较宽泛了,在不同的语境下通常表示不同的意思,不过如果我们没有指定语境,通常 cpu 就是指这个:

二、CPU socket

如果我们自己组装过电脑的话,应该知道 cpu 是通过一个插槽安装在主板上的,这个插槽就叫做 cpu socket,它长这个样子:

三、Core

core 的中文意思是核心,它就是我们平时说的,一个 cpu 中有几核的核的概念。

其实在很久之前是没有 core 的概念的,一个 cpu 就是一个完整的物理处理单元,之后由于多核技术的发展,cpu 的概念转变为了一个容器,而 core 则变成了真正的物理处理单元

一个 cpu 中可以有多个 core,各个 core 之间是相互独立,且可以并行执行逻辑的,每个 core 都有自己单独的寄存器,l1、l2 缓存等物理硬件。

四、Thread

由于 cpu 的执行速度非常快,而其他部件相对来说又比较慢,所以 cpu 经常会处于空闲状态,为了充分利用 cpu 资源,intel 又在 core 的基础上提出了 hyper-threading 概念,即一个 core 里可以模拟多个逻辑核,这个就叫做 thread

与 core 不同是,thread 并不是一个物理概念,而是一个软件概念,它本质上就是利用 core 的空闲时间,来执行其他代码,所以 thread 其实只能算是并发,而不能算是并行。

thread 和以上术语的关系是:

五、vCPU

在我们购买云服务器的时候,经常会遇到一个概念叫 vCPU,比如下面这样:

这里的 vCPU 其实就是指的虚拟核,也就是上面的 thread。

六、实践

在 linux 下,我们可以通过以下命令来查看当前机器的 cpu 拓扑结构:

由上可见,该机器的主板上有一个 cpu 插槽(socket),这个插槽上的 cpu 有 2 核(core),且每核上又有 2 个线程(thread),也就是说,这个机器是 2 核 4 线程的。

上图中 thread 总数是用 cpu 来表示的,这也是为什么上文说,cpu 是个比较宽泛的概念,在不同的语境下有不同的定义,这里表示的就是逻辑核,也就是 thread。

如果我们只想查看该机器上有几个逻辑核,不想看其他数据的话,也可以用下面的命令:

其实在 cpu 的拓扑结构中,并不只有上面的几个概念,还有很多其他术语,只不过是我们比较少看到。

这些术语可以通过 lscpu 的 man 文档查看:

转载:三分钟速览cpu,socket,core,thread等术语之间的关系 - 知乎 

(SAW:Game Over!)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值