Fork me on GitHub

Ice Lake架构深度解析 Intel的雅典娜女神

  Ice Lake 是 Intel 下一代平台的架构代号,随着台北电脑展上的演示,它终于揭下来神秘的面纱。而前不久 Intel 内部的第二季度财报会议上,CEO 已经宣布 Ice Lake 处理器已经正式向 OEM 厂商出货,戴尔方面也迅速行动,延期了一个月多的、采用新 Ice Lake 处理器的 XPS 13 7390 也迅速上架接受预定并将于近日发货。这意味着 Intel 的第一代量产级 10nm 产品(不算 Cannon Lake 唯一的那款 10nm i3)终于要在市场上亮相了,在此之际,小编编译、整理了目前有关于 Ice Lake 架构的相关解析文章,探寻其背后的改进之处。

  继上一次 Intel 更新他们的桌面级处理器的架构已经过去了将近 5 年的时间了,不得不说,Skylake 是一代非常成功的架构,也可能是从 P6 以来 Intel 使用时间最长的一代处理器架构,支撑 Intel 走到现在还在主流和服务器市场上面占据着上风。

  首先我们要理清一点,Ice Lake 是整个处理器架构的代号,而现在的 Intel 处理器架构中包括了内核、GPU、以及 Uncore 部分的其他 IO 单元,所以本文并不只是针对 CPU 的内核微架构进行解析,而是对于整个体系结构。

  注:如果没有说明来源,本文图片均来自于 WikiChipAnandTech


Ice Lake 处理器结构图

  一、Sunny Cove 内核微架构:IPC 平均提升 18%


Sunny Cove 内核结构图

  前端缓冲区:加大加大加大

  x86 处理器的内核主要可以简单地分成两个部分,前端部分与后端执行部分,前端部分主要完成“取指译码”的工作,后端主要为指令的具体执行单元,前后端之间有缓冲区,用于存放解译融合完毕的微指令。Intel 很早就在内核中引入了“微指令融合”的技术来提高效率,融合过的微指令会进入缓冲区然后被分配给后端执行部分进行具体的执行。Intel 目前认为,如今程序更多的瓶颈位于访存和前端指令分派上,Sunny Cove 的前端部分改进就体现了这一理念,所以这次缓冲区就被扩大了不少。

架构HaswellSkylakeIce Lake
乱序重排缓冲区192224352
访存 Load 队列大小7272128
访存 Store 队列大小425672
超能网制作

  可以看到 Intel 这次把乱序重排缓冲区(ReOrder Buffer,主要是用于乱序执行后将执行的微指令根据原本顺序提交的指令缓冲区)大小做到了可以容纳 352 条微指令,直接提升了 128 条/57% 之多,而 Haswell 到 Skylake 才仅仅提升了 32 条。同样在访存上面也进行了不小的提升,Load(加载)队列增加了 56,Store(存储)队列增加了 16,比 Haswell 到 Skylake 的改变都明显要多。

架构HaswellSkylakeIce Lake
单核心一级数据缓存大小32KB32KB48KB
单核心一级指令缓存大小32KB32KB32KB
单核心二级缓存大小256KB256KB512KB
微指令缓存1. 5K μOPS1. 5K μOPS2. 25K μOPS
超能网制作

  再来看缓存部分,新的内核终于增加了万年没变动过的一级数据缓存,从 32KB 到 48KB,虽然只增加了 12KB,但是要知道,32KB 的一级指令缓存 +32KB 的一级数据缓存的设计,从 Core 系列的第一代架构——Core 微架构上面就开始使用了,一直沿用到现在,同时一级数据缓存的带宽也增加了。而每个内核附带的二级缓存直接提升一倍,达到 512KB 的大小,这也是从 Nehalem 架构把二级缓存内置进每个核心、单独设立共享 L3 缓存以来在内核缓存上发生的最大幅度变动了。


