超能课堂(285):革命性的x86处理器,Alder Lake深度解析
在年初的CES上,Intel所说的Tiger Lake-H移动高性能处理器以及Rocket Lake-S桌面处理器均已推出,目前第11代酷睿处理器已经全部布局完毕。同时在会上也宣布了今年会推出第12代酷睿处理器Alder Lake,这款处理器可以说是近年来x86处理器的一次大变革,是首次大规模在主流市场上应用混合x86架构,其实在2019年Intel已经在Lakefield处理器上试验过这种类似ARM big.LITTLE的异构计算架构,而现在正是那次试验修成正果之时。
其实关于Alder Lake在半年内就已经陆续流出来许多信息,比如它支持PCI-E 5.0和DDR5,会继续沿用Xe架构核显,最顶级的版本会采用8 8的组合,采用Intel 7工艺,以及桌面版本会改用LGA 1700接口等等信息,在上周的2021年Intel架构日活动上官方终于正式解禁了Alder Lake处理器的具体架构信息。
在谈论Alder Lake处理器之前,我们需要了解组成Alder Lake的两种核心:能效核(E-Core)与性能核(P-Core),以及为了让系统更好的调配两种不同架构不同功能的核心所推出的技术:Intel硬件线程调度器。
能效核
Gracemont是 能效核的曾用代号,它是Atom处理器所用的Mont系列的第七代架构,它更追求能效,会在多线程以及线程吞吐上有所加强。此高能效x86微架构在有限的硅片空间实现多核任务负载,并具备宽泛的频率范围。该架构致力通过低电压能效核降低整体功率消耗,为更高频率运行提供功率热空间。这也让能效核提升性能,以满足更多动态任务负载。
能效核可以利用各种技术进步,在不额外增加处理器功率的情况下对工作负载进行优先级排序,并改进处理器的IPC性能。
Gracemont大幅扩大了分支预测器,现在 拥有5000个条目的分支目标缓存区,实现更准确的分支预测。一级指令缓存增大到64KB,在不耗费内存子系统功率的情况下保存可用指令 ,它还拥有Intel的首款按需指令长度解码器,可生成预解码信息,加速具有大量代码的现代工作负载。采用两组三宽度的簇乱序执行解码器,可在保持能效的同时,每时钟周期解码多达6条指令
后端执行单元拓宽了,具备5组宽度分配、8组宽度引退、256个乱序窗口入口和17个执行端口 ,共计拥有4个整数ALU、2个载入AGU、2个存储AGU、2个跳转端口、2个整数存储数据、2个浮点/矢量存储、2个浮点/矢量堆栈、以及第3矢量ALU。
存储系统采用了双载入双存储的配置,每4个核心共享4MB二级缓存,缓存带宽高达64 Bytes/cycle,延迟则是17时钟周期,并支持深度缓冲、高级预取器和Intel资源调配技术。
指令集方面,支持控制流强制技术和虚拟化技术重定向保护等功能;同时它也是首款支持AVX2指令集的“Mont”核心,以及支持整数人工智能操作的新扩展。
与Skylake核心相比,能效核能够在相同功耗下实现40%的单线程性能提升,或者只有不到40%的功耗提供相同的性能。与双核四线程Skylake相比,四个能效核能够在功耗更低的情况下同时带来80%的性能提升, 或者在提供相同性能的同时功耗减少80%。
性能核
性能核的曾用代号是Golden Cove,是Sunny Cove与Willow Cove这条核心线路下的直系后代。Tiger Lake所用的Willow Cove核心与Ice Lake上的Sunny Cove相比只是改动了缓存部分,改动非常小,而Golden Cove与Willow Cove相比改动则非常大。
性能核旨在提高速度,突破低时延和单线程应用程序性能的限制。工作负载的代码体积正在不断增长,需要更强的执行能力。数据集也随着数据带宽的需求提升而大幅增加。全新性能核微架构带来了显著增速同时更好地支持代码体积较大的应用程序,与现有CPU架构相比,性能核的改动可以归纳为更宽、更深、更智能。
从Skylake到Sunny Cove,前端的改动非常小,主要是增大了缓冲区,而Golden Cove这次则是直接拓宽了前端,解码长度从16字节翻倍到32字节,解码器由4个增至6个,每时钟周期执行微指令从6增至8。微指令队列每个线程从70条目增加到72条目,单线程则从70增加到144。微指令缓存从2.25K扩大到4K,增加了命中率与前端带宽。
增强了编码预取能力,4K指令TLB从128条目增加到256条目,2M/4M指令TLB从16条目增加到32条目,分支目标从5K增至12K,同时改进了分支预测精度,具备更智能的编码预取机制。
乱序引擎分配由5路增至6路,执行端口由10个增至12个,重排序缓冲区当年Sunny Cove已经从224条目增加到384条目,现在Golden Cove进一步增加到512条目,重命名和分配阶段也可以执行更多指令。
整数执行引擎增加了第五个通用执行端口,五个端口都有ALU和LEA单元,增加ALU数量很重要,因为ALU操作非常普遍,很多软件都对其加以利用。
矢量执行引擎在端口1和端口5下方各加了一个FADD快速加法器,此前Intel的处理器浮点加发都是交由FMA单元处理的,在端口0和1上需要4个时钟周期,而端口5上则要6个时钟周期,现在交由FADD做的话只需要3个时钟周期,效率更高而且延迟更低。
FMA单元现在支持FP16浮点数据类型,它属于AVX-512指令集的一部分,这在加速网络应用方面非常有效。
此外端口5上还多了个AMX单元,它的全称是Advanced Matrix Extensions高级矩形扩展,它可执行矩阵乘法运算,现在支持AVX512_VNNI的处理器每个内核每时钟周期可执行256次int8运算,而现在借助AMX可让这性能提升至8倍,达到每时钟周期执行2048次int8运算,这可用于AI学习推理和训练,让处理器的AI性能大幅加速。
缓存系统方面,增加了一个AGU Load的端口,载入端口从2个增加到3个,吞吐量提高了50%,可同时载入3组256bit的数据或2组512bit的数据,这有效的降低了L1缓存延迟, 同时加深了载入与存储缓存区,使其具备更强的内存并行性,对大型数据和代码体积较大的应用程序提供更好的支持。
L1数据TLB从64条目增加到96条目,L1数据缓存可并行多获取25%以上的未命中,数据预取器得到了增强,可面对更强的乱序执行架构,可同时服务4个page-table walks,较上代架构翻了一倍,这对现代大型、不规则数据集的工作负载更为有利。
L2缓存桌面与移动端每核心还是和Tiger Lake一样是1.25MB,但与现在11代桌面处理器相比则是增加了150%,服务器的Sapphire Rapids则是每核心2MB,优化了全写入预测带宽,减少内存读取。
Golden Cove相比目前第11代酷睿桌面处理器的Cypress Cove,在通用性能的ISO频率下,针对大范围的工作负载实现了平均约19%的性能提升,大家可以理解成IPC提升了这么多。
两种核心的性能差距
那么效能核与性能核之间到底有多少性能差距呢?
传统的处理器,单线程性能与多线程性能是呈线性关系的,核心架构的单线程性能越强,多线程性能就越强
但在Alder Lake这种混合架构处理器中就不一样了,P-Core性能核的目的是提升处理器的单线程性能,而E-Core效能核的目的设计目的则是用更低的功耗来提升多线程性能,根据Intel的示意图,四个效能核加起来才等于一个性能核那么大。
性能核在同功耗的情况下单线程性能比效能核高出50%,而且实际情况是性能核的频率与功耗会比效能核高得多,所以这个差距会更大,当然了,效能核本身的性能不差,别把他们看作ARM处理器的小核。
多线程的时候就会变得很有趣,4个性能核与2个性能核加8个效能核的芯片尺寸应该是差不多的,前者有8个线程,后者则是4 8共12个线程,而Intel给出的测试结果是2 8的组合比单纯4个性能核多线程要领先50%。
很明显想提升多线程性能堆效能核其实更省芯片面积,更加划算 ,当然了实际使用时大部分应用不会直接把CPU的线程数占满,这时就需要性能核展现其高效的单线程了,Intel肯定是实际考量过各种日常应用的负载情况才有了各种不同核心数量组合的Alder Lake处理器。
英特尔硬件线程调度器
Alder Lake处理器内有性能核与效能核两种核心,为使操作系统能够更为正确的使用两种核心,Intel开发了一种改进的调度技术——Intel Thread Director,也就是英特尔硬件线程调度器。
硬件线程调度器直接内置于硬件中,可提供对内核状态和线程指令混合比的低级遥测,让操作系统能够在恰当的时间将合适的线程放置在合适的内核上。硬件线程调度器具有动态性和自适应性——它会根据实时的计算需求调整调度决策——而非一种简单的、基于规则的静态方法 。
传统的操作系统调度器会根据有限的数据来分配任务,如前台和后台任务,硬件线程调度器则是根据实时的监控内核状态然后做出一个动态和智能的反应,从而帮助操作系统做出更智能的调度决策,将需要更高性能的线程引导到当时适合的性能核上 ,它只需大概30ms就能识别出工作负载的类型并反馈给系统的调度程序。
这一点带来的最大好处是软件不需要重写代码,如果是固定线程调配,软件就需要考虑把哪些线程放到更高性能的核上,哪些线程要放到更追求能耗的核上面,而通过硬件线程调度器这种实时动态智能调整,软件不需要做这样的适配和调优。
其次是通过与微软合作,在Windows 11系统上实现了硬件级别的线程调整,硬件线程调度器能够把更多内核信息通过回报给操作系统的调度器,操作系统就可以更好的在系统级别去做线程的调度,这套体系能更好服务于Alder Lake混合的性能核和能效核。
至于Windows 10系统,要用上硬件线程调度器还有一些工作要做,现在还没有更多信息可披露。
Alder Lake处理器
上面说了这么多架构方面的东西,其实都是第12酷睿Alder Lake处理器的一部分,而接下来终于要介绍这款处理器的规格了。
Alder Lake是Intel首款大规模推向各级市场的混合架构处理器,而此前的Lakefield只是一个试点,新一代处理器将采用Intel 7工艺生产,也就是原本的10nm Enhaned SuperFin,会囊括TDP 9W到125W的产品,新的处理器支持DDR5、PCI-E 5.0、Thunderbolt 4以及WiFi 6E。
Alder Lake处理器有三种不同的封装方式,包括桌面的Socket LGA 1700,移动版的BGA Type3以及低功耗移动版BGA Type4 HDI,两种移动版的都会与PCH一同封装在同一块PCB上。
桌面版的最多8个效能核8个性能核,16核心24线程,配备32个EU的核显,TDP最高125W,从方框图上可以看出桌面版的没有整合Thunderbolt 4控制器,也没有用来处理图像输入数据的IPU图像处理单元。
移动版最多8个效能核6个性能核,14核心20线程,配备96个EU的核显,TDP应该在15W到45W之间,BGA Type3的封装尺寸为50*25*1.3mm。
低功耗移动版最多8个效能核2个性能核,10核心12线程,配备96个EU的核显,TDP小于9W,BGA Type4 HDI的封装尺寸是28.5*19*1.1mm。
Alder Lake的每个效能核心可提供1条线程,而每个性能核心则可提供2条线程,所以才有了16核24线程这样的组合。L3缓存的话则是每个性能核心最多3MB,每4个效能核心也最多3MB,所以桌面版的最多会有30MB L3缓存,而移动版的应该是最多24MB。
内存支持方面,Alder Lake同时支持DDR5-4800、DDR4-3200、LPDDR5-5200、LPDDR4x-4266这四种内存,同时还会支持内存的动态电压频率缩放,并强化超频能力,从方框图上来看这应该是移动版的处理器,桌面版估计也是一样的。
桌面版Alder Lake可提供16条PCI-E 5.0通道与4条PCI-E 4.0,很明显PCI-E 5.0是给显卡的,PCI-E 4.0则是给M.2 SSD,同时桌面级的PCH则最多可提供12条PCI-E 4.0与16条PCI-E 3.0。整套平台可提供PCI-E 5.0/4.0/3.0各16条,共48条PCI-E通道,作为对比,现在11代酷睿搭Z590可提供20条PCI-E 4.0与24条PCI-E 3.0,共44条PCI-E通道,而AMD锐龙3000/5000处理器搭X570平台则可提供36条PCI-E 4.0。
Alder Lake拥有三种不同的高速总线,包括1000GB的内部数据总线,用来链接各个核心、核显、L3缓存以及CPU内其他各个模块,这个其实就是原来的环形总线,并没有改动。内存总线带宽最高能达204GB/s,目前不太清楚Intel是怎么算出来的,双通道128bit的DDR5要达到这个带宽要跑到12750MHz的频率。I/O总线带宽最高是64GB/s,这整合对应PCI-E 5.0 x16的带宽。
总结
Alder Lake对于x86处理器来说是一个重大的变革,能效核与性能核这种混合x86架构是首次大规模应用到消费级市场上,而PCI-E 5.0与DDR5内存也是由Alder Lake处理器首次消费级市场,两年前被AMD抢了PCI-E 4.0的首发后,这次Intel直接拿下了PCI-E 5.0与DDR5的首发,说Alder Lake是一款非常激进的处理器也不为过。
从性能核的IPC会比现在的第11代酷睿桌面处理器Rocket Lake提升19%这点来看,Alder Lake的整体性能应该是会很不错的,但软件能否正确用到两种架构目前还是个疑问,根据Intel的说法,硬件线程调度器与Windows 11的组合会很好的解决线程调度的问题,但实际表现如何还得等到产品正式发售时才知道。
Intel架构日的PPT上有写着Alder Lake会在2021年初秋发布,而此前的小道消息则说是10月或者11月,反正今年年内肯定是能和大家见面的,它是一款相当让人期待的产品,特别是对于桌面市场而言,终于可以和那些14nm工艺的处理器说拜拜了。