Sunny Cove、Skylake、Zen 2 这三大CPU内核到底孰强孰弱?
自2016年的Skylake以来,英特尔的Ice Lake CPU是对该公司的Core架构的第一个重大更新。来自Kaby Lake,Coffee Lake以及“新” Comet Lake芯片的所有处理器系列均采用14纳米Skylake内核。因此,采用10纳米Sunny Cove供电的Ice Lake CPU不仅构成了英特尔的第一个10纳米产品堆栈,而且还形成了第一个后Skylake核心架构。在本文中,我们将英特尔的10nm Ice Lake CPU与AMD的竞争对手Ryzen 3000处理器以及较早的14nm Skylake架构进行了比较。
英特尔的第10代移动产品阵容由Comet Lake和Ice Lake CPU组成。前者采用Skylake核心,而冰湖则基于较新的Sunny Cove设计。这基本上就是我们要看的:Sunny Cove和Zen 2内核的并排比较,以及对Skylake的改进。
10nm Sunny Cove与7nm Zen 2:前端和分支预测器
与AMD不同,英特尔对前端的细节持谨慎态度。对于最新的Sunny Cove核心,前端在很大程度上类似于Skylake。据英特尔称,分支预测器已经过微调,加载/存储延迟比之前的设计稍好。据报道,分支预测器和预取器也更大,但是没有确切变化的具体细节。
前端的主要更改是关于缓存大小的。现在,采用12路48KB集关联设置的L1数据缓存比Skylake中的8路32KB增长了50%。指令高速缓存保持不变,为32KB。另一方面,AMD的Zen 2内核与Skylake一样,分别具有32KB L1指令和数据缓存。
在Sunny Cove中,解码器似乎基本没有变化,新的10nm内核封装了与Skylake相同的旧5路解码器。指令队列大小也与50个条目(25×2)相同,而指令取回也未更改,每个周期有6个请求。
AMD的Zen架构与此处的Core设计有很大不同。从Intel的二级缓存中获取的数据大约为每个周期64KB,而Zen 2内核则限制为32KB。同时,指令提取的宽度是Intel Skylake和Sunny Cove的两倍(32B与16B),但解码器略窄,每个周期有四个条目。这应该允许前者获取更长的指令,但每个周期最多只能获取四个。
在英特尔方面,L2缓存也已从Skylake的256KB 4路增加到10nm Sunny Cove内核上的512KB 8路增加了一倍。至少在大小上,这使其与Zen 2的L2缓存相当。延迟仍然会有所不同。
Sunny Cove前端进行的最重要的更改是关于微操作缓存。它已从Skylake中的1.5k条目增加到Ice Lake(SC)中的2.25k条目。这是急需的改进,因为AMD已经具有Zen 2的4k条目的微操作大小。这些缓存大小的增加将大大提高缓存命中率。
向下移动,您将获得分配队列。两种设计都向后端发送多达六个微型运算符,以进行重命名/重新排序和执行。
AMD与Intel Core Backend:AVX256与AVX512
Sunny Cove已对检修/退役缓冲区进行了大修。新的10nm内核具有巨大的352条目重排序缓冲区,可用于微操作重命名和重新分配(包括淘汰)。Skylake的条目重新排序缓冲区为224,Zen 2也是如此。
但是,对于后者,退休队列与主执行管道是分开的,并且整数和FP管道有单独的重命名缓冲区。总体而言,Zen 2的分派可以将6个微操作发送到整数重命名缓冲区,将4个微操作发送到FP重命名,将8个微操作发送到224个条目独立的退休队列,从那里它们被发送到其他两个。在英特尔方面,INT和FP有一个通用的重新排序缓冲区,可从前端接收六个微操作。
Ice Lake的10nm Sunny Cove有10个执行端口,其中四个进入ALU,两个进入数据存储,其余四个进入具有两个负载和两个存储的地址生成单元(AGU)。这样每个时钟周期可以进行两次加载/存储,比Skylake快2倍。
总体而言,Sunny Cove可以从重新排序缓冲区发送十个微操作,比Sky Lake的8个操作增加了25%。现在,移至执行单元。Ice Lake支持在客户端平台上执行本机AVX 512执行(不划分为微操作)。Sunny Cove可以在每个周期执行一次512位FMA(融合的乘法和加法)或两个256位FMA。整数执行将获得一些附加单元,形式为MUL,MULHi和iDIV,但每个周期执行的INT指令数仍为4。包含iDIV单元应有助于大大减少通常需要几十个时钟周期的整数除法时间。
外媒对Sky Lake和Sunny Cove进行了巧妙的比较:
将Sunny Cove核心与Zen 2进行比较,我们可以看到像Skylake一样,它缺少AVX-512。但是,它仍然支持每个周期四个256位指令(2个MUL和2个ADD)以及四个并行的INT执行。Zen缺乏对AVX-256的本地支持,只能依靠将指令分解为两个微型操作。
与Skylake和Zen 2相比,Sunny Cove的加载和存储缓冲区要宽得多。它在加载缓冲区中共有128个条目,在存储缓冲区中共有72个条目。另一方面,Skylake在加载缓冲区中有72个条目,在存储缓冲区中有56个条目。与较早的Skylake核心Zen 2相似,每个周期可以完成两个负载和一个存储。
加载和存储队列也分别变窄了44和48个条目。这低于Skylake和Sunny Cove。
Skylake <Zen 2 <Sunny Cove
从本质上讲,第10代Ice Lake芯片引入10nm Sunny Cove内核后,IPC平均提高了18%。这使Blue Team得以保持其在IPC上领先于AMD的领先地位,尽管使用Zen 2,它已经没有以前那么大了。此外,良率不佳意味着基于Sunny Cove的Ice Lake芯片仅限于四核设计。最近推出的八核Zen 2处理器(Renoir)不仅使Sunny Cove的IPC优势无效,而且使它们在构成大多数现代应用程序的多线程工作负载中远远落后。