Skylake 与 Sunny Cove 内核架构对比图,左 Skylake,右 Sunny Cove

  前端部分的改进较小,主要是改进了预取器与分支预测器的性能,增加了微指令缓存的大小使得其能够满足每周期5(6) 指令的发射。

  后端:更宽


上 Skylake,下 Icelake,注意看 Port

  后端也有不小的改变,Sunny Cove 的执行端口相比 Skylake 多了两个,达到了 10 个之多。并且端口的用途更为精细化,有专门用于读取和存储地址的端口,并且专用于存取数据的端口数量均为两个。

  然后在执行单元中,Sunny Cove 新增了支持 AVX-512 指令的单元,其实这类单元在 Skylake-Server 上便已经加入,同时引入的还有 Cannon Lake 上面加入的 iDIV 这个硬件整数除法器,同时还加入了新的 MulHi 单元,专用于乘法指令的处理。

  AVX-512 计算单元的引入使得 Sunny Cove 内核一次可以处理 1 条 512-bit 的指令或者 2 个 256-bit 的指令。

  内核互联方面,桌面级 Ice Lake 仍将采用 Ringbus 也就是环形总线的设计,而服务器端将延续 Skylake-Server 的 Mesh 总线设计。

  指令集与 AI 加速

  指令集随着新单元的加入也同时进行了扩充,在加密解密、AI 加速、通用计算、特定计算等方面都新加入了不少指令,尤其是 AVX-512 指令集。

  对于近几年大热门的人工智能,Intel 一方面在 Uncore 部分加入了自家的“高斯网络加速器(Gaussian Network Accelerator)”这样类似于手机 SoC 上面常见的 AI 硬件加速电路,还通过引入 AVX512VNNI 指令集,使用 AVX-512 单元来进行 AI 相关的加速计算,Intel 将这种加速称为”DL (Deep Learning) Boost”。这是一种很聪明的取巧办法,专用计算单元的引入可以保证一定的加速性能,而新指令集的加入同时也可以更加充分地利用上新的 CPU 特性。

  加密解密指令集上面的改动诸如 AES 的吞吐量加大、加入新的针对 SHA 算法的一系列指令等,总之在编译器进行适当优化的前提下,Ice Lake 的加密解密性能是比 Skylake 强不少的。

  小结

  简单归纳一下 Sunny Cove 微架构的改进点:

  • 改进了预取器与分支预测器的性能
  • 一级数据缓存增大 50%
  • 一级缓存存储带宽增大 100%
  • 二级缓存增大 100%
  • 微指令缓存增大 50%
  • 每周期能够加进乱序重排缓冲区的微指令多了 25%
  • 乱序重排缓冲区大了 57%
  • 后端执行端口多了 25%
  • 支持 AVX-512 等新指令集

  综合以上的改进,Sunny Cove 相对于 Skylake 在 IPC 上面取得了平均 18% 的进步,而对于 Broadwell 或者说 Haswell,则是有 47% 的进步幅度,在针对 AVX-512 进行优化过的测试中,最高可以比上代移动低压处理器快2~2.5 倍。在摩尔定律前进缓慢的今天,这个数字已经非常高了。

  题外话,其实很多改进在 Cannon Lake 上面就已经有了,比如 AVX-512、相关的指令集变动和缓存带宽增加等,还有些改动是从 Skylake-Server 架构上面下放而来的,比如 AI 加速的指令集其实已经在服务器端处理器上出现了。但因为 Cannon Lake 实际被 Intel 放弃,所以继承了 Cannon Lake 改进点的 Sunny Cove 内核架构才能在相比较 Skylake 时得到平均 18% 的 IPC 进步,如果一切正常,Intel 的 10nm 没有延期,Ice Lake 应该是 Cannon Lake 的下一代,对比起来就没那么大的进步幅度了。

  二、第 11 代图形架构

  Ice Lake 的核显首次达到了 1TFlops 的计算性能,还增加了不少的功能特性,可谓改进颇多。Intel 用了”the most powerful version”来形容这代核显的性能,怎么做到的呢?

  借助 10nm 工艺,暴力堆叠规模

  Intel 的 10nm 工艺在晶体管密度上的提升幅度是真的很大,14nm 时代最多配备 24 组 EU 的核显,在 Ice Lake 上面直接就翻了 2.67 倍,最大可以达到 64 组 EU,并且频率也不低,最高可以跑到 1100MHz,比以前只低了 50MHz,此时核显整体的 FP32 计算量已经达到了 1.15TFlops。鉴于此,相比于八代酷睿处理器上搭载的第 9 代核显,Intel 官方宣称可以提供平均约 1.8 倍的帧率。

  你一定想问第 10 代去哪里了对不对,其实还是在夭折了的 Cannon Lake 上面,而且唯一一颗的核显还是被屏蔽了的。

  目前在移动低压版 Ice Lake 处理器上面,Intel 一共提供了 G1、G4 和 G7 三种配置的核显,分别有 32/48/64 组 EU,低端的 G1 命名仍为”UHD”,而 G4 和 G7 都以”Iris Plus”的品牌出现。

  除了通过制程进步来堆叠 EU 数量之外,内部架构的优化也同样重要。

  内部架构优化

