APP下载

为下一个创新时代奠定基础 2021年英特尔架构日技术解读

2021-10-29徐昌宇

微型计算机 2021年18期
关键词:线程解码英特尔

徐昌宇

8月19日,2021年英特尔架构日大会正式召开。架构日是英特尔向外界展示其新技术和新产品的例行窗口,今年的大会内容更是特别丰富,英特尔几乎倾囊而出,将自己在消费级CPU、GPU、服务器CPU、并行计算产品以及各类配套软硬件技术方面的积累都向外界进行了详细介绍,可谓是“干货满满”。本文将选择一部分重要,且和普通消费者关系比较密切的内容进行详细介绍。

此次发布会堪称近年来英特尔最重要、内容最详实、涉及面最广以及影响力最大的技术发布会。英特尔在会上提出了针对标量、矢量、矩阵、空间四大基础计算架构相关的处理器和封装、互联技术、内存技术、软件技术和架构等六大关键技术领域的创新。

在这些技术背后,英特尔的目标是在2025年实现相对于现在产品1000倍的性能提升。“1000倍”这个数字听起来非常不可思议,但实际上英特尔指出,计算机系统的性能提升是一个乘数关系,如果上述处理器和封装、互联技术、内存技术、软件技术和架构的每一个部分(处理器和封装算作一个部分)都实现4倍的性能提升,最终整个系统在理想情况下就将实现4的5次方的|生能提升,也就是1024倍,这也就是1000倍性能提升的来源。

为了达到这个目标,英特尔在2021年带来了11个全新的产品和技术,其中大量创新性技术英特尔还是首次给予详细介绍。

此次发布会的重头戏自然非Alder Lake莫属,它是英特尔采用“大、小核心混合”设计的产品,搭载基于Gracemont架构的能效核以及基于Golden Cove架构的性能核,下面我们就先来看看这两种架构都有哪些技术亮点。需要提醒大家的是,英特尔的本次发布会全程采用直播方式进行,并且对处理器的大量新技术介绍已经非常详细,部分不是很重要的内容,本文就不做深入讲解,而是重点向大家展示一些背后的技术、重要的设计和有趣的对比,感兴趣的读者不妨在阅读本文的同时观看英特尔的发布会视频,效果更佳。

全新的能效核:英特尔Gracemont架构解析

英特尔在小核心(也就是高性能功耗比核心)上的研发有非常深厚的技术积累。早在2008年,英特尔就面向当时流行的上网本等产品发布了Atom系列处理器。该系列处理器一直以来并不以性能为第一优先目标,而是更注重能耗控制,早期的产品在架构设计方面采用的是较为简单且节约面积的双发射、顺序执行架构,性能有限。不过随着生产工艺的发展,英特尔开始在这个系列中加入更多的资源和功能。

2019年,英特尔推出了当时最新的Tremont架构。Tremont产品在内部架构上做出很多调整,前端包括2个3宽度的解码单元,在理想条件下可以实现6发射宽度——这可是x86处理器首个6发射产品,同期SunnyCove只有5发射。Tremont后端执行部分采用乱序设计并加强计算资源等。得益于规模加强,在CINEBENCH R20和R15两款测试软件中,Tremont基本上都能达到了Skylake或Zen 2架构性能的80%~95%——这实际上和很多人印象中“该系列性能孱弱”的认知是完全不一致的。

在Tremont之后,今年英特尔发布的产品就是本文的主角之一:Gracemont。在英特尔之前的路线图中,Gracemont是Tremont的继承者,隶属于Atom家族。不过本次发布会上,Gracemont有了一个全新的名称:Efficient x86 Core,也就是效能x86核心。前文讲解了这么多关于Tremont的内容,主要是简单描述英特尔这个系列架构的发展历史,并引入

五大部分和三大特性:Gracemont的宏观结构

英特尔在本次发布会上明确指出,Gracemont采用了高度可伸缩的架构以满足未来十年高效率吞吐数据的需求。鉴于此,Gracemont需要满足下列四个目标:

1.极高的能效比

2.芯片尺寸较小且可大幅度扩展

3.支持矢量和AI计算

4.具有极宽的频率范围

