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

由:zhiyongz 发布于:2019-08-12 分类:英特尔 阅读: 评论:0

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的内核微架构进行解析,而是对于整个体系结构。

注:如果没有说明来源,本文图片均来自于WikiChip和AnandTech。

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数量之外,内部架构的优化也同样重要。

内部架构优化


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

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

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

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

上个月让小编最难受的一件事情就是买了一台1440p,144Hz刷新率的显示器,用HDMI连接笔记本的时候,在1440p下面最高只能输出60Hz,究其原因,就是老的第9代核显支持的HDMI版本只能到1.4,最高只能提供4K@30Hz的输出,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在上面加入了个新东西,还升级了不少老部件。

标签: Ice Lake架构

相关阅读

评论

精彩评论
二维码