超线程和Java线程_手机处理器为什么喜欢堆内核数量,不上超线程?

对手机和电脑硬件稍微关注的网友,会发现一个有意思的现象,手机SoC芯片发布会上,处理器内核数量是一个不可或缺的宣传点,哪怕只是一笔带过,也是一定要提一提的。

而英特尔、AMD的处理器发布会现场又是另一番风景,不仅要晒内核数量,还晒超线程技术,4核模拟8核,6核模拟12核等等。

敏感一点的网友可能已经看到问题点:手机处理器为什么喜欢堆内核数量,而不像电脑处理器那样,内核数量和超线程齐飞?

01线程与超线程:猪和豪猪的差别

一提到超线程,不少人容易把它和线程(Thread)划等号,其实两者完全不同,别看就差一个字,差别却犹如豪猪和猪的关系。

d3891b6ca0d5cb5b609e4b2cd5079425.png

线程属于软件的概念范畴,是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。打个粗浅的比喻,小朋友搭积木,搭积木的过程相当于“进程”,假设每次只拿一块积木,这个程就相当于“线程”。

为了让程序同时做很多事情,实现多功能,比如视频播放器,既要下载影像文件,又要播放视频,同时还能随时快进或暂停,就必须设计成多线程:一个线程下载文件,一个线程播放,另一个线程随时满足用户快进或暂停的折腾。

如此一来,一个视频播放器至少有三个线程,对应可以完成三个功能:下载、播放和用户界面。

处理器执行多线程时,离不开操作系统的指挥:隔一段时间,操作系统会让处理器切换到新的线程,以响应用户的需求。

线程的切换需要时间,但当处理器运行速度很快时,切换的时间会短到我们无法察觉,体验上就是使用程序没有卡顿感。

这种用操作系统执行多线程的方法,行业一般叫软件超线程。可见超线程和线程是两个概念,前者是运行的意思。

02硬件多线程:听老板下命令,不如自己干

软件超线程相当于老板命令新员工小王:

小王,该去倒咖啡了!小王,该送文件了!小王,该给市场部发邮件了!……

这种时时被命令的工作状态,时间一长,小王就会烦,工作效率变低。

软件超线程和这个大致相通,操作系统调度CPU执行多线程,会降低执行效率,而让处理器自己来执行多线程,程序执行的效率无疑会大大提高,于是硬件多线程诞生了。

硬件多线程里的代表性技术是同时多线程(即Simultaneous Multi Threading,简称SMT),工作原理是处理器同时发射多个线程的指令,这些指令可以并行乱序执行。

硬件同时多线程技术(SMT)听起来有点晦涩,其实原理并不复杂,相当于小王自己决定什么时候做什么,不用等老板命令。

Intel(英特尔)的SMT技术,执行效果类似于一个内核模拟两个内核工作,模拟出的这两个内核被英特尔称为逻辑处理器,也叫线程。但此线程(逻辑处理器)和上文的线程(软件)不同。

99edd81376be1b4ec625f5f15ed26175.png上图核心指内核,线程指逻辑处理器

在市场宣传上,英特尔为自己的SMT技术取了个很酷炫的品牌名字“Hyper Thread”,中文名叫“超线程”,但它和前面说到的“超线程”是两码事,是品牌名,类似于“BMW”译作“宝马”,但不是汗血宝马。

03内核和处理器:发动机和汽车的关系

硬件同时多线程技术本质是为了压榨处理器潜能,需要通过提升处理器的频率来提高执行速度,减少卡顿,但频率一高,处理器的功耗也会上升。

为了限制功耗,电脑处理器的最高运行频率一般不超过5G Hz,即使超过,运行的时间也很短,手机处理器的最高运行频率一般不超过3G Hz。

既然处理器频率没法放飞自我,那么提升性能的方法就只剩下增加内核的数量了,典型的是英特尔的酷睿处理器。

于是,多内核设计出现了,一个堆内核的时代终于来临。

多内核设计思路并不复杂,单核讲究单兵高素质(频率高),属于单打独斗,多核走人民战争路线,单兵素质稍低,但人海战术合性能也很可观。

现在消费端CPU的内核数量,一般是4到6个,而服务器CPU的内核数量,超过20个算小菜一碟。

fa6b4616dc10fbb833f0619de1df1f5e.png服务器CPU内部结构

那么,内核和处理器是什么关系呢?

完整的处理器包含了内核、缓存、内存控制器、I/O(输入输出控制)等部件,可见,内核只是处理器的一个最核心的“零部件”,处理器则是一个完整的产品,两者可以简单看作发动机和汽车的关系。

最后,把本文开头挖的坑填上:手机处理器为什么喜欢堆内核数量,而不像电脑处理器那样,内核数量和超线程齐飞?

答案是,超线程技术需要处理器高频率才能发挥优势,但高频率带来高能耗,手机电池根本扛不住,另外,超线程技术增加了手机处理器的设计复杂度,相应会拉高SoC芯片设计难度。

60396282ee8f3e81a2a38ef50579c0bc.png

更重要的是,手机应用程序相对电脑应用程序,功能简单,根本用不到多线程,也就用不上超线程技术。

基于上述总总原因,ARM吼了多年在处理器中运用超线程技术,最终也是光打雷,不下雨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值