通过仔细观察英特尔的设计目标我们可以发现,Gracemont对能耗比、扩展能力有较高要求。另外和之前的Atom系列产品不同的是,Gracemont加入针对高级矢量扩展、AI计算方面的支持,这一点是非常特殊的。一般来说,小核心架构通常避免加入类似矢量计算这样的计算密集型设计,因为小核心架构的内部设计和资源布局不适合运行这些内容。然而,英特尔在Gracemont中加入矢量计算的内容,显示出它并非单纯偏向于能耗比考虑,其架构设计时考虑更多的是达到使用中的平衡。最终,Gracemont既可以在低电压、低频率下以极低的功耗运行,可以应用在包括一体机、ATM机、机顶盒、平板设备这类对功耗非常敏感的设备上,同时它也能以极高的频率和性能来面对高功耗负载。

这使得英特尔在Gracemont架构的设计阶段就必须兼顾这两者。事实上这是有一定难度的,毕竟要提升性能功耗比,往往就会使用较短的流水线,但是要提高频率,流水线级数又不能太短,英特尔在这里的平衡是非常独到的。

在架构设计部分,Gracemont被划分为五大区域,分别是前端、乱序执行引擎、标量引擎、矢量引擎和内存系统。英特尔提到,Gracemont的设计特点是更深且按需要长度解码的前端、更宽的后端、大量执行端口以及為Intel7工艺进行的全面优化。

前端:3+3的解码器设计,相比上代大幅度加强的架构

先来看看Gracemont前端设计的基本情况。Gracemont的前端设计实际上和之前的Tremont存在很高的相似性,但又显而易见地进行了极大加强。从架构简图来看,前端设计包含双IP Queue,紧跟着64KB的指令缓存,接下来则是Bypass(旁路)模块和本次介绍的重点OD-ILD (on-demand instruction length decoder,按需指令长度解码器)。接下来数据会进入指令数据(instruction data)单元后,再被送入两个3宽度的解码器,最后进入微指令队列(uop queue)中。此外,在分支预测方面,Gracemont拥有I-TLB和I-cache Tag,另外还有大幅度加强的分支预测单元。

仅从架构图来对比,我们可以看出在前端设计方面,Gracemont相比Tremont有显著加强。Tremont缺乏的单元包括OD-ILD、Bypass、uop queue。在分支预测单元部分,Tremont只有指令拾取和分支预测单元,这相比Gracemont大幅度加强的分支预测单元来说还是弱了一些。那么,Gracemont增加的这些单元都有哪些作用呢?

从宏观角度来看,Gracemont前端增加的部分大幅提升了有效指令流的吞吐量,这与Gracemont整体设计目标和后端规模提升是相匹配的。首先,Gracemont加入更大的指令缓存,其指令缓存容量为64KB,相比Tremont的32KB指令缓存实现容量翻倍,这也是目前所有x86处理器中使用的容量最大的指令缓存,这种设计可以存储更多的指令,在提高效率的同时还能降低内存频繁读写,以降低能耗。

Gracemont的OD-ILD单元是本次设计的一个亮点。我们知道,x86本身指令编码非常频繁且不固定长度,在最坏的情况下,经过编码的指令长度可达15个字节,对这么长的指令预解码是一个非常耗费资源的线性操作,并且同样由于x86指令长度不等长,处理器也不可能在这个指令预解码完成之前就去寻找下一条指令。一般来说,处理器要知道一个指令编码包含什么内容、有多长,是否和后续指令相关,基本上要处理完指令的一大部分内容,这非常耗费时间和资源。因此,对高性能x86处理器而言,设计人员会设计一个较大的微操作缓存,将大量指令解码的信息存储在微操作缓存中,下一次遇到同样的指令就不用解码,直接从微操作缓存中取出预解码信息或者指令解码的结果就可以了。

不过微操作缓存的成本不低,实际效能也受到很多因素影响,所以如果不是特别追求性能的高性能核心,一般也不会使用。因此,Gracemont和之前的Tremont都没有微操作缓存,每次遇到相同的指令都需要重新解码,但这仍然存在一定的优化空间——Gracemont加入了一个名为OD-ILD也就是按需指令长度解码器的单元。该单元的作用是可以生成预解码信息(预解码信息包含指令的长度和边界等内容),并且存储在64KB的指令缓存中。这使得系统第二次遇到类似的代码时可以直接提出之前的预解码信息,节省时间和周期,也能够起到大幅度提升解码器效率的作用。当然,虽然英特尔在这里的设计看起来像是一个“没有物理缓存的微操作缓存”,但OD-ILD配合旁路单元、指令缓存存储的只是预解码信息,与真正的微操作缓存还是存在性能差距的。

