cpu超线程 mysql_CPU工作方式、多核心、超线程技术

CPU 架构

CPU 中央处理器中有两个模块很重要 :

Processing Unit(运算处理单元),简称PU

Architectual State(架构状态单元),简称AS

PU一般就是执行运算,比如算数运算加减乘除。AS执行一些逻辑和调度方面的操作,比如控制内存访问等。

单核、多核CPU

单核:一般一块传统意义的CPU上会有一个PU、一个AS。

多核: 这里说的多核,是多个物理核,比如i3的双核,i5的4核(就是我们日常说的双核,四核还是八核)。这中架构下,每一个物理核都有一个PU和一个AS。所以。对于i3来说,就有总共两个PU,两个AS。对于i5来说,就有总过4个PU,4个AS。

超线程

超线程(HT)并不是我们一般说的多线程。我们一般说的多线程(multi-threading)是指程序方面的,简单的说就是‘软’的,代码级别的。而超线程一般指的是硬件架构方面的,是‘硬’的:通过调整AS而模拟出来的‘逻辑核’。

695777805abb8ef5a3aec25a7fee1b69.png

相当于调度开多了几个队列,但是实际上可能只有一个AS, 只是模拟出来的。

在下图中,橙色和蓝色表明大厨(PU/CPU)是在工作的,白色格子表明大厨(PU)是空闲的。A图是单核没有没有用超线程,B图双核没有超线程,图C是单核启用了超线程。可以清晰地看到,从单核增加到双核(在没有超线程的情况下),CPU使用率并没有增加。而用了超线程后,整体CPU使用率提高了,虽然只是一个核。就相当于之前只有一个队列接受任务,而现在有多个队列,吞吐量肯定大点。

cc8144722bac71cf4d6d529127ac2bb1.png

下面是一个更清晰的区别。

1dcba7d8c609b3e44d3316f296be7a4f.png

问题

那对与同一个CPU,比如i7,开了HT有什么优点:

并行能力增强:处理多进程/线程的能力加强,对于支持多线程的游戏提供比较明显。

CPU利用率增高:一般理论上,总体性能提高差不多20%-30%。从这个角度上看,i3开启了超线程,提高了20%-30%整体水平。但是,这就意味着能和i5打成平手了??? 如果这是真的话,i5也不要卖了。两个大厨(i3),不是我等拿个鞭子抽抽就能顶的上4个大厨(i5)的。。。。

开HT有什么缺点

单线程程序性能下降:

一般在5%-15%之间,主要表现在运行单线程程序。两个AS的额外开销比一个AS的开销要大,只有一个核。

与编程语言中多线程对比

我们学习java中也有多线程和这个是同一个东西吗?不是同一个东西。HT是结合硬件产生的多线程,而java中多线程是软件层面的多线程,那到底 java 可以创建多少个线程呢? 可以参考以下文章,可以看到一个JVM 在机器上可以起上万个线程。

参考文章

https://www.cnblogs.com/taiyonghai/p/7244878.html

https://www.one-tab.com/page/uH-YQxX8SmK4nj6EM7BWrQ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值