img
   与第九代核显的对比表格如图,出处:周末杂谈,Icelake CPU 的助手,Gen11 核显简介

  首先通过增加单个 Slice 中含有的子 Slice 来扩大规模,使得每周期的计算次数增加。

  其次是在缓存系统上做文章,扩大了三级缓存的容量,Intel 方面公布的是 EU 的三级缓存有 3MB,并且还有 0.5MB 的本地共享内存。另外还有通过处理器的内存控制器升级,能够用上更高的内存带宽。

  新接口版本和加强的硬件编码电路

  上个月让小编最难受的一件事情就是买了一台 1440p,144Hz 刷新率的显示器,用 HDMI 连接笔记本的时候,在 1440p 下面最高只能输出 60Hz,究其原因,就是老的第 9 代核显支持的 HDMI 版本只能到 1.4,最高只能提供 [email protected] 的输出,1080p 下面最大是 120Hz,而小编的笔记本并没有提供 USB-C 或者 DP 输出。

  而 Ice Lake 终于解决了这个痛点,支持了 HDMI 2.0b 和 DP 1.4 HBR3,这两个就不用多说了吧,反正就是最高分辨率和帧数提升顺便还能支持一下 HDR。

  另外,在视频硬件编码部分,也就是 Intel QuickSync 特性使用的独立硬件电路上,新核显也有比较大的改进,现在支持两条 HEVC 10-bit 同时进行编码,在 YUV444 的情况下最高支持两条 4K60 帧视频流,或者一条 YUV422 的 8K30 帧视频流。

  可变速率着色(VRS)

  VRS 全称 Variable Rate Shading,是一种新的允许 GPU 根据画面区域的重要性调整着色精度的技术,具体效果我们之前的新闻有介绍过,可以看一下:来对比一下 VRS 可变速率着色技术带来的性能提升吧 3DMark 将添加该技术基准测试一文中的图片对比。

  VRS 可以在不重要的画面上面节约一定的 GPU 资源,使这部分 GPU 资源参与更加重要的部分画面的渲染中,从而提高了整体的帧数,目前 NVIDIA 已经在 Turing 核心中加入了相关的支持。而 Intel 也没有落后,在第 11 代核显中提供了这项特性,并且他们宣布将与 Epic 合作,将这项特性加入到虚幻引擎中去,目前文明六已经支持了该技术,并且根据 Intel 的数据,帧数最大提高了 30%。

  小结

  GPU 部分的改进主要还是规模增加了很多,架构上属于小改动,主要改进了缓存系统,不过第 11 代核显的进步还是比较明显的。

  可能以后在 1080p 低画质下面核显也不再是鸡肋了,能够 30 帧打打游戏了。

  三、Uncore 部分

  Uncore 部分指的是处理器上除了内核和 GPU 的其他部分,在顶上的结构示意图中就是 System Agent 的那部分,自从 Intel 在 Nehalem 把内存控制器和 PCI-E 控制器移入 CPU 内部之后就没有什么大的变化,但是这次 Intel 在上面加入了个新东西,还升级了不少老部件。

  Thunderblot 3

  原来阻挡人们使用 Thunderblot(以下简称 TB)设备的一大原因就是这个接口的使用成本略高,当 TB3 开始以 USB Type-C 接口的形式出现之后,使用率确实高上去不少,但是还有其他的拦路虎,其中一个就是 TB 需要主板搭载额外的芯片来使用,这个控制芯片并不便宜。终于在 Ice Lake 上面,Intel 把 TB 控制器整合到了处理器里面,并且再也不会占据掉处理器提供的 PCI-E 总线数量或者是与 PCH 一起挤原本就已经拥挤不堪的 DMI 3.0 总线,而是在环形总线上面拥有了自己的位置。

  而且 Intel 大方的一下子就提供了 4 个之多的 TB3 接口,每个都是 PCI-E 3.0 x4 的满规格,也就是说,Ice Lake 处理器其实一共拥有 32 条 PCI-E 3.0 通道,不过其中一半都是以 TB3 形式提供的,当然这些接口是支持 USB 模式的,当运行于 USB 2.0 状态时,会绕回到 PCH 上进行通信。

  当然也不是所有的厂商都会给足四个 TB3 接口,具体怎么配置还是得看 OEM 厂商,毕竟其他的配套芯片诸如 USB PD 所需要的独立 IC 都是会增加成本的,而 TB 接口还需要额外的 Retimer 芯片,不过 Intel 已经减半了所需的 Retimer,两条 TB3 只需要 1 个 Retimer 就可以了。

  不过将 TB 控制器集成到 CPU 内部也使得整个 System Agent 的 IO 部分更为复杂了,上面是一张详细的原理图,一个 Type-CIO 路由(图上名为 CIO Router)拥有两条 PCI-E 3.0 x4 与 CPU 相连,而 CPU 内部的显示控制引擎(图上的 Display Engine)也要与这个 Type-CIO 路由相连,以控制 Type-C 接口所处的状态,并决定发送的信号。同时还有 USB 的 xHCI 也要跟 Type-CIO 连接,还要管理整个的内存统一性……

  复杂的结构所导致的就是整体的延迟会增加,Intel 将原因归结在电源控制上面,原本分离式的芯片很容易管理电源状态,但是整合进来之后每一个部分都有自己的电源状态需要管理,需要更为精细化的电源管理系统,而这就增加了总体的延迟。不过更为精细化的电源管理还是有好处的,那就是可以提高能耗效率,Intel 方面称满载的一个 TB3 接口的芯片外加链路层将使用 300mW 的功率,四个加起来也只有 1.2W。

  值得一提的是,Intel 已经做好了对于 USB4 的兼容,不过考虑到目前 USB4 仍处于草案阶段,不排除未来的修改使得兼容失效。不过目前只是针对 Ice Lake 的移动版本进行架构分析,当然也不排除 Intel 在桌面级的 Ice Lake 上面同样保留内部 TB 控制器。

  题外话,TB3 据说在 Cannon Lake 上面也是有的,但是夭折了。

  内存控制器

  现在内存控制器原生支持 DDR4 3200/LPDDR4X 3733 内存,原来 Skylake 上面的内存控制器顶多只能支持到 DDR4 2666,还是八代的 Coffee Lake 以后的事情了。而随着 DDR4 内存的发展,默频上 3000 的内存条也开始出现了,内存控制器直接支持到 DDR4 3200 是一件不错的事情。而且随着处理器内核数量的增加,内存带宽也逐渐要开始成为处理器性能的一个瓶颈所在了,在我们的测试中,内存带宽对于游戏性能的影响还是比较明显的。

  此前 Intel 的移动低压平台只能使用 LPDDR3 作为内存,而支持 LPDDR4/X的一个好处就是可以在更低的功耗下面带来更强的性能,尤其是对于此次图形性能有比较大提升的 Ice Lake 来说,有着非常大的实际意义,因为内存带宽直接影响到 GPU 的实际表现。

  GNA

