来源:本文由半导体行业观察(ID:icbank)编译自semiaccurate,谢谢。
我们已经很长时间没有看到一个新CPU性能较之上一代能有明显的提升的状况出现,而AMD的Ryzen 5000系列产品以及他们的新Zen 3内核就做到了这一点。
虽然我们只有很短的时间来使用功能全面的Ryzen 5950系统,但这就足够给我们留下了深刻的印象。Linux Mint 20的启动速度是如此之快以至于引人注目,这实际上是我们日常主要系统花费时间的一小部分。其中大部分取决于PCIe4 SSD,但CPU不得不在输入数据时对其进行处理。
在系统上花了几分钟的时间后,我们在技嘉X570 Aorus Master主板上搭配了AMD Ryzen 9 5950X、三星980 Pro PCIe4 SSD和16GB GSkill Trident Z Royal DDR4-3600内存,该系统在所有内核上均以1.25V的电压在4.5GHz频率运行。
考虑到所有这些,在我们看来,有一件事也很突出,该系统速度非常快。由于它是目前市场上最高端的游戏PC,因此您希望它能发布出最好的数字,并且对网络的简要了解表明它确实符合SemiAccurate的早期主张,即“ AMD应该在现在一切上取胜,而英特尔没有回应”。唯一真正的问题是它如何到达那里,这是一个漫长的故事。
如果您查看Ryzen 5000 CPU的高级框图,它们看起来就像基于Zen 2的Ryzen 3000。他们有一个或两个CCD,但是基于经过改进的7纳米制程(在Intel语言中为+或++)和一个cIOD。该cIOD与R3K产品线中的cIOD完全相同,而这颗来自Global Foundries 12nm的芯片面积为125平方毫、拥有20.9亿个晶体管,整个die几乎没有任何改变。
在CCD方面,几乎所有方面都发生了变化,但现在我们将重点关注在die本身上。这些变化需要一个新的封装,其接线方式不同,但仅此而已。每个CCD为80.7平方毫米,包含41.5亿个晶体管。这意味着单个CCD封装的总硅面积为205.7平方毫米,两个CCD SKU的总硅面积为286.4平方毫米。更令人印象深刻的是,AMD能够提高DDR4-4000支持的内存速度,而无需更改包含内存控制器的cIOD。对于基于Milan的服务器产品,这具有一些非常有趣的含义,但这又是另一回事了。
深入研究CCD,我们会看到一些差异出现,特别是在核心组织层面。Zen 2 / Rome CCD逻辑上细分为两个4C CCX,每个CCX具有16MB的L3缓存。这两个高速缓存片和核心群集没有直接连接,要使核心4与核心5进行通信,它必须离开裸片,转到cOID,然后返回同一CCD上的另一个CCX。这是巨大的功耗浪费,还增加了延迟,而且通常不是一个好主意。您唯一能说的好事是,任何两个CCX之间的延迟都相当一致。
Zen 2 vs Zen 3 的CCX安排
Zen 3 / Milan通过将CCX升级为具有32MB可直接访问的L3缓存的8C来解决此问题。每个L3高速缓存块都经过地址切片(address sliced),但转到另一个CCD仍意味着需要进行一些封装和cIOD traversals,并且链接的负载远小于Zen 2设备上的负载。借助少量的OS调度程序支持或软件优化,这将带来整体性能显著提高。不利的一面在于,较大的L3意味着延迟从16MB Zen 2 L3中的39个周期增加到Ryzen 5000中的46个周期。总体而言,最坏的情况稍差一些,但平均性能和实际性能要好得多。
在L1和L2缓存上,Zen 3与上一代相比没有太大变化。L1 I $和D $仍然分别为32K,而L2仍为512K,这三个延迟均保持不变。L3则是高速缓存的“受害者”,因此仅当从L2撤出东西时才填充它,但它具有阴影标签,因此其他内核可以从同一裸片上的L2中拉出而无需掉头到内存控制器。
从核心开始,带宽也得到了改善,该核心现在可以每个周期执行三个负载或两个存储,除非它是一个256b操作,分别最大为2和1。内存路径始终为32B /周期,但L3写入内存的方式仅为16B /周期。除此之外,从上表中可以看到,一切变化不大。一切都相同或更好,并且在实际工作负载中显示出了好处。
Zen 3核心是全新的,其整数管道(Integer pipes)从7扩展到10,FP从4扩展到6,并且据称可以更好地利用一切。AMD将新内核的目标描述为性能,延迟和效率的提升,但净能耗没有增加。据了解。其IPC增长了19%,每瓦性能提高了24%,所有这些似乎都表明AMD达到了目标。
一如既往,细节决定成败,但即使从高级的角度来看,很明显内部也发生了很多变化。在前端,两种架构之间的情况看起来相当相似,但Zen 3将Micro-Op Queue分为Op Queue和Dispatch阶段,但实际差异更加细微。BTB翻倍、分支预测器带宽增加、等待时间减少、准确性增加,并且过渡得到更好的处理。
分支预测器变得更快是不错的,准确性也略有提高,但最大的成功在于延迟。“无气泡”声明意味着一旦预测到某些结果,该结果就可以在下一个周期使用,而不必等到将结果发送到正确的块时再使用。这确实很难做到,AMD不会评论确切的方法,但是会花费很多时间。类似地,从错误预测中恢复所花费的时间也减少了,这同样也是为了降低预测延迟。
分支预测器每个周期可以将四个操作拉入队列。AMD改进了处理极端情况和边界过渡的方式,这再次提高了延迟。那就是说x86可变长度操作数是一个痛苦的事情,即使有了改进,事情也会变得很快复杂。一旦将其解码并存储在操作缓存中,这些边界是已知的,并且情况变得更加清晰,因此每个周期可以将八个操作分配给该橙色框而没有名称。
所说的半匿名橙色框非常重要,因为Zen 2令人头疼的是将I $端和Op-Cache端的操作重新组合在一起,这可能需要花费一些时间才能正确排列所有内容。Zen 3这样做的速度更快,减少了等待时间,并且又是专有的。最重要的是,这里做出的决策要细得多,因此要好一些,要快一些。总而言之,总的来说,前端要稍微精确一些,而延迟却要低得多,从而在性能和功耗上取得了巨大的成功。
Zen 3的前端每个周期可以发出16条指令,而Zen 2中为11条指令。在几乎不可思议的巧合中,该数字与Zen 3中的16条管道非常接近,而Zen 2中为11条。FP则从4增加到6。从整体芯片的效率可以看出,AMD在这方面似乎已经取得了平衡。
从上图可以看到,调度程序(scheduler )从92个条目增加到96个条目,更具体地说,是四个24条目调度程序,物理寄存器文件从12个增加到192个,ROB则提高到256个条目,而不是Zen 2的224个。这些数字在效率方面非常有用,他们确保每个单元都有足够的空间来保持最佳状态,但是真正的变化在于管道本身。
如您所见,现在有4个ALU,3个AGU,一个专用分支单元和2个存储单元。这10个单元中的每个单元(注意,上面的幻灯片中没有全部图示)可以在每个周期内馈送,这是较之Zen 2的一个很大改进。还要注意,管道的排列方式使每个ALU / AGU对都由一个调度程序馈送,但是它们仍然能够独立工作。这是效率的重要部分,它允许以更少的复杂性进行更多的工作。如果必须对其进行总结,则会添加管道以避免争用,并且出于类似的原因,它们的排列也更好。较少的复杂性和布线往往会使事情变得更有效率,这就是重点。
在FP端,延迟也是一个关键的优化领域,这是更广泛的问题。新的架构仍然有2个Mul和2个Add管道,但是F2I(Float 2整数)功能已被分解以分离管道,并且其中一个与存储单元结合在一起。显然,这可以减少争用,并且由于可以同时送入所有六个管道,因此可以提高吞吐量。Zen 2的5周期FMAC操作减少了一个周期,因此延迟也减少了。调度程序会随着内部带宽的增长而增加一点,所以一切都很好。
此外,在FP单元闲置时,将数字提升到指数的精灵还有更多舒适的椅子可以坐在那里,因此在需要时它们会很新鲜。只是检查看看您是否还在关注。
加载/存储始终是与非技术朋友讨论的有趣话题,AMD这次给我们带来了一些新的东西。主要的是3个AGU,这意味着它们每个周期可以完成三个加载或两个存储,或者两个(如前所述)为256b,则可以存储两个。这是双赢,更大的带宽和更大的灵活性,这在现代超优化内核中是罕见的。还有更好的内存依赖检测,还有四个TLB Walker,总共六个。
其余的改进可以总结为“到处都有更好的情况”。存储队列增加了33%,达到64个条目,但是大多数其他结构的原始大小或多或少都相同。跨页面边界的更好的预取在更早的时候就被提出了,而且对存储到加载的前向依赖项也有了更好的预测。专门被调用的一条指令是REP MOVSB,它对短副本的延迟确实很高。
在Zen 3中,在短迭代次数上减少了很多,在中位数上得到了改善,但从长远来看仍然可以正常工作。同样,在许多地方略微减少延迟会带来很多好处,这就是装入/存储单元的全部更改。:
还有很多其他小事情,它们又使Zen 3内核比Zen 2更快,更高效。一些指令的执行速度更快,其中一些已在上面提到,还有很多事情,例如执行时的指令排序。Op缓存之间的延迟要低得多。最终,所有这些都加起来很大,特别是AMD声称IPC增加19%,每瓦提升24%。
除此之外,还有一些新功能,一些次要功能,一些重要功能。在安全方面,Zen 3现在支持控制流实施技术(Control-Flow Enforcement Technology :CET),基本上是用于阻止ROP攻击的影子堆栈。VAES和VPCLMULQD这两个指令现在具有AVX2支持,这应该可以极大地缓解等待此情况的粉丝的烦恼。越来越多的粉丝正在等待AMD对MPK的描述,该描述有效地允许了更精细的内存权限。
SemiAccurate询问了有关问题,但AMD没有解释,但我们认为当Milan/ Epyc 3发布时,他们很快就会解决。
另一个好处是,AMD终于对其基准测试设置进行了可靠的披露。希望他们GPU方面也能与时俱进。因为可信任的数字都是信任所必需的。
最终,我们来到这里,采用Ryzen 5000系列的Zen 3已经面世,从远处看,它看起来很像Zen 2 / Ryzen3000。放大之后,您可以看到CCD上的所有东西都是全新的向上。
IPC提升19%意味着AMD现在赢了一切,所有以前的英特尔据点和重要案例现在都清楚看到了Ryzen的胜利。是的,在这里和那里还有一些事情,英特尔仍然可以取得奇数胜利,但仅此而已。当AMD将其产品定价高于英特尔时,您就知道一切都结束了。
从这里我们预计5nm Zen 4会在一年内上市,并带来实质性的性能优势。从现在到现在,英特尔都无法与AMD相抗衡。Zen 3明年将表现良好,事实证明它是如此出色。
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第2488期内容,欢迎关注。
『
半导体第一垂直媒体
』
实时 专业 原创 深度
识别二维码
,回复下方关键词,阅读更多
存储|晶圆
|光刻
|FPGA|并购|Marvell|华为|功率半导体
回复
投稿
,看《如何成为“半导体行业观察”的一员 》
回复
搜索
,还能轻松找到其他你感兴趣的文章!