再来看看Gracemont的分支预测部分。Gracemont的分支预测器现在可以支持所有缓存级别,它增加了可以存储5000个条目的分支目标缓存,并且可以根据长期历史数据对分支预测进行优化,生成准确的指令信息。这种设计还能尽早发现错误的内容,并且进行优化和纠正。英特尔认为,包括网络浏览、数据库和数据包处理等任务都会受益于这个分支预测器的加强。实际上,英特尔之前在Tremont上就采用了大幅度加强的、酷睿级别的分支预测器,在Gracemont上则是进一步扩大规模,并提高性能。

Gracemont的第三个亮点则是继承于Tremont的双3宽度的解码器。根据之前英特尔的介绍,在最理想的情况下,Gracemont的双3宽度解码器能够实现每周期解码6条指令,并且保持和一些较窄的解码器相同的能耗。不仅如此,英特尔还为Gracemont加入了硬件驱动的负载平衡器,它可以将长链的顺序指令直接插入切换点,保证两个解码器能并行工作。此外,Gracemont还为前端加入了微指令队列单元,这样可以实现指令排序进入后端执行部分,效能更高。

后端:更大的规模,更强悍的性能

在后端部分,Gracemont的3个重要特性是5个宽度的分配(allocation)和8个宽度的退回(retire)、256条目的乱序执行窗口以及17个执行窗口。接下来我们一起来详细了解这部分内容。

首先来看乱序执行窗口大小。在Gracemont上,这个数据是256条目,超过Skylake和Zen 2的224条目,和Zen 3站在同一水平线上,更大的乱序执行窗口搭配更多的后端单元有助于更高效率地填充指令。显然,随着处理器性能越来越强,未来乱序执行窗口还会进一步增大下去。

高达17个执行窗口是Gracemont最重要的改进之一。在上代产品Tremont上,这个数据仅为7。不过Tremont很多执行单元都是多功能的,但更多端口、更强大的后端设计也意味着Gracemont在性能方面可以达到更高的高度。最终性能评价方面,理论上Gracemont在很多方面都能达到前代Tremont的翻倍或者更高。比如Gracemont的整数性能每周期可以解析或完成两个分支,这是Tremont的两倍,矢量方面相当于拥有3个支持SIMD的ALU,比Tremont多1个,并且两个独立的FADD和FMUL管道可以每周期完成两个独立的加法和乘法计算,也在Tremont的基础上实现翻倍。在指令集支持方面,Gracemont基本达到了Haswell架构的水平。根据英特尔的介绍,Gracemont可以支持AVX2指令集,并且加入了為AI加速设计的AVX-VNNI指令集,以及一些新的安全或侧信道技术,比如控制流执行技术等,从这个角度来看,Gracemont在执行端和ISA方面的设计还是非常充裕的。

缓存与内存子系统:最大4MB L2设计

Gracemont的缓存与内存子系统得到重大的改进。在端口方面,Gracemont的AGU端口现在增加至4个,这意味着每个周期可以完成两个加载和两个存储,总计4个操作。在之前的Tremont上,由于只有两个端口,每个周期要么完成两个加载或存储,要么1个加载和1个存储,整体效能比Gracemont差了不少。在缓存方面,后端拥有32KB数据缓存,其指针追踪延迟为3个周期,此外还支持64个outstanding misses(和缓存未命中后的工作机制有关)。

一般情况下,缓存未命中就要去下一级存储单元中查找信息(一般是L2或者内存),在这个过程中,对流水线来说缓存是不可以访问的,除非查找到信息并返回,这就意味着数据查找的过程会浪费大量时间。outstanding misses改变了这种死板的工作流程,它允许即使缓存未命中要去内存查找信息,流水线还可以继续使用缓存并查找其他的信息。Gracemont目前支持64个outstanding misses,部分同类型的处理器一般只支持20个左右。因此在缓存未命中时,Gracemont应该能展示出更好的性能。

在L2缓存方面,英特尔的数据显示,一个集群中的4个Gracemont核心将共享最多4MB L2缓存,其延迟为17个周期。共享的L2支持每个内核每周期64字节的读写操作,英特尔认为这样的设计足以满足Gracemont这类能效比核心的需求。另外,Gracemont的L2缓存也支持64次outstanding misses,但需要在所有4个核心中共享。

