AMD走出自己的路 小芯片设计如何打造业界最强64核EPYC?
2019年5月,AMD迎来了自己的50岁生日。在X86这个行业,她只比老大哥Intel小一岁,后者去年迎来了自己的50周岁纪念日。50年来,这两家企业几乎主宰了全球半导体市场的风云变化,基本上Intel占主导地位,而AMD扮演挑战逆袭者的角色。
AMD的最近一次逆袭,还得从5年前更换CEO说起。2014年10月份,即将发布Q2季度财报的AMD公司宣布CEO罗瑞德退位,这个职务将由时任COO的苏姿丰博士(Lisa Su)接任。那时候的她,刚刚加入AMD公司2年而已。
彼时的AMD仍然处于蛰伏阶段。在CPU及GPU领域,AMD的两大对手Intel、NVIDIA已是如日中天,而当时的AMD并没有能足够与之博弈的处理器和显卡产品——如今给AMD带来巨大转机的Zen处理器当时还在开发当中。不过,CEO苏姿丰是标准的女强人,AMD不服输的血性是刻在骨子里的。
刚刚接任CEO没多久,苏姿丰就在接受媒体采访时表态——“我们不会活在Intel阴影下”,这句话不是苏姿丰担任CEO之后AMD才做的,多年来AMD实际上一直在这样做。AMD希望寻求一条不同于Intel的发展之路。
太远的不说,从X86处理器进入64位时代开始,AMD首次在64位指令集上做到了胳膊拧过大腿——大家津津乐道的K8大锤处理器最关键的成功不是架构,而是抢先了64位指令集,如今我们在用的X86_64指令集的名字是AMD64,Intel后来也遵从了这一指令集。
在这之后,AMD在X86处理器发展上一直在走自己的路。2011年,AMD推出了推土机Bulldozer架构,这款处理器的设计思路非常先进,2个整数单元+1个弹性浮点单元的设计迎合了AMD收购ATI之后意图打造的CPU+GPU协同发展的理念,这种模块化设计是X86发展的一个里程碑。
推土机首发桌面8核处理器
再后来,AMD推出了我们今天讨论的主角Zen核心,这一代的处理器架构设计可谓具有突破性的改进,也同时延续了AMD自己的特色。它的问世不但让AMD实现了逆袭,也给AMD打下了未来十年的基础,目前发展到了Zen2,从路线图上看,Zen4架构已经在研发了。
Zen架构实现52% IPC性能提升 模块化设计重出江湖
十年磨一剑,终成大器!2017年3月2日,AMD终于拿出了Zen核心的锐龙处理器,重返高性能处理器市场。Zen架构的到来,给了AMD扭转局势的机会。在K10、推土机两代架构之后,这是AMD再一次冲击X86市场,AMD也多次表态要再现辉煌,夺回失地。
关于第一代Zen架构的改进细节,这里就不一一赘述了。两年前发布的产品在网上已经有大量评测和解析了,我们只提AMD在重新设计了内核、SMT多线程、缓存、Infinity Fabric总线等单元之后,Zen架构实现的目标吧。
AMD之前宣称Zen架构实现了40%以上的IPC提升,不过最终发布时,AMD表示其实际IPC性能提升了52%,远超预期。相比以往的K10、推土机架构有了质的改变,比对手挤牙膏式的架构升级也是天翻地覆的变化。
在上述架构改变中,AMD重新设计的CCX(CPU Complex)架构是最重要的。每个CCX单元有4个CPU核心,每个核心各自有64KB L1 I-Cache(指令缓存)、32KB L1 D-Cache(数据缓存)、512KB L2缓存,L3缓存高达8MB,但是4个核心共享的。
这样4核CPU组合的CCX算是AMD Zen架构的一个模块,在第一代中桌面处理器最多8核16线程,里面是2个CCX单元,二者之间使用Infinity Fabric总线(简称IF总线)连接,而IF总线又是Zen架构的另一个仅次于CCX的创举。
桌面处理器锐龙7 1800X的物理核心如下图所示:
桌面版锐龙7 1800X处理器开盖后的核心
用于服务器版的Naples处理器最多32核64线程,也就是8组CCX单元,分配在4组CCD(Core Chiplet Die)单元中。不过这时候AMD还没有正式用CCD这个命名,直到现在的Zen2架构中才出现这个命名。
服务器版EPYC 32核(Naples)处理器开盖后的核心
桌面版因为最多8核,所以只有1个CCD单元,外面看起来跟原生8核没什么区别,而服务器版是32核,有4组CCD单元,可以更清晰地显示出AMD在Zen(改进型Zen+是一样的架构)的设计思路——那就是模块化。不过,这个模块化跟推土机的模块化不一样,属于创新模块,不是将内核模块,而是将CCD模块化,需要多少核心就配置相应的CCX/CCD核心即可。
摩尔定律放缓 AMD另辟蹊径:Zen2走向混合小芯片设计
在14nm Zen及改进型的12nm Zen+这两个系列的产品中,AMD解决了高性能处理器的有无问题,52%的IPC性能提升彻底改变了AMD处理器的处境,不过Zen第一代的产品依然谈不上完美,AMD要在新一代的Zen2架构上解决两个问题。
一个问题是继续提升Zen的IPC性能,另一方面则是要继续扩展Zen处理器的并行性,也就是更多的CPU核心。尽管AMD在Zen一代上已经实现了桌面8核、服务器32核,核心数上继续领先,但这还没有达到AMD的目标,要大幅超出才行。
前一个问题要靠继续挖掘Zen架构的潜力,后一个问题就不只是架构设计的问题了。工程实现上难度更大,因为AMD在Zen2架构上要做64核128线程,并首发7nm工艺,将打造迄今为止最强大的X86处理器。
在友商也只能做到28核的情况下,AMD做64核处理器最挑战的地方是什么?答案很简单,那就是成本,因为摩尔定律在最近几年中已经放缓了,AMD如果继续按照原有的思路做下去,那64核EPYC处理器的成本是难以想象的。
对于这一点,AMD有着清醒的认识,此前AMD CEO苏姿丰在2017年的一次会议中就对比过先进工艺对成本的影响。统一以250mm2的核心来算,45nm节点的成本算作1,32、28nm节点开始提升,20nm节点就变成2倍成本了,到了7nm成本跃升为4倍,未来的5nm更夸张,成本将是之前的5倍。
很显然,在Zen2架构确定要上7nm的时候,如果按照之前的路线走,后果就只有两种——要么造不出来,要么造出来成本极高,因为按照AMD之前估算的那样,如果是原生64核,那么核心面积接近800mm2了, 这几乎是现有193nm ArF光刻机的处理极限,制造难度太大了。
当然,我们现在都知道了Zen2架构不会采用这样的原始方式,因为AMD在这一代X86处理器上用了升级的Chiplets混合小芯片设计,这也是未来处理器的发展方向。它比第一代Zen的小芯片更为高明,让Zen2有了脱胎换骨的变化,以一种更巧妙的方式实现了首款64核128线程X86处理器。
Zen2小芯片架构分析:CPU核心面积大降 IO搭配更灵活
什么是chiplets小芯片设计?业界并没有统一的定义,简单来说这是一种新兴的芯片设计思路,将大芯片化为多个小芯片,每个芯片的功能则比较单一,而且可以搭配不同的工艺,以实现提高性能、增加良率、降低成本的目的。
在7nm Zen2处理器上,AMD实现混合小芯片设计的方式就是将CPU与IO单元分离,分别称为CCD(Core Chiplet Die)、IOD(IO Die),在一代Zen架构中每个CCD单元都是一样的,每颗CCD都包含IO部分,1-4组CCD单元实现了8-32核的并行;而在Zen 2架构中,IO核心被分离了出来,1个IO核心连接所有CPU核心。
而且这个IO核心不需要使用7nm工艺,而是14nm(EPYC霄龙)或者12nm(Ryzen锐龙)工艺,核心面积分别是416mm2、125mm2,里面根据需要集成了不同数量的DDR主控、PCIe主控、IF总线等IO单元。
Zen2架构的CPU剥离了IO单元,变成了纯粹的CPU微内核,再加上7nm工艺相比14nm工艺带来了一倍左右的晶体管密度提升,所以在核心面积上7nm Zen2大幅缩小,单个小芯片面积只有74mm2,整合的L3缓存高达16MB,而Zen一代上一个芯片的面积是213mm2,其中核心部分只占120mm2,其余的都是IO单元的面积,由此可见Zen2架构采用小芯片设计带来的优势极其明显。
那么AMD采用小芯片设计到底有多大的收益呢?我们可以确定的是这种设计的良率会很高。到底有多高?AMD官方没有公布过具体数据,不过第三方分析称8核Zen2的良率达到了93.5%,在台积电7nm 12英寸晶圆上可以生产出749个8核处理器,生产32核心也有187个,成本优势明显。
当然,这样的算法只是用于评估Zen2采用小芯片设计带来的成本优势,真实成本要比纯代工成本高很多,还得算上研发、封装测试成本。但怎么来算,这种设计都赋予AMD在成本控制上极高的灵活性,远非原生大核心可比的。
最后还有一个问题值得关注,那就是延迟,虽然CPU、IO核心分离解决了超多核心的并行问题,但是IO、CPU分离开来也会导致延迟增加,这跟原生多核相比是个劣势。不过AMD在Zen2架构也针对此做了改进,包括IF2总线及缓存上的改进。
作为Zen2处理器CPU、IO及CPU核心之间的总线,IF2代采用了总线频率、内存频率分离式设计,保证可以达到更高频率和尽可能低的延迟,总线速率从前代的10.7GT/s提升到了18GT/s,数据传输更快。
而且每个CCD单元有各自的Infinity Fabric PHY物理层,通过它和I/O Die芯片内的数据总线(Data Fabric)进行高速互连通信——注意,两颗CPU芯片之间没有直接通信,都要经过I/O Die,这样可以保证不同核心、缓存之间的延迟是一致的。
此外,缓存方面也做了改进,一方面Zen2架构的L3缓存翻倍,每个CCX单元配备的L3缓存从8MB翻倍到了16MB,8核处理器是32MB L3缓存,64核的EPYC处理器最多拥有256MB L3缓存,远高于前代及对手产品。
另一方面,Zen2的内存频率也大幅提升,前代EPYC支持的内存频率不过2666MHz(桌面Ryzen为2933MHz),这一代官方数据是服务器和桌面都可以支持3200MHz,但这个数据可能比较保守,据称桌面端可以一键超频到4200MHz,高者可达DDR4-5133Mhz。
还有一点需要强调的是,Zen2率先支持了PCIe 4.0标准,在IO的带宽上也有了长足的提升和保障。
64核EPYC处理器性能碾压式胜利 打破140多项世界纪录
得益于Zen2架构的性能改进及64核128线程的超多核心,第二代霄龙EPYC 处理器一经问世就打破了多项性能世界纪录,官方最新统计显示有140多项记录被64核128线程的EPYC刷新。
AMD打破性能记录的领域设计HPC、浮点运算、整数运算、Java、DB/ERP、能耗、大数据、云计算及渲染等,几乎囊括了每一个需要高性能计算的市场。
64核EPYC处理器的性能不只是AMD官方自吹自擂,许多第三方评测网站也证明了AMD所言不虚——InsideHPC、Serverthehome、TheNextPlatform等专业网站也做了大量EPYC处理器性能测试,结果也显示64核128线程的EPYC处理器在性能上有非常明显的优势,大幅领先对手的28核56线程至强。
AMD不只是在性能上有优势,同时价格上也要比对手便宜——64核128线程的EPYC 7742处理器只要6950美元,而对手的28核至强8280处理器售价超过1万美元,顶配版要1.3万美元,是AMD 64核的2倍左右。
上面价格对比不仅显示了AMD EPYC霄龙处理器的高性价比,实际上也反映了与友商的成本差距——AMD采用的小芯片设计大幅降低了成本,而友商原生28核的设计使得制造难度极高,成本很难降低。
AMD对核心永远不满足 引爆X86核战
2019年是AMD成立50周年,X86处理问世41年。在过去几十年的历史中,X86处理器的舞台上主要留下了AMD及Intel两家公司,期间虽然大部分时间都是Intel在主导X86发展,但AMD也屡次实现了技术创新上的反超,像64位,成就AMD曾经辉煌的超传输总线技术等等,如今,在多核X86上,AMD再次占了上风。
为了尽可能提升多核性能,AMD在第一代Zen处理器上首次使用了chiplets技术。而在最新的Zen2处理器上,AMD又首创了Hybrid Multi-die架构的混合小芯片Chiplets设计,计算die和IO die采用不同的制程,赋予X86多核处理器极高的灵活性,使得AMD解决了7nm等先进工艺制造成本高、难度高、良率低的问题,可以更灵活地扩展CPU核心。这种堆积木的混合式组合使得桌面处理器达成达成了16核,服务器处理器轻松达到64核128线程。
最后的结果也证明,AMD这次赌对了。它不仅在桌面处理器上创造了世界首款12核、16核游戏处理器锐龙9系列,在服务器市场上更是凭借64核128线程大杀四方,性能及售价双重优势明显。
AMD引爆了X86处理器的“核战”,而且是主动出击,这也给对手Intel出了一个难题。后者目前最强的至强处理器也只有28核56线程,核心数方面与EPYC二代差距甚大,在性能上已经无法与之竞争,而且成本上更无还手之力——AMD EPYC 64核在核心数翻倍的情况下售价只有一半左右,这样的吸引力对云计算、数据中心等客户是无法抵抗的。
更可怕的是,似乎AMD未来也不会停止这样的核战。AMD CTO Mark Papermaster在接受采访时表示,市场对处理器核心数没有天花板限制,软件正在快速针对多核CPU进行优化,可以充分发挥多核多线程的优势。AMD在核心数方面不会停止进步。
根据AMD官方发布的路线图,现在7nm Zen2架构之后的两代处理器已经确定,Zen3已经完成研发,Zen3之后,Zen4架构也在按计划研发设计中。虽然具体规格现在还没有确切消息,不过可以确定的是——AMD在X86处理器上已经重回领导者地位了。