我们在选购电脑的时候,经常会听到一些“几核几线程CPU”的术语,比如四核八线程,八核十六线程之类的,那么这个所谓的几个核心和线程都是什么意思呢?请看下面介绍。
CPU的“几核几
前面的回答没有精确说明什么是线程、内核和处理器,以及它们之间的关系。所以,硬核补充一发。
线程属于程序的概念范畴,为了让程序能同时做很多事情,实现很多功能,比如浏览器既要能下载程序,又要能播放视频,同时我们还喜欢随时暂停视频播放、下载。简单说,要让程序能同时做很多事。
为此,现在的程序在设计时都被分成了多个线程(Thread),一个线程完成一个功能,上面说到的浏览器一般有三个线程,可以完成三个功能:下载程序、播放视频、用户界面。
处理器执行这些程序时,在操作系统的指挥下,会隔一段时间切换到新的线程,减少用户等待。由于处理器运行速度很快,线程切换的时间很短,因此我们常常感觉不到线程切换时的停滞感。
上图中直升机的螺旋桨旋转够快时,我们看到的是一个盘面,而不是几片桨叶;处理器运行速度很快时,我们也感觉不到线程切换的停滞感,体验到的是丝滑般流畅。
但这种多线程的执行是通过软件也就是操作系统来实现的,如果不经过操作系统下命令(调度),让处理器自己来完成这个工作,速度会更快,效率也会更高,于是硬件多线程诞生了。
硬件多线程里的代表性技术是同时多线程(即Simultaneous Multi Threading,简称SMT),工作原理是处理器同时发射多个线程的指令,这些指令可以并行乱序执行。
上面的话听起来有点晦涩,我打个比方:
硬件同时多线程技术(SMT)相当于快递分拣站一位身手灵活的小哥哥(CPU),可以一次抓取三四个包裹,然后快速将包裹分发给柜台前的张三、李四、王五等用户。
如果是软件多线程的话,需要快递分拣站经理站在小哥哥(CPU)旁边,告诉小哥哥该怎么做:抓三四个包裹,分给张三,分给李四,分给王五,每一步都需要下命令,小哥哥不能自主做决定,虽然能同时分发几个包裹,但效率明显没有硬件同时多线程高。
单线程更容易理解,张三李四王五在快递站外排队,小哥哥(CPU)发完张三的包裹,张三领着包裹出门后,李四才能进来领,王五依此类推。
Intel(英特尔)也有SMT技术,一个内核可以同时出理两个线程,模拟两个内核工作。模拟出的这两个内核被英特尔称为逻辑处理器。
我手头用着的笔电CPU为i5-5200U,有两个内核,利用SMT技术,可以模拟出4个逻辑处理器,即可以同时处理4个线程。
在市场宣传上,英特尔为自己的SMT技术取了个很拽的品牌名字“超线程”(Hyper Thread),这是一种市场推广方法。
在手机显示屏领域也有类似操作,三星电子生产的AMOLED屏幕,品牌名叫“SuperAMOLED”,它不是一种新的显示屏,而是一种品牌叫法。
我们要知道,硬件同时多线程技术是为了压榨处理器的潜能,还是离不开通过提升处理器的频率来提高执行速度,但频率一高,处理器的功耗也会上升。
既然处理器频率不能无限提高,那么提升性能的方法就只剩下增加内核的数量了。
这个思路并不复杂,单核是单打独斗,讲究单兵高素质,属于个人英雄主义,多核拼的是人多力量大,单兵素质稍低,但合起来性能也很可观,打的是人民战争。
现在的内核数量,在消费端CPU,一般是4到6个,而在服务器CPU上,内核数量可以轻松超过20个。
那么,内核和处理器有什么关系呢?
完整的处理器包含了内核、缓存、内存控制器、I/O(输入输出控制)等部件,可见,内核是处理器的一个“零部件”,处理器则是一个完整的产品,两者关系可以简单看作发动机和汽车的关系。
最后,说一个规律性的现象,同一架构下,内核数多的处理器,最高频率往往不高,内核数少的处理器,频率往往较高,这是为什么?欢迎在评论区留言。