ice_lake_overview

  前面在讲内核的 AI 加速时提到了 Uncore 部分加入了 GNA 这个针对 AI 的硬件加速单元,目前并不知道太多有关于它的细节,就连具体名字都有两种说法,在 Intel 官方针对 Windows Machine Learning 的介绍网页中,它的全名为 Gaussian Network Accelerator,而在很多介绍 Ice Lake 架构的文章中,它的名字又成了 Gaussian Neural Accelerator。

  目前已知的是该单元的功耗非常低,甚至会在 SoC 其余部分关闭的情况下继续工作,旨在提供稳定的 AI 加速性能,应用场景为语音识别之类。

  图像处理单元

  Ice Lake 上面的图像处理单元(Image Process Unit)升级到了第 4 代,是的,你大概没有听说过 Intel 的 CPU 上面还有个图像处理单元,但它从 Skylake 开始就一直存在,不过只有在移动双核型号上有,属于 DSP(数字信号处理器)范畴,为设备的相机提供影像处理功能。

  Ice Lake 上的 IPU 可以提供 [email protected] 的视频拍摄能力,还有更好的硬件降噪能力,支持更多的相机,还支持将两个不同的相机比如一个抓 IR 信息一个抓 RGB 信息的两个相机模拟成一个设备来看待。

  Intel 方面称,他们正在向软件开放更多的 IPU 寄存器,以向应用提供更好的便利性,并且提供了对机器学习的支持。另外值得一提的是,Intel 将之前 PCH 上集成的 MIPI 接口转移到了 CPU 上,未来可以用于接驳 AI 加速设备。

