能否推倒i7?AMD推土机CPU架构全解析
我们知道,在Core 2时代,AMD和Intel的CPU性能差距还不算太大。但Core i7问世之后,性能有了质的提升,其中贡献最大的非HT(Hyper-Threading,超线程)技术莫属。HT技术可以轻易地把4核虚拟成8线程,在任务管理器中看到的“8个核心”不仅仅是看着爽而已,它确实带来了不小的性能增益,进一步与AMD CPU拉开了差距。
● SMT同步多线程技术的工作原理
SMT(Simultaneous Multi-threading,同步多线程)的设计初衷非常简单,就是为了充分利用CPU物理核心的资源,防止运算能力被浪费。
左:没有超线程时的CPU处理过程 右:超线程模式CPU处理过程
一般情况下,CPU的物理核心只有一个执行线程,很多时候CPU核心会处在等待内存中关键代码或数据的状态,此时线程为暂停状态,核心运算能力被闲置。而SMT技术可以允许一颗核心运行两个或多个线程,当第一个线程暂停时,将第二个资源准备充分的线程安排给核心处理,这样动态切换的结果就是,CPU的运算能力得到了最大的利用。
简言之,SMT的设计理念就是用多个线程“喂饱”CPU物理核心,尽可能不让CPU运算单元闲置。
SMT是一种非常廉价的技术,因为CPU的物理内核并没有增加,只需要为CPU赋予两套架构寄存器和重命名寄存器即可,而这些寄存器并不会消耗太多的晶体管。最终在操作系统中的呈现方式,和物理核心没有区别,操作系统会把4核8线程的CPU当作8核CPU来使用,并安排运算任务。
四核八线程CPU在系统中就是“八核”的
SMT技术对那些CPU负载不是很高且支持多路并发处理的线程比较有意义,典型的比如文件压缩解压缩、视频编码解码等。如果两个线程都需要花费较长的时间等待内存和缓存准备数据的话,那么一个双线程SMT核心几乎就可以等同于一个双核处理器。
但SMT的效率根据应用的不同会有很大差异,如果内存和缓存的压力不大,CPU核心一直都在忙于处理线程的话,另一个线程迟迟排不上队,此时SMT核心的效率可能还不如单颗物理核心。这就是此前测试时关闭HT技术反而在部分项目中性能更好的根本原因,
根据Intel公布的数据来看,在真实的应用环境下,超线程技术能够给CPU带来20-30%额外的性能提升,也就是说一颗双线程SMT核心相当于1.2个常规核心的效能。