性能:超越Skylake约8%

英特尔给出了一些Gracemont的性能数据。数据显示,使用Intel 7工艺的Gracemont对比使用14nm工艺的Skylake,在1CIT的情况下,Gracemont要么同等性能降低大约40%功耗,要么同等功耗提升40%的性能。另一个比较值得关注的则是多线程测试,使用Intel7工艺的4C4T的Gracemont集群,对比14nm工艺的Skylake 2C4T配置,要么同等性能的Gracemont集群降低大约80%功耗,要么Gracemont集群在功耗更低的情况下,提供超出2C4T Skylake配置的性能高达80%以上。

在这里需要注意的是工艺。由于工艺不同,单个Skylake核心的面积和拥有4个Gracemont的集群几乎一样大。一些第三方数据显示,在CINEBENCH R20测试中,Gracemont的单核心性能大约是478,相比之下Skylake架构的酷睿i7-6700K大约是443,这意味着Gracemont的单核心性能大约比Skylake的某个版本高出了8%。考虑到前文曾提到Tremont的性能大约是Skyla ke的80%~95%,那么在综合测试中,Gracemont可能获得了相对Tremont大约30%左右的性能提升。

Golden Cove架构解析

从发展历程来看,Golden Cove是Willow Cove的继承者,但是相比Willow Cove,Golden Cove是一个显然更宽、更深和更聪明的架构,英特尔宣称Golden Cove的设计目标就是实现更高速度、更低延迟和更优秀的单线程性能。其重要特点包括对大型代码和大数据量计算的优化、新增的AI协处理器以及新增的细粒度功率管理智能功耗控制器等。

英特尔将Golden Cove分为8个部分来介绍,分别是前端(指令拾取)、微指令排序、乱序执行单元、矢量引擎、标量引擎、全新的矩阵扩展单元以及全新的PM控制器,最后则是内存单元。值得注意的是,面向消费市场和企业级市场的Golden Cove存在一定差异,比如消费市场就全部禁用AMX(矩阵扩展单元),只有企业级市场的Sapphire Rapids才有这项功能。

前端:首个6发射x86处理器

纵观英特尔数年来的架构设计,他们对前端的改动是非常慎重的。尤其对于高性能核心来说,前端的设计就像龙头,有牵一发而动全身的影响。回顾历史,从2006年发布的Conroe架构开始,英特尔就维持了前端“1个复杂解码+3个简单解码”的4发射的设计,一直到2014年的Broadwell,8年没有变化。之后英特尔在2015年发布的Skylake上做出改动,它采用了新的“1个复杂解码+4个简单解码”的5发射前端,然后一直沿用到Sunny Cove,这—次又维持了大约7年。

现在,英特尔在Golden Cove上再次增加了1个简单解码器,变成“1个复杂解码器+5个简单解码器”的设计。Golden Cove现在实现了6发射的前端,这是x86处理器设计中第一个真正意义上的6发射前端,也是目前x86处理器设计的难点。英特尔似乎解决了这一技术难题,但也有一定代價——Golden Cove在微架构遇到错误的预测时会增加一个周期,从之前的16周期上升至17周期,但英特尔没有透露新增了一个解码器会对性能带来多少直接提升以及新增解码器工作的细节内容。一些比较明显的改善是:在前端发射宽度增加至6个宽度以后,前端获得带宽也从之前的每周期16字节翻倍到32字节。

另外,英特尔在前端解码方面也并非全部依赖6宽度的解码器。英特尔提到,在80%的时间内,前端解码器都受制于时钟门控。在这种情况下,微指令缓存起到决定性作用。考虑到前端更大、更宽,英特尔大幅度增加了微指令缓存的性能和宽度。新的微指令缓存输出的能力从之前的每周期传递6个微指令提升至8个,并且现在可以存储的条目数量从之前的2.25K提升到4K,这些改变都大幅增加了命中率和带宽。其中,条目数量的提升可以大幅提高微指令缓存的使用效率,这和AMD在Zen2、Zen 3架构中的做法是基本类似的。在微指令队列方面,在单线程的情况下,新的设计能够提升144条目的队列,是之前的70条目的两倍多。在双线程的情况下,每个线程都可以获取72条目,相比之前的70条目略微提升。

