说起近年来CPU领域的进展,很多人都知道苹果的M1系列芯片、以及它取得了多少多少提升。相比之下,老牌CPU厂商英特尔的关注度却越来越低,最主要的原因就是这个牙膏厂挤牙膏的速度太慢了。

 

不过,在英特尔发布了最新的12代酷睿处理器之后,事情就完全不一样了。

 

国内外很多知名UP主都对它做了极其深入的性能测试,并且有点出乎意料地收获了几乎一边倒的好评。很多人甚至说,英特尔这次把牙膏挤爆了、12代酷睿会帮助英特尔重新走回巅峰。

 

如果你对电脑或者数码产品不是特别熟悉,可能会问:一个产品的正常升级换代,取得性能提升不是很正常的吗?

 

升级带来性能提升是正常的,但取得这么大的性能提升就不那么“正常”了,英特尔必然做对了什么事情。

 

所以问题来了,12代酷睿究竟做对了什么?究竟是一不小心走运挤爆了牙膏,还是发现了能够源源不断产生新牙膏的方法?

 

先说结论,我认为英特尔找到了一个新配方,能持续大幅提升芯片的性能。这个配方的名字,叫芯片架构的创新。而这个配方最重要的那味药,就是异构。

 

问题又来了,异构究竟是什么东西?它为什么能帮助12代酷睿取得了如此大的提升?更重要的是对于普通消费者来说,怎么才能用得上这种创新?对于我们来说又有什么具体的意义?今天的文章我们就来好好说说这些问题。

 

什么是异构

 

先来看看“异构”这个词到底是什么意思。从字面意思来看,异就是不同,构就是架构或者结构,所以异构其实就是“不同的结构”。它的反义词是同构,也就是“相同的结构”。

 

如果你没听说过这两个词也完全没关系,其实在我们日常生活中关于异构和同构的例子是有很多的。就拿我们家里的装修和收纳举例,以前很多房屋装修都是同样的风格,看起来像是一个模子印出来的。收纳也很简单,比如厨房里都用一样的四四方方的橱柜,去收纳各种锅碗瓢盆。这其实就是同构。

 

但是我们在实际应用中就发现,这种结构并不好用。因为我们有各种各样的锅碗瓢盆,放在同样的橱柜里就会导致有的地方放不下,有的地方却太空了。所以很多现代化的装修,都是针对不同的厨具去针对性的设计收纳空间,并且能最大限度的利用空间。这种方式其实就是异构。

 

同样的例子还有很多,比如一列火车里有一等二等餐车卧铺这样不同的车厢,而不全都是相同的座位,这就是一种异构。我们吃的饭也有川菜粤菜汉堡炸鸡这样不同的菜系和品种,而不都是大锅饭,所以这也是一种异构。

 

所以从广义上来看,只要不是同构,就是异构。

 

但是,异构其实还有更进一步的意思。比如机场的行李管理系统,会把行李按照不同的航班进行调度,同一个航班,也会按舱位的不同进行先后处理。比如我们在等行李的时候,头等舱的行李会先出来,而我们坐经济舱的往往要等很久才能等到自己的行李。这里其实就是在异构这个概念里,增加了优先级和调度的概念。也就是说,由于结构的不同,对它的处理和应用的方式也是不同的。

 

再拿前面的厨房收纳来举例,我们会把盘子放在橱柜的抽屉里,但是应该先放大盘子、再放小盘子,这样才不会倒。放玻璃杯的时候,抽屉肯定就放不下了,所以应该放在杯具专用的地方,可能很窄很高,正好能放下杯子。所以这些不同结构的橱柜和抽屉,就组成了一个异构的收纳体系。

 

回到前面的问题,我们为什么要用异构呢?和同构相比,异构更加高效,每个部分各司其职,就像玩游戏的时候用的一套连招,能够最大限度地发挥它的力量。

 

但使用异构的另一方面原因,其实是由于当技术发展到一定程度的时候,不可避免的遇到很多限制。很多年前,传统地提升CPU性能的方法,就是堆料,也就是不断增加CPU核心的数量,从而让性能随着核心数的增加而线性增加。多核架构在十几年前就是非常热门的研究方向,人们认为,只要能够编写和运行并行软件,就可以将处理器架构直接扩展到数千个核心。

 

当然了现实总是非常残酷。在之前的文章里介绍过,当时还在德州大学奥斯丁分校的道格博格尔教授写了一篇文章,研究并提出了所谓的“暗硅效应”。

 

 

它说的是虽然可以不断增加核心数量,但由于功耗的限制,我们却无法让这些核心同时工作。这就像一个大楼有很多房间,但由于供电量有限,我们无法同时开启每个房间的灯,这就让这个大楼在夜里看起来有很多黑暗的部分,这也是暗硅这个词得名的原因。

 

暗硅效应的提出,完全改变了芯片产业发展的方向。人们意识到即使不断的堆核,并且开发出了并行软件,这种同构的方法带来的性能提升也会非常有限。所以异构计算就应运而生了。事实上,在计算机领域,异构计算是一个近年来非常热门的方向,就是因为异构计算能够充分利用CPU、GPU、FPGA、ASIC等等不同芯片结构的特点,相互取长补短,从而实现更加高性能低功耗的计算系统。

 

对于CPU设计本身,也慢慢出现了异构的方法。比如手机的处理器绝大多数都是基于ARM的架构,它就采用了大小核的设计。在苹果的M1芯片里,也采用了类似的设计方法。这些都不是新鲜事儿了。

 

但是新鲜的是,在x86架构的CPU里,12代酷睿Alder Lake是第一次尝试了这种性能核+能效核的异构方法,结构就取得了非常好的效果。

 