小结

  Uncore 部分可谓是发生了天翻地覆的改变,可以说是 Ice Lake 相对于之前 Skylake 变化最大的地方了,内建 TB3 控制器肯定会给未来的使用带来非常大的方便,小编个人非常喜欢这个改进。而其他的可以归于常规性质的功能性更新。

  四、PCH 改进

  目前的 Ice Lake 平台上 PCH 和 CPU 是封装在同一块基板上的,PCH 的提升同样是 Ice Lake 整个平台的提升。同样的,Ice Lake CPU 通过 DMI 3.0 x4 总线与 PCH 相连,提供的带宽等同于 PCI-E 3.0 x4。

  重新引入 FIVR

  FIVR 其实早在 Haswell 架构中就已经被引入了,但是从 Skylake 开始又把它给去掉了,因为在当时 FIVR 确实表现不佳,导致了整体功耗和发热的增大。不过在 Ice Lake 上面,它又回归到了 CPU 和 PCH 的内部。Intel 官方表示这么做可以节约整个平台的面积,并且简化 OEM 的电源设计。新的 FIVR 有着更高的电源效率,与整个平台的节能特性息息相关。看上去 Intel 也是解决了 FIVR 身上的一些毛病才放心将它集成进 CPU 和 PCH 内部的。

  CNVi 2

  其实 Intel 在这两年已经在出货的芯片组里面都加入了 CNVi 方案的 Wi-Fi 模块,这种方案将 Wi-Fi 网卡的部分电路转移到了芯片组的内部,而仍在外面充当一个射频模块的 Wi-Fi 网卡就可以做的非常小了,比如M.2 2230 或者以 1216 规格直接焊在主板上。PCH 内部的网卡与在外面的 RF 模块通过一条 Intel 专有的 CNVi 链路进行连接。