最后再来看看前端的指令TLB和指令缓存部分。对于4K TLB,新的设计可以容纳256条目,是之前128条目的两倍。对2M/4M较大的TLB,新的设计可以容纳32条目,也是之前16条目的两倍,尤其是2M/4M TLB的改进,带来了较大代码效率的显著提升。另外,L1指令缓存的容量没有提升,依旧是32KB,但是增强了代码预取功能。分支目标缓冲区的条目也从之前的5K提升到了12K,这是迄今为止x86处理器中最大的分支目标缓冲区条目(Zen 3为6.5K,Cortex-A77为8K),这对现代处理器来说是非常重要的。英特尔还提到自己在分支目标缓冲区加入了机器学习算法,可以智能地扩大或缩小规模,能够自动关闭部分缓冲区以节约电能。

总的来说,上述所有针对分支预测的改进都能够提升分支预测的效率,隐藏未命中延迟,提高分支预测的准确性以减少跳转的误预测,最终实现性能上的提升。

乱序执行:更宽、更深、更聪明

在中核也就是OoO引擎方面,Golden Cove也有很大的變化。由于前段的解码从之前的5个宽度进化至6个宽度,因此中核也随之改进至6个宽度,每周期能够维持6 IPC的微指令发射规模,相比前代进一步提升。另外,英特尔宣称他们在分配阶段执行了一些简单的指令,减少了需要发送到后端执行的内容,可以节约后端执行资源,但并未透露太多。

在乱序执行窗口方面,Golden Cove的重新排序缓冲区(ROB)容量从之前Sunny Cove的352大幅度提升至512,这比AMD的Zen 3架构大了一倍有余,仅低于苹果的Firestrom微架构(630)。一般意义上,增加ROB的容量超过一定范围后会带来边际递减的效果,且同时会大幅度增加功耗。不过苹果的案例说明还是有方法可以实现性能的大幅度提升,英特尔应该也找到了这个关键之处才有信心大幅度增加ROB数量。乱序执行的后端部分则是执行窗口,Golden Cove现在拥有12个执行窗口,相比之前的产品增加了2个。这部分内容下文还有详述。

全面加强的执行引擎部分

英特尔在执行引擎部分分为三个模块,它们分别是矢量引擎、标量引擎和全新的高级矩阵扩展(英文简称AMX)。

在标量引擎方面,Golden Cove新添加了10号端口用作ALU和LEA计算,因此现在有00、01、05、06、10五个端口可以实现标量计算。值得注意的是,所有这五个执行端口后的功能管道都是复合设计的。经过增加一个新的端口后,Golden Cove的标量执行端口现在堪称x86中最宽的。

在矢量单元方面,Golden Cove在端口01和05上添加了2个新的FADD功能,相比之前的FMA单元,FADD的效率更高且延迟更低。另外,FMA单元现在可以支持FP16和复数计算了,05端口的FMA单元可以执行AVX512计算。英特尔特别指出,FADD执行浮点加法只需要3个周期,在一些背对背浮点计算(back-to-back floating-point)中,这个周期可以降低至2个。相比之下,上代执行浮点计算的FMA在端口00和01上有4周期延迟,05上有6个周期的延迟。相比Gracemont和GoldenCove前端上的改进,英特尔在后者执行单元的改进似乎显得比较保守,这可能是英特尔在内部资源方面做出又—次平衡的结果。

缓存与内存子系统:提高并行性

为了配合前端、中核和执行单元的改进,Golden Cove的缓存与内存子系统也进行了改进,变得更宽和更深了。对L1缓存而言,新增的11号端口增加了一组AGU和读取单元,这样每周期可以加载的次数从两次提升到了3次,其中,对于256bit的数据也就是AVX2 256,每周期可以加载3次,提升了50%;对于512bit的数据也就是AVX 512,每周期可以加载两次。

英特尔还提到L1的深度方面的改进,但是没有具体的数据,其主要变化在于加载缓冲区和存储缓冲区尺寸的提升,这些改变都更有利于提升内存级并行的性能。智能化方面,新的设计降低了读取延迟,并实现了更快速的内存消歧——所谓内存消歧,是指乱序执行微处理器不按照程序顺序执行内存访问,而是使用为处理器内部的数字逻辑和真实的依赖关系等,这种技术能够实现更大的指令集并行。

