交换机芯片背后的黑科技解密
扫描二维码
随时随地手机看文章
世界上现有的交换机制造商可以从服务器(server racket)上学到一些东西。实际上,他们也的确这样做。但这是因为世界上的超大规模用户和云建设者一直在倡导他们分解交换机的组件,以开放交换机的架构,并推动他们让器件更可编程,这样便不必像今天一样花好几年时间等待下一代芯片的问世。
纵观整个产业的发展,在过去的三十年中,互联网已经变得非常商业化,企业网络的协议和技术已经发生了变迁。但是我们也应该看到,虽然作为互联网中坚力量的以太网和TCP/IP协议栈显然是开放的,但是交换芯片和交换机制造商都对内部的组件讳莫如深。在过去几十年里,他们也很享受这种全盘控制给他们肉体上、心理上、技术上和经济上带来的快感。
我们发现这很烦人,为此我们鼓励大数据领域内的领先交换芯片制造商(如Broadcom,Mellanox Technologies,Barefoot、Cavium和Innovium)详细谈论他们的技术。但与我们从全球CPU制造商那里获得的技术相比,他们公开的技术太肤浅。而且交换机的元件也没有像我们可以从任何一台OEM或ODM想要组装的服务器上那样被详细地列出。也许有一天,交换机技术公开会成为现实。
最近,在数据中心交换设备巨头思科公司举办的思科Live盛会期间,我们觉得特别恼火,因为我们发现,虽然思科实际上已经采用了Barefoot Networks的“Tofino”可编程交换机,但他们却不想承认这个事实,而是大谈特谈其未来的可编程交换机的计划,还有希望能够重新进入超大规模用户数据中心领域等东西。但实际上除了在一些金融服务公司中有分布式欺诈检测和风险分析集群以外,思科在HPC中没有其他任何业务,而前者也市值由于他们熟悉iOS或NX-OS交换机操作系统,所以喜欢购买思科交换机。
网络管理员对思科交换机操作系统,以及对不同的交换机ASIC(无论是自主开发的还是从商业交换芯片供应商那里购买的)的熟悉程度,是思科仍在数据中心交换机市场占据主导份额的原因。但是,这一份额已经从互联网热潮时期的65%下降到50%左右,这是有原因的。最主要的一点是,新兴的交换机制造商采用了新兴的商业交换芯片,改变了市场上的竞争格局、定价和创新步伐。但很明显的饿死,思科并没有与他们对抗,而是被迫加入他们的阵型。
最近在思科Live上,我们发现了思科技术营销工程师Faraz TaifeshesmaTIan做的一个精美演示,在上面,他详细介绍了思科Nexus 3000系列顶级机架式交换机中使用的商业交换芯片。值得一提的还是,这系列是思科对抗白盒交换机制造商,以及以太网领域的Arista Networks、Juniper Networks、Mellanox、戴尔、惠普的武器。
在PPT中详细描述并体现出我们倡导的那种开放。虽然我们无法参加思科Live,但这正是我们想要看的。TaifeshesmaTIan虽然没有谈论Nexus 9000芯片,但据我们所知,该芯片拥有思科自主研发的“Alpine”和“Northstar”ASIC,并且其应用中心基础架构(ACI)软件定义的网络扩展已经出炉。即使他没有详细讨论商业Nexus 9200、9300和9500交换机中使用的交换芯片。但是下面的图表确实提到了它们:
如你所见,在过去的几年里,思科采用了Broadcom的各种芯片——Trident、Tomahawk和Jericho系列。最近,Nexus 3400采用了Barefoot Networks的Tofino芯片。下面的图表总结了各种Nexus 3000交换机的目标市场和功能集:
这便是TaifeshesmaTIan总结的PPT的奇妙之处。它实际上提供了Broadcom和Barefoot未透露的一些芯片技术细节。(衷心感谢你。)
Let’s take them in order, starTIng with the Nexus 3000 family. The Nexus 3100 was based on Broadcom’s “Trident-2” ASICs, which delivered 1.28 Tb/sec of aggregate bandwidth and had a 12.2 MB buffer. With the Nexus 3100-V, Cisco moved on up to the “Trident-2+” ASIC, which boosted the buffer to 16 MB and had the same bandwidth. The Nexus 3100-Z adopted the “Trident-3” chip from Broadcom, which boosted the bandwidth by 2.5X to 3.2 Tb/sec and the buffer by 2X to 32 MB.
让我们依次看一遍。Nexus 3100基于Broadcom的“Trident-2”ASIC,提供1.28Tb/秒的总带宽,并拥有12.2MB缓冲区。在新的Nexus 3100-V上,思科采用了全新的“Trident-2+”ASIC,该产品将缓冲区提升至16MB,并具有相同的带宽。Nexus 3100-Z则采用了Broadcom的“Trident-3”芯片,该芯片将带宽提升2.5倍,达到3.2Tb/秒,缓冲区提升2倍,达到32MB。
下图Trident-3芯片的框图:
在这个1U交换机中,32个以100Gb/秒速率运行的端口都有一个“Falcon”核心,还有一个10Gb/秒的“Merlin”核心用于管理。Trident-3芯片有两个数据包处理流水线,每个流水线都有16个Falcon核心,这些核心被分成两组Falcon SerDes。每四分之一的SerDes都可以访问ASIC传输带宽的四分之一。
下图是Trident-3在Nexus 3100-Z交换机中的实际应用:
如你所见,这款交换机本身就是一台混合服务器,在名为“Chimay”的板子上,不仅有Trident-3 ASIC,而且还有一个自带内存的1.8GHz Xeon处理器(我们猜测它是Intel的Xeon-D芯片)。另外,还有一颗FPGA和一系列CPLD放置在端口和FPGA之间,以加速该交换芯片外部的某些功能。观察可知,Xeon处理器通过PCI-Express链路连接到交换机ASIC和FPGA。
我们继续看Nexus 3200,产品最初是基于Broadcom的“Tomahawk-2”ASIC设计的,它具有3.2 Tb/秒的总切换带宽,并且有4块4MB的缓冲存储器,总计16MB。 而新的Nexus 3200-E交换机虽然也是也基于Tomahawk-2系列,但是它的额定值为6.4Tb/秒,并且有4块10.5MB的缓冲存储器,总计42MB。
这款Nexus 3200-E增加了很多功能,基于64个Falcon内核的64个端口以100Gb/秒的速度运行,并且一个Merlin内核用于管理,运行速度可达100Gb/秒。这些端口都可以分成多个较慢的端口,如框图所示。
Nexus 3200-E交换机的结构如下:
此处有一个叫做“Tyskie”,不同的计算板,它仍然有一个带有自己的内存插槽的1.8 GHz Xeon CPU。初步看来,这可能是升级版的Xeon-D芯片。另外,Nexus 3200-E有48个Falcon核心,端口处理速度为100Gb/秒,16个端口有MACsec加密,用于在进出交换机时对数据进行加密。该芯片还有两个FPGA用于函数加速。
有趣的是,思科尚未公布基于Broadcom今年1月份公布推出的“Tomahawk-3”芯片设计的交换机,但我们猜测它将在今年年底或明年初推出。
我们继续看Nexus 3400。这是一款基于Barefoot Networks的Tofino可编程芯片的新型交换机。思科宣布在3400产品线上推出Tofino交换机,其中18个端口使用1.8Tb/秒的入门级Tofino ASIC,以100Gb/秒的速度运行,但他们同时展示了它采用高端的6.4Tb/秒的部分,这意味着还有一款64端口的Nexus 3000系列交换机正在研发。
下图是对Barefoot系列的一个相当低调的实现:
这些端口可以分成36个以40 Gb/秒或50 Gb/秒运行的端口或72个以10 Gb/秒或25Gb/秒运行的端口,这对一些服务提供商、超大规模用户和云建设者来说非常重要。当然,在Tofino芯片上有一个100Gb/sec的管理端口,可以根据需要进行分割。该芯片分为两块,每块速度900Gb/秒,带有一个16MB的统一数据包缓冲区,当然还有一个流水线,它完全可以通过Barefoot Networks创建并开源的P4语言进行编程。
Nexus 3400看起来很像Nexus 3100,在Nexus 3200的一些端口上添加了一些“Bear Valley”MACsec加密电路。事实上,它看起来很像是一个ASIC换了一些稍微不同的端口配置。请看:
现在我们看看Nexus 3500,它已经在这个领域使用了6年,并且基于思科自己的“Monticello”ASIC。这款Nexus 3500专门针对高频交易的应用,虽然它只有10Gb/秒端口,但端口到端口跳跃的延迟低至250纳秒,这比一个相对快速的以太网交换机通常的450纳秒要低很多。
下图是Monticello ASIC的框图:
Monticello芯片有三块缓冲区,提供18MB的容量,而数据包传输引擎可以提供480Gb/秒的聚合带宽,每秒处理7.2亿个数据包。同样,这并不是什么大新闻,但是延迟,特别是一致的延迟才是最重要的。
下图是Nexus 3548交换机的框图:
这款交换机暴露了它的年龄,但它仍然可能广泛用于金融服务行业。作为Nexus 3500唯一实例的Nexus 3548采用了英特尔的双核“Ivy Bridge”酷睿i3-3227U处理器,该处理器的频率可以从1.9GHz的额定速度超频至2.5GHz。同时,该处理器拥有16 MB自带的闪存,可以从DRAM内存启动。
另外,Nexus 3548机箱中有一个FPGA,可以支持48个以10Gb/秒或25Gb/秒速率运行的端口。最后一点很简略,因为25G标准在25G以太网标准推出很久后才发布。很明显,有一些软件定义的功能与Monticello ASIC相配合。这很好。
最后是基于Broadcom“Jericho +”ASIC的Nexus 3600系列深度缓冲器(deep buffer)交换机。最初的Nexus 3600拥有一对Jericho+ASIC,可提供1.8 Tb/秒的交换带宽,并具有8 GB(注意是GB,不是MB)的缓冲容量,而今年推出的第二代则有四个Jericho+芯片,高达3.6 Tb/秒的切换带宽和16GB的缓冲容量。
下图是Broadcom Jericho ASIC框图:
每个Jericho+芯片可以达到900Gb/秒的带宽,每秒处理835万个数据包,并且该芯片有一对包含96个虚拟输出队列的数据包处理内核。这些数据包缓冲区基于GDDR5存储器,与显卡中使用的一样。
这里是最新的Nexus 3636交换机的架构布局:
该交换机上的处理器板称为“Redcastle”,它是基于一个8核的Broadwell Xeon-D芯片,运行频率为2GHz。嵌入在交换机中的服务器主板具有2MB的NVRAM内存,位于其DRAM主内存旁边,另外还有一个128GB闪存驱动器用于启动NX-OS网络操作系统。
有一个PCI-Express交换机将CPU模组连接到4个Jericho芯片上,这4个芯片有自己的交叉开关电路用于彼此连接。(实际上,这是两层网络在一个机箱里,就像一台单独的交换机一样。)Nexus 3636交换机在板上有四个Bear Valley芯片,它们在机箱里的32个端口中的8个端口上提供MACsec加密。