硬件异构:两种不同的内核

 

Alder Lake最主要的特点,就是采用了性能核+能效核的架构设计。它最大的特点就是有很强的扩展性和灵活性。

 

 

比如全系列Alder Lake都是采用了相似的设计,不管是台式机、笔记本还是超轻薄的商务本,CPU架构都是相同的,只不过两种类型的核心数量有区别。比如桌面端CPU最高可以支持8个性能核、8个能效核,面向笔记本的12代酷睿又分成了HPU三个子系列:H系列面向高性能移动平台,可以支持4~6个性能核、4~8个能效核,最多14核20线程;面向高性能笔记本的P系列也是如此,性能核支持2~6个,能效核都为8个;而主打轻薄笔记本的U系列,最多支持2个性能核、8个能效核。使用这样的设计,就能根据特定的应用场景,针对性的配置芯片核心的数量和种类,以取得性能和功耗的平衡和优化。

 

Alder Lake的能效核代号为Gracemont。值得注意的是,它并没有采用业界通用的“低功耗”内核的这个说法,而是称为“高能效”,这其实代表着Gracemount能够很好的平衡性能和功耗这两个非常重要但貌似相互矛盾的性能指标。

 

 

在之前架构日的文章里详细介绍过,Gracemount在架构设计上也有很多创新和进步,比如在前端设计里采用了64KB指令缓存,并且进一步优化了分支预测单元。此外它还包含了两个3宽度的乱序解码器,这也是英特尔能效核的主要特点,它不仅可以单周期完成高达六个指令的解码,也可以在两个解码器集群之间做负载均衡和乱序执行,进一步提升操作的并行性,从而提升性能。能效核的后端也提升了宽度,并且集成了多种整型、浮点型、还有向量运算单元,支持不同形式的运算和指令集扩展。

 

对于性能核来说,提升就更明显了。Alder Lake里的性能核代号为Goldencove,它的设计目标非常明确,就是对单线程性能的极致扩展。比如它前后端的流水线、执行单元、乱序窗口、片上缓存和存储系统都采用了更宽和更深的设计,它还集成了机器学习的方法,来更智能的做分支预测和流水线资源的释放,进一步提升系统的吞吐量。

 

 

打个简单的比方,如果我们把CPU比作水龙头,指令和数据就是水龙头里流的水。这次性能核就把水龙头的水管做的更宽了,口做的更大了,而且加入了很多智能化的水量控制系统,就让整体的流量变的更大了。

 

12代酷睿是英特尔首个采用混合架构的CPU产品,除了性能核与能效核之外,它还集成了对DDR4和DDR5等种内存架构的支持,也支持Wifi6E、Thunderbolt4、PCIe5.0x16等等这些最新的接口和数据传输技术。所有的这些单元都是以模块化的方式进行集成,这样和异构的内核一起,进一步提升了CPU架构的扩展性,也能非常灵活的应对不同终端的实际需求。

 

对异构的软硬件支持

 

有了不同的处理器内核和硬件模块其实还不够,为了组成一个高效运转的异构芯片,同样重要的其实是如何把它们充分利用起来。

 

再拿我们装修房子的例子,就算按现代的标准装修了整间屋子,如果住的人不知道怎么用,把东西到处乱放,那么到头来屋子里肯定还是一团糟。这个时候我们可以咨询专门的收纳师,或者直接请他们来帮忙进行收纳。

 

芯片设计也是这样,这里的收纳师,其实有两层,一个是调度器,另一个是操作系统。在12代酷睿里,英特尔特别提出了一个叫做线程调度器的结构。这也是一个全新的结构,我总结了它的3个主要特点。

 

 

首先,它存在于操作系统和内核架构之间,能在纳秒级别、非常精确地监测线程和内核的运行情况。然后根据这些信息,它能为操作系统提供动态反馈,从而帮助操作系统做出最优的调度决定。最后,它可以可以对工作负载做实时分析,确保第一时间把正确的线程分配到正确的核心。

 

比如对于性能要求比较高的应用,就会被优先放在性能核上运行,一些后台任务就会被放在能效核上运行,从而实现多任务的并行处理。如果这个时候有优先级更高的高性能应用出现,线程调度器也可以帮助操作系统来决定,将性能核上的哪些线程转移到能效核上运行。整个调度的过程都是动态完成的,可以根据不同的应用灵活变化,不依赖某种固定的调度算法。

 

有了硬件调度器,软件开发者就不需要纠结如何进行线程调度和资源分配了,也不需要修改已有的代码去支持12代酷睿的异构架构。同时,使用专门的硬件单元去做线程和内核的调度,也可以更好的保证调度的性能和准确性。

 

当然了,操作系统还是需要对这个硬件调度器进行深度适配的。微软新推出的Windows11,就有对线程调度器的优化支持,这个其实也是windows11的一个重要特性。

 

所以有了软硬件对异构的支持,就可以充分发挥异构的优势。就像前面提到的机场的行李管理系统一样,这其实是一种进化版的异构,可以根据优先级进行任务的合理调度和资源分配,并且带来多任务的处理优势。

 

除了H系列之外,12代酷睿还有兼顾性能和功耗的P系列、以及面向低功耗的U系列,分别适合轻内容制作和对移动办公有刚需的人群。

 

结语

 

总之,异构就是12代酷睿取得大幅能效提升的最主要原因。它不仅有能效核+性能核的混合设计模式,还有配合它进行性能释放的线程调度器和操作系统的支持。有理由相信,这种异构的模式也将会成为未来CPU芯片设计的主流趋势。

 

(注:本文不代表老石任职单位的观点。)