在L2的改进方面,由于英特尔的一个架构要同时面向消费市场和企业级市场,因此在L2的设计上存在一些差异。对于消费市场而言,L2缓存每核心为1.25MB,考虑到企业级市场对性能要求更为敏感,L2缓存提升至每核心2MB。在性能方面,L2缓存将并行处理的未命中指令数量从之前的32提升至48。在智能化处理方面,L2缓存现在加入诸如基于反馈的预取节流、全行写入带宽预测优化、基于多模式的路径预取器等功能。

最后再来看一些有关新的PM(Power Management)控制器的内容。英特尔对宣称可通过内核自主、细粒度和电源管理技术,实现额外的性能。对于新的PM控制器,英特尔称它可以将监控的间隔从毫秒级提升至微秒级,并根据实际应用行为来加强功耗预算利用率,最终可以提升性能。这里展示出英特尔对处理器核心和内部结构更为精细的电源控制,能够在更短的时间内瞬间提升处理器部分结构的频率和电源供应,以实现更好的性能,这是智能化电源管理的重要突破。

性能:综合提升19%

英特尔对Golden Cove的性能做出了一个预览,其平均性能提升19%,对比的是Alder Lake的性能核与Rocket Lake的Crypress Cove架构,两者频率都锁定在IS0 3.3GHz。从数据可以看出,Golden Cove在一小部分测试项目中告负于Crypress Cove,但是在其他所有剩余的项目中都领先Crypress Cove,最大领先幅度达到60%,平均领先幅度为19%,这是英特尔近年来代际提升中最大的数值之一。Golden Cove如此高的性能提升,应该主要归功于前端的大幅度加强,包括6个宽度的发射单元、微指令提高了25%的输出宽度以及更深的乱序执行缓冲区等。但是在后端执行资源方面Golden Cove改进没有那么明显,这很可能是英特尔下一代架构要做的事情。

AVX 512:Alder Lake不再支持

在谈论硬件线程调度器之前,在ISA方面还有一些内容需要厘清。现在英特尔明确宣布,面向消费级市场的Alder Lake将不再支持AVX 512。其主要原因是Gracemont仅支持AVX2,即使Golden Cove支持AVX 512,那么在最终组合成Alder Lake的时候,也必须关闭Golden Cove的AVX 512功能以实现ISA的一致性。否则的话,两个不同核心中的任务将无法迁移。

不过在Golden Cove的架构设计中,英特尔加入FMA 512的支持,另外还加入专门的AMX模块。但是为了保持不同架构处理器的ISA一致性,英特尔最终决定将Alder Lake的GoldenCove核心中的AVX 512功能彻底关闭,同时禁用AMX功能。这意味着消費者购买的Alder Lake处理器中的一部分晶体管和功能模块是不工作的。另外,由于Alder Lake不支持AVX 512,转而支持AVX 2,所以英特尔还将之前专门为AVX 512设计的VNNI以及VNNI2版本“降级”为AVX2版本,现在Alder Lake的能效核和性能核都能运行AVX2版本的VNNI,这意味着即使是以AVX2的形式,不少常见的AI加速功能也能够正常执行了o

英特尔硬件线程控制器:软硬兼施的高效率多核心方案

Alder Lake实际上是英特尔第二代异构多核处理器,前文也提到过第一代产品Lakefield无论在技术还是市场上的表现最终都不够令人满意。现在,Alder Lake将同时使用能效核和性能核,这里就有很多值得深入探寻的内容。

一般来说,现有的绝大部分多核心产品,无论是ARM还是RISC-V或者其他架构,他们多核心设计中的不同架构核心要么分别负责不同类型的工作,要么受控于一个整体的分配系统。比如ARM的DynamIQ,或者高性能核心用作控制器,其他的一些核心用作并行计算器等。

不过这些操作在桌面端,尤其是x86市场上这样的情况还比较少见。桌面处理器的调度器是在SMT同步多线程技术引入后出现的。由于SMT技术的引入,一个处理器核心将拥有两个或两个以上的线程,所以需要加入线程调度器以正确识别不同线程的工作负载情况,然后再安排相应的计算任务。此外,能耗控制相关的技术也被引入用于优化整个处理器在多线程下的能耗比,这对移动设备来说是非常有用的。后期随着处理器核心越来越多,x86核心会引入相关的控制系统。不过总的来说,由于每个线程是基本一样的,其架构设计还不是很复杂和困难。

