AMD的Zen架构可谓大获成功,除了桌面版本的8核心产品外,AMD还推出了面向服务器市场的更多核心产品,包括16、32核心的处理器。对超多核心处理器产品而言,如何保证处理器多核心之间的通讯和同步,一直是一个非常重要的问题。那么,在AMD的Zen家族产品上又是如何解决这个问题的呢?其所采用的AMD Zeppelin核心又有哪些特点呢?
AMD Zen架构可谓AMD近年来最具革命性的架构之一。Zen架构不仅仅在性能上让AMD重获新生,并且带来了大量独特的设计和全新的特性,其中很重要的一点就是互联性能。实际上,Zen架构早在设计之初,就已经考虑了不同场景下的应用需求:一方面是主流的处理器,拥有4~8个核心;另一方面是企业客户和服务器市场,需要多达20~30个处理器核心。
面对这样完全不同的需求,AMD需要在技术上做出特殊设计。鉴于此,AMD最终拿出的方案是“Zeppelin”核心,也就是中文被称为“齐柏林”的核心。这款核心的特殊设计,可以让AMD能够满足不同的用户,包括桌面的锐龙处理器、服务器的EPYC以及随后才推出的、面向HEDT市场的锐龙 Threadripper。
总览布局——Zeppelin的功能结构
▲Zeppelin核心包括2个CCX核心、内存控制器、16通道IFIS和PCIe复用控制器、IFOP、 USB控制器和南桥控制器。
一个完整的Zeppelin核心如图所示。从图中可以看出,一个Zeppelin核心中拥有2个CCX核心,2个IFIS/PCIe核心、4个IFOP核心以及1个DDR4内存控制器。具体一些来看,Zeppelin核心的单个PCIe控制器有16个PCIe 3.0通道,两个总计就是32个通道,另外这些PCIe控制器都支持AMD自家的Infinity Fabric InterSocket (IFIS)协议。在内存控制器方面,Zeppelin拥有一个双通道DDR4内存控制器,支持ECC校验,每通道最高支持256GiB内存,支持如此巨大的内存容量主要是考虑到企业级用户的需求。
接下来则是最重要的部分,为保证同一个衬底上不同核心之间的通信需求,AMD还在Zeppelin上设计了4个Infinity Fabric On-Package(IFOP),也正是由于这些接口,使得AMD能够在保证处理器内部核心通讯性能的情况下,通过搭积木的方式,灵活使用不同数量的Zeppelin核心来实现不同核心数量的CPU,并面向不同的市场。
另外,Zeppelin核心上也存在一些常规的设计,比如4个USB 3.1接口控制器,以及南桥控制器等。AMD称南桥控制器为服务器控制器中枢(SCH),SCH支持所有的低速接口,包括SPI、LPC、UART、I2C和SMBus,SCH还包括实时时钟部分。
SDF和SCF——Infinity Fabric的内部结构
Zeppelin在核心架构上的一大创举就是被称为“Infinity Fabric”(无限平铺)的总线方案了,这个总线方案堪称整个Zen架构的核心。俗话说“要想富先修路”,AMD这次就修了一条这样的高速道路,并用其“无限”扩展自己的产品。根据AMD的资料来看,Infinity Fabric实际上被分成2个部分,分别是可扩展数据结构SDF和可扩展控制结构SCF,本文的重点将集中在SDF部分。
▲AMD目前处理器间和处理器的外部通讯主要依靠Infinity Fabric总线。
根据现有资料,SDF部分的组成结构还是比较复杂的。如下图所示,该图展示了SDF的部分细节,为了更清楚地显示SDF和内部通讯部分的连接,图片中的比例做出了调整,两个CCX被大幅度缩小了体积,SDF和其他接口被画的更大了一些。
▲Zeppelin的内部结构连接方位图。