AMD Zen2架构深度揭秘:100%翻新 单核性能完美
2017年,amd zen架构横空出世,ryzen锐龙、epyc霄龙处理器在各个领域都大杀四方、一举扭转乾坤。
2018年,zen架构升级增强进化为zen+,制造工艺也从14nm来到12nm,而到了2019年,我们迎来第三代锐龙3000系列处理器的同时,架构也升级为全新的zen 2,同时制造工艺也是全新的7nm。
zen 2架构到底全新在哪里?7nm工艺到底有何加成?今天我们就来探究一番,当然cpu架构和制造工艺是极深的、极专业的,我们这里也只是浮光掠影地看一些毛皮,感受一下amd激进的步伐。
首先介绍一下mike clark,amd corporate fellow(企业院士)、zen首席架构师。能有今天的处理器,这可是首要功臣,当然还有大神级的jim keller,以及无数工程师的心血付出。
zen架构诞生之初,amd就强调这是其未来多年发展的基石,同时也早早就准备好了长期路线图。14nm zen打破坚冰、12nm zen巩固*之后,7nm zen 2将在七月份正式出货,7nm+工艺的下一代全新zen 3也正在按计划进行,如无意外将在2020年以锐龙四代的身份和我们见面。
再往后,amd还有zen 4乃至是zen 5,都正在设计之中。如果每年一代的话,至少到2022年,amd都会以让人目眩的速度持续提升。牙膏,不存在的……
zen 2的设计理念或者原则主要有四条,一是结合新工艺成为世界上首个7nm工艺的高性能x86 cpu,二是在核心执行能力方面全方位增强以提升ipc,三是增强硬件安全性,四是新一代infinity fabric互连总线实现配置和性能的模块化和灵活性。
zen 2架构使用的7nm工艺当然是来自台积电,amd也与之有着极为深入的合作,从cpu到gpu都在用它。
作为一个重要工艺节点,台积电7nm从高性能到低功耗、从数据中心到桌面到移动都应付自如,实现了晶体管密度的翻番,同等性能下功耗可以降低一半,而同等功耗下性能可提升超过25%。
初代的zen架构相比于推土机架构实现了几乎恐怖的52%的ipc(每时钟周期指令数可粗糙理解为架构性能或者单线程性能)提升,zen+在加强了个位数之后,zen 2又一举提升了多达15%,远远超出了行业平均水平。
而到了产品层面,zen 2相比于zen+的单线程性能提升了多达21%,其中六成来自ipc架构强化,另外四成来自7nm工艺和频率提升,锐龙处理器单线程、单核心性能稍弱的劣势从此彻底不复存在。
再进一步,到了实际游戏中,以两代主流旗舰为例,同样是8核心16线程,锐龙7 3800x相比于锐龙7 2700x的游戏性能在主流大作中可以轻松提升少则超过10%,多则达到34%甚至更多,所以今后再说锐龙打游戏不行可就过时了。
zen 2架构和锐龙三代能取得如此长足的进步,来源于方方面面的强化,简单来说有架构大幅革新、分支预测改进、整数吞吐提升、浮点模块翻番、内存延迟降低、三级缓存容量翻番、频率大幅提高、系统和软件优化,等等等等。
除了底层架构的大变,三代锐龙(以及新一代霄龙)还采用了chiplet多芯片设计。虽然很多人称之为“胶水”,但是在如今摩尔定律前进迟缓、半导体技术提升艰难的情况下,这其实是非常明智的选择。
一方面,它可以减轻架构和工艺压力,不同ip模块可以选择最合适优化的工艺,从而大大降低研发、制造成本,并提高良品率。
另一方面,它可以灵活地配置产品规格和特性,针对不同市场提供最合适的产品,也能更好地提升峰值计算性能。
对于多芯片设计,最关键的因素就是提高不同模块之间的通信带宽和效率、降低延迟,amd为此设计了infinity fabric总线,无论amd cpu还是amd gpu,互连互通都是基于这种新型总线。
三代锐龙上,infinity fabric总线已经进化到第二代,在扩展性、延迟、能效各个方面都有显著提升。
扩展性上,特别针对消费级客户端应用做了优化调整(之前更多还是数据中心上),并且总线宽度从256-bit翻番到512-bit,以支持pcie 4.0,能效上则将单位功耗降低了多达27%。
延迟是多芯片互连的致命所在,一旦处理不好会导致整体效率的低下,包括核心、缓存、内存等各个模块都必须保持最高效率和最低延迟,比如新一代infinity fabric采用了总线频率、内存频率分离式设计,保证可以达到更高频率和尽可能低的延迟。
三代锐龙的基础模块仍然是ccx(cpu complex),每个ccx里有4个物理核心、16mb三级缓存(比二代翻番),同时两个ccx组成一个ccd(cpu complex die),也就是我们看到的每一颗cpu芯片。
单独的i/o die则集成了输入输出控制中心、一体化内存控制器(直连内存),注意它的制造工艺是12nm。
每个ccd有各自的infinity fabric phy物理层,通过它和i/o die芯片内的数据总线(data fabric)进行高速互连通信——注意两颗cpu芯片之间没有直接通信,都要经过i/o die,这样可以保证不同核心、缓存之间的延迟是一致的。
得益于新架构和新工艺,三代锐龙的每个ccx模块面积仅为31.3平方毫米,相比二代的60平方毫米缩小了足足47%,这也是同样封装下核心数量可以翻番的主要原因。
同时amd也避免了一核有难、多核围观的尴尬局面,从6核心12线程到8核心16线程再到12核心24线程,多线程提升几乎是线性的(每一个核心和线程都充分释放),达到了几乎完美的98%。
比性能提升更让人激动的是能效,比如锐龙7 3700x相比锐龙7 2700x,绝对功耗从195w降低到135w,结果就是cinebench r20多核心跑分的能效(每瓦性能)提升了多达75%。
能效提升如此之多,新工艺新架构自然功不可没,也大大带动了频率,zen、zen+最高可以分别达到4.1ghz、4.35ghz,zen 2则来到了4.7ghz(16核心的3950x),同时大大降低了达到最高频率所需的最大电压。
zen架构的内存延迟一直不是很好,但也一直在改进,zen 就有了明显的变化,zen 2更是进一步降低最多达33ns,而且支持更高的ddr4内存频率,从2667mhz到3600mhz游戏性能可提升5-10%甚至更多,而翻了一番的三级缓存更是让zen 2有如神助,游戏性能可提升10-20%。
说了半天,zen 2架构设计呢?鉴于这些内容过于深奥,我们刚才先讲了新架构的效果,接下来就分享新架构的内部设计,只说一些最关键的、最容易理解的地方,感兴趣的可以细细研究架构图,或者等待后续的技术白皮书。
zen 2架构总览图和核心新特性,特别注意新的tage分支预测器。amd这次采用了chiplet都芯片设计,而为了协调分散的不同模块,不但有加强版的infinity fabric总线,不但有翻番的三级缓存(提高命中率),还特别强化了分支预测,从而将预测错误率降低了大约30%,使得处理器可以花更少的时间完成前端分派工作,提高效率的同时也能节省功耗。
缓存结构也有极大调整,支持各级缓存一致性,大大降低有效延迟,加入新的缓存指令。
其中,一级指令缓存从4-way 64kb调整为8-way 32kb,和一级数据缓存保持一致,关联性更强,预取和利用率都得到改进。
二级缓存保持每核心8-way 512kb不变,三级缓存则翻番到了每核心对应4mb,可以很好地提升游戏性能。
其他方面:翻番的4k微指令操作缓存、四个整数单元和三个agu地址生成单元(之前是两个)、每时钟周期三个agen/两个载入/一个存储、浮点单元翻倍支持单操作avx-256、更快的虚拟化安全、硬件增强安全防御,等等。
以上是zen 2前端、预取、解码、浮点单元、整数执行、载入存储、缓存、安全等几乎所有模块的改进,可以看到几乎每一处都得到了全面强化和革新。
安全方面,zen架构诞生后爆发了大量的安全漏洞威胁,幸运的是zen对于meltdown熔断等诸多漏洞以及部分spectre幽灵漏洞天然免疫,补丁都不需要,同时可以通过固件更新、系统补丁等修复受影响的spectre幽灵漏洞。
zen 2则在设计之中就从硬件层面防御了spectre幽灵漏洞,不但绝对保证安全,也不会因为打补丁而导致性能损失。
以上就是amd zen 2架构在设计上的革新,以及结合7nm工艺带来的众多飞跃,至于实际产品表现,稍后分享官方性能数据,然后7月7日首发评测见!