在Alder Lake上,这种情况发生了较大变化。Alder Lake的能效核不支持SMT技术,性能核则支持,这意味着拥有三类不同的线程需要管理:能效核的线程、性能核的线程和性能核的SMT线程。如此一来,系统就需要更仔细地判断每一个线程的差异,确保将适合的工作任务放置在正确的线程上。

为此,英特尔通过软件和硬件这两个方面来进行处理。先来看软件,也就是Windows 11方面。微软在新的Windows 11中引入更智能的线程调度程序(调度器)。在Windows 10和之前的操作系统中,对任务优先级的判断是通过操作系统调度器进行分析,从而推断线程的性能情况,但是对正在发生的操作则没有真正的基本了解。在Windows 11中,微软配合英特尔加入了新的技术,来理解不同的性能模式和指令集的运行情况,然后根据这些内容来评估哪些线程可能需要更高的性能等级或者降级。微软宣称,操作系统调度器现在可以对线程优先级、所属是前端还是后台应用等进行综合考虑,属于前端的应用会被调高到性能核以满足用户需求。不过部分诸如内存复制、回调循环等复杂、但性能要求很高的应用在后台运行时,操作系统的调度器就可能无法正确判断情况了,此时就需要依赖英特尔内置的硬件线程控制器。

硬件方面,英特尔在处理器内的线程控制器中嵌入了一个微处理器,这个微处理器可以主动监控每个线程在做什么以及它需要哪些性能指标,具体监控的数据包括加载、存储、分支的比例、平均内存访问时间、模型和指令类型。此外,这个控制器还可以监测哪些指令在耗电、比如AVX-VNNI或者其他AVX2指令,它会为这些指令加入特殊的标记。如果当前没有足够的性能核或者由于功耗、散热的原因,部分线程需要降级的话,线程控制器也会对当前所有运行的线程进行监控,对那些可以优先降级处理的线程进行标记。操作系统的调度器会实时监控线程控制器的信息,然后根据线程控制器的标记,升级或者降级部分线程,或者根据线程控制器的信息以及操作系统本身对线程的判断,综合做出决定。

英特尔表示,线程控制器的最小操作时间可以是30us,而传统的操作系统可能需要100ms才能做出同类型但不一定正确的操作。此外,英特尔还给出了有关硬件线程控制器的更多信息。在一般情况下,操作系统刚启动的时候,第一个线程会被直接交由性能核处理,直到所有的性能核都被占满后,再转移给能效核。需要注意的是,对SMT核心而言,英特尔目前的设计是如果有16个线程进入,这16个线程的8个会被分配到性能核,剩余的8个并不是进入性能核的SMT线程,而是进入能效核。相比SMT线程而言,能效核的|生能显然要高出很多,但是这也增加了测试的复杂性。

在能耗方面,硬件线程控制器还有一些独特的功能,比如在电池供电或者节能模式下,线程会优先派往能效核。另外,操作系统的调度程序也会根据硬件控制器的信息,更积极地决定挂起或者关闭某些核心以节省电量,比如所有操作任务都指向能效核心的话,所有性能核都会进入休眠状态。此外,Windows 11还扩展了Power Throttling API,让开发人员能够为其线程明确指定服务质量属性,EcoQos分类也可以告知操作系统的调度器相关软件的信息。

Alder Lake:初露峥嵘

在介绍完有关核心架构和硬件线程调度器的内容后,接下来我们再来了解一下Alder Lake的相关信息。由于本次发布会偏向于架构和技术,因此英特尔没有给出Alder Lake在型号和性能方面的内容,整体介绍更偏向于技术和架构。

Alder Lake是英特尔在多核心处理器发展历史上一个全新的尝试。英特尔宣称Alder Lake带来了单一可扩展的架构,能够满足从9W到125W不同的TDP功耗需求。另外,其核心架构采用了全新的设计,加入了大量新的技术支持,比如DDR5、PCIe 5.0、雷电4接口和Wi-Fi 6E等。从硬件规格来看,Alder Lake目前分为三个类型:桌面型、移动型和超轻薄型。其中,桌面型采用了新的Socket 1700接口,和之前的LGA 115x系列完全不同,前者触点更多、面积更大。相比之下,移动型和超轻薄型就小很多,这两者都采用BGA封装,移动型使用的是BGA Type 3,封装尺寸为50mm×25mm×1.3mm。超轻薄型更小,采用的是BGA Type 4 HDI封装,尺寸仅为28.5mm×19mm×1.1mm,更适合面积狭窄且轻薄的设备使用。