Solution diagram

  Ice Lake 的 PCH 上面这条特别的 CNVi 链路升级到了第二个版本,即 CNVi 2。

  当然,支持的 Wi-Fi 标准还是由在外面的 Wi-Fi 网卡所决定的,方便 OEM 自定义,Intel 此举是为了打破人们升级 Wi-Fi 路上的屏障(你倒是推动一下 AX 路由器降价啊),目前 Intel 有两张支持 Wi-Fi 6 标准的无线网卡:AX200/201。

  关于 Wi-Fi 6 具体的提升之处,可以参考我们之前的文章:超能课堂(188) WiFi 6 凭什么可以如此“六”?

  IO

  这块就简单罗列一下数据。

  • 6 个 USB 3.1(5Gbps)/10 个 USB 2.0
  • 16 条 PCI-E 3.0,一般会有 8 条用于两个 NVMe 接口
  • 3 个 SATA 3.0
  • eMMC 5.1

  Intel 没有提到 UFS 的支持。

  小结

  PCH 的变化并不是很大,主要是常规的功能性提升。

  五、封装、睿频与功耗

  多种功耗目标与不同封装方式

  目前 Ice Lake-U 和 Ice Lake-Y 是两种目标 TDP 不同的系列,分别针对 15~28W 和7~12W 来设计的,未来的移动标压级 TDP 约为 45W,而桌面级目前未知。

  此次率先发布的 11 款低压和超低压也采取了两种不同的封装,U系列没有怎么变,还是老样子,而超低压就与往常不一样了,Intel 使用了更加紧凑的封装方式,同时底部触点也相对更加紧密。

  动态调节 2.0

  新的动态调节 2.0 技术变化点看图就可以了,大致意思就是 Ice Lake 处理器不会像之前那样只能睿频 18 秒之后就回到基础频率,而是慢慢的降下来,整个过程比原先长了 8 秒。新技术还使用了机器学习来预测 CPU 将会吃到哪种类型的负载,然后智能调节功耗预算来尽可能地延长睿频时间。

  六、总结

  总的来看,Ice Lake 是一代变化非常大的架构,无论是内核还是外面的各种组件。人们都说 Intel 挤牙膏,但怎么说呢,竞争对手所给的压力不够也是 Intel 挤牙膏的一个原因,但更多的原因恐怕是来自于这几年 Intel 在制程工艺上面遇到的难题,本来在 Intel 的 Tick-Tock 战略中,Cannon Lake 是作为 Skylake 的制程升级版出现的,然而由于 10nm 的难产,Tick-Tock 战略彻底失效,变成了 PAO——制程-架构-优化战略之后,计划以 10nm 初代的角色推出,结果 10nm 比 PAO 战略的计划还要晚,但是竞争对手的 Zen 和 Zen+ 架构开始给 Intel 压力了,没办法,Skylake 加两个核用 14nm++ 再顶一顶吧。这一顶就是将近两年过去了,Cannon Lake 也被彻底的放弃了,上面的许多优化被 Ice Lake 所继承了下来。

  从整体架构来看,Ice Lake 在单线程性能上面继续冲高,而测试成绩也都印证了这一点:基础频率和加速频率都比前代更低的情况下单线程成绩能够将将打平,已经很不容易了。多核的话,Ringbus 极限应该是十核左右,如果不采用 Mesh 架构,那么桌面版未来的 Intel Ice Lake 处理器还是会不敌 AMD 的 Zen 2/3。

  而在扩展性上面,Ice Lake 还是比较良心的,TB3 控制器的加入使得 USB 和 TB 设备不再需要挤占原本就有些不够的 PCI-E 3.0 总线,并且还预留了与 USB4 的兼容,在未来 Ice Lake 的优化版或者升级版上我们有望看到正式的 USB 4 支持。

  Ice Lake 也会是未来一段时间中 Intel 主力的架构,只不过等它来到桌面级还需要一段时间。Intel 目前的产品线也是非常的混乱,有机会我们会单开一篇文章来捋一捋。

来自:
超能网

作者:Johnson
原创文章,版权所有,转载请保留原文链接。