Alder Lake本身采用模块化设计,其基本模块分为五类,分别是:CPU核心的效能CPU核心和性能CPU核心;功能模块的显示模块、IPU(图像处理单元)模块、GNA 3.0(高斯神经加速器)模块、PCIe控制器、TBT(雷电接口)模块;核芯显卡方面有两个规格,分别是96EU搭配媒体功能模块,这是用于移动设备的,对桌面设备而言则是32EU搭配媒体功能模块;存储方面则是LCC模块和内存模块;最后则是SoC的部分。利用这些模块化设计,Alder Lake针对桌面、移动和超轻薄设备带来了不同的配置方案。

针对桌面市场,英特尔没有在处理器内部集成雷电接口和图像处理单元,这意味着桌面处理器如果想要使用雷电接口,那就需要额外配置芯片或者从主板芯片组引出。另外,3款处理器都加入GAN 3.0单元,这意味着一些小型的AI计算可以不动用CPU核心就能够完成。对大家最关心的台式机处理器而言,顶级型号的Alder Lake处理器最终拥有8个能效核、8个性能核、24个线程、最高30MB非包容性L3缓存。

内存方面,Alder Lake支持的规格很多,包括DDR5 4800、DDR4 3200、LPDDR5 5200以及LPDDR4X4266等。英特尔确认Alder Lake中的内存控制器将支持所有展示出来的规格,这意味着主板上布局何种内存将取决于主板厂商,比如为一些ITX主板加入LPDDR5的内存支持,对一些高性价比产品来说,加入DDR4 3200内存支持等。

英特爾特别提到,Alder Lake的桌面版本将支持动态电压频率扩展以及“增强的超频功能”,后者的具体内容现不得而知,但应该会给超频玩家更多可调的参数和范围。

在PCIe控制器方面,Alder Lake支持20个PCIe通道,其中16条PCIe 5.0通道,剩余的4条是PCIe 4.0通道。PCIe 4.0 x4-般会用于高性能SSD。PCIe 5.0x16可以被拆分为2个PCIe 5.0 x8以支持更多的独立设备。另外,芯片组方面,Alder Lake的芯片组将额外提供12个PCIe 4.0通道和1 6个PCIe 3.O通道,这将使得大量的设备可以通过芯片组实现高速连接,比如10Gbps的网卡或者PCIe 4.0的SSD。不过英特尔并未透露芯片组和CPU之间的连接带宽,如果这个带宽不够的话,那么芯片组的扩展性将会受到严重影响。笔者期待其连接带宽最好相当于PCIe 5.0x4(可能性很小),如果是PCIe 4.0 x4的话,也很不错了。

在SoC层级,英特尔还给出了一些信息。Alder Lake内部处理器核心之间的连接保留了Tiger lake上出现过的计算总线(Compute Fabric),其带宽最高可达1000GB/s,并且可以动态调整。这个计算总线采用的是双环、宽带设计,当任务较少的时候,英特尔可以选择禁用其中的一个以节约能耗,毕竟计算总线整体功耗相当高,是整个处理器中主要的功率消耗来源之一。内存总线(Memory Fabric)方面,英特尔给出的数据是204G B/s,这个数据实际上远超双通道DDDR5 4800的带宽,所以这里可能是考虑到多个模块同时读取内存的需求。IO总线方面,英特尔给出的数据是64GB/s,基本就是PCIe 5.0 x16的带宽了。

目前的消息显示,Alder Lake的整体设计还是非常卓越的,无论是模块化设计、内部互联以及外部带宽方面,都站在现有技术的高点。目前仅存的就是具体的产品划分和规格问题了,比如酷睿i3、酷睿i5等处理器有多少个性能核和能效核等。这些问题只有等待接下来Alder Lake上市时才有更多内容了。

猜你喜欢

线程解码英特尔
《解码万吨站》
解码eUCP2.0
英特尔携手一汽集团,引领汽车行业全新变革
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
英特尔扩充FPGA可编程加速卡产品组合
浅谈linux多线程协作
英特尔开源帮霍金“说话”软件
好平板有强芯 英特尔Bay Trail芯片解析
基于上下文定界的Fork/Join并行性的并发程序可达性分析*