普通网络接口卡( NIC )是围绕单独的专用集成电路( ASIC )构建的,该集成电路被设计成以太网控制器。例如,迈络思的 ConnectX系列、博通的 NetXtreme系列或赛灵思的 XtremeScale系列。通常,这些芯片会围绕第二个设计目标进行进一步优化;例如,ConnectX系列也支持Infiniband,而XtremeScale则专注于Linux内核旁路。这些控制器的功能非常出色,它们代表了业界最出色的控制器,但它们不能算是SmartNIC。在本文中,我们将SmartNIC定义为一个允许附加软件的NIC,而这些附加软件可以在购买后的某个时刻被加载到NIC中,用于添加新功能或支持其他功能。就像您购买了一部智能手机,然后从该供应商的应用商店下载并安装应用一样。
若要将NIC变为SmartNIC,能够加载并运行代码,需要其配备额外的计算能力和板载存储器,而这些功能是普通NIC所不具备的。SmartNIC的应用大多数都是从基本的以太网控制器开始,要么在芯片上作为固件,要么在适配器上作为单独的芯片。以下三种方法均有助于提升计算能力,使得普通的NIC变得智能:
-Arm CPU核集成,有人称其为集群,有些人则称其为“网格”或“块”
-定制网络处理器采用的流处理核(FPC),通常是P4
-现场可编程门阵列(FPGA),可编程逻辑
许多SmartNIC通常使用一个或多个Arm CPU核来管理NIC中的控制平面。有些甚至允许将修改过的Linux内核加载到一个或多个核心中。这些Arm CPU核通常负责将代码加载到其他处理元件中,收集统计信息和日志并监测SmartNIC的运行状况和配置。它们不会接触任何网络数据包,且通常会在“带外”运行,这就意味着它们无法通过“常规”网络接口或PCIe命令进行访问。此外,他们只应通过先前受保护的接口接受经过正式签署的固件包。除了架构草图以外,我们不会在下面调用这些控制平面的Arm CPU核,因为它们需要管道,而且它们本身通常不会为SmartNIC提供的特性集增加价值。
为了理解SmartNIC与普通NIC的不同之处,我们需要深入了解全球四大NIC公司以及两家初创企业推出的SmartNIC产品,看看他们做出了哪些改进。入选的六家公司分别是英特尔、博通、英伟达(前身为迈络思)、赛灵思、Netronome和Pensando。此外,我们还将对目前被称为Fungible的隐形项目提出一些见解。
说到芯片公司,大家都会想到英特尔,因为它是全球规模最大的芯片公司。十多年来,英特尔一直保持着不间断的高性能10GbE以太网控制器产品线。他们的XL710平台已经出货数百万台,是众多数据中心服务器的必备产品。对于其新款N3000,英特尔SmartNIC的电路板采用五块芯片。这种方法成本很高,因为大多数厂商都在努力完成单芯片设计。英特尔还将一对XL710以太网控制器和一个使用48通道的第三代PEX8747 PCIe交换芯片Arria10 FPGA融合在一起。每个XL710有8个通道,Arria有16个通道,PCIe插槽有16个通道。第五块芯片是用于管理FPGA的MAX 10 FPGA基板管理控制器(BMC),就像在其他SmartNIC上使用Arm核心来处理控制平面管理一样。该电路板有两个直接连接到FPGA的QSFP28端口。然后8条10G通道将FPGA留给每个XL710。这是一种典型的bump-in-the-wire架构,它使FPGA能够在数据包被传递到XL710之前处理数据包。
使用现成的以太网控制器和FPGA构建NIC并不是什么新鲜事。早在2012年,Solarflare Communications就在NIC的两个QSFP端口与其以太网控制器之间放置了一个FPGA,用于创建其应用加载引擎(AOE)平台。这是上述英特尔N3000设计的先驱,它帮助Solarflare为金融客户提供了令人印象深刻的即时交易结果,耗时仅为350纳秒。8年后的今天,该记录为24.2纳秒。英特尔的方法支持FPGA在XL710之前进行数据包处理。英特尔的FPGA具有115万个可编程逻辑单元和两个4GB的DDR4存储器组,这为它处理以下SmartNIC任务提供了充足的空间:
-虚拟宽带网络网关(vBNG)
-层级服务质量(HQoS)
-数据包分类、监控、调度和成形
-虚拟化演进分组核心(vEPC)
-5G新一代核心网络(NGCN)
-互联网协议安全(IPSec)
-IPv6分段路由(SRv6)
-矢量数据包处理(VPP)
-虚拟无线电接入网(vRAN)
尽管英特尔已将上述工作负载用于其N3000平台,但目前还不清楚他们是否已交付所有必要的软件来卸载该SmartNIC上的每个应用。SmartNIC的消费者会发现,软件才是症结所在,所有这些公司在硬件方面都很出色,但是软件交付又完全是另一回事。
SmartNIC领域中另一家杰出的FPGA供应商是赛灵思,它是上世纪80年代中期首家实现FPGA商业化的公司。现如今,赛灵思已经是FPGA领域的霸主,英特尔则被远远地甩在后面。赛灵思于2019年秋季收购了Solarflare Communications,自2012年以来,Solarflare一直在为电子交易构建基于ASIC和FPGA的NIC。来自英国剑桥的SolarFarre工程团队是赛灵思Alveo U25SmartNIC的研发主力,如右图所示。赛灵思的成功得益于Solarflare工程团队在这个市场中将近十年的经验积累。Alveo U25将双SFP28端口直接连接到Zynq系列芯片。Zynq实际上是一种片上系统(SoC),因为它不仅包括FPGA,还包括用于数据包处理的四核Arm A53。然后,Zynq通过第三代PCIe提供的8个通道直接连接到主机服务器,或是通过SerDes连接到X2以太网控制器芯片,后者也可以通过第三代PCIe 8个通道连接到主机。这种方法使得Zynq能够在数据包被传递到X2芯片之前对其进行处理,或者完全绕过X2芯片。此外,U25还包括6GB的DDR4存储器,可以通过运行在该芯片上的程序访问Zynq的FPGA和Arm核心。FPGA具有52万个逻辑单元,是英特尔提供的逻辑单元数的一半,但是提供的四核Arm足以弥补减少的可用门数。赛灵思将U25推向市场,最初是为了满足那些需要开放虚拟交换机(OvS)卸载功能的客户。赛灵思已经宣布,在不久的将来将增加IPSec、机器学习(ML)、深度包检测(DPI)、视频转码和分析的卸载数量。赛灵思大概是SmartNIC领域中发展最为全面的企业。两年前,在收购Solarflare的准备阶段,赛灵思与Solarflare作为合作伙伴在OCP峰会上公开展示了X2控制器逻辑作为软NIC在更大型FPGA中的运行情况。
如同英特尔一样,赛灵思也拥有数条可盈利的计算芯片产品线,如Kintex、Virtex、Zynq和Versal。Kintex和Virtex都是纯FPGA,该系列中某些型号采用的逻辑单元数量巨大,大约有近300万个,几乎是英特尔在其N3000中使用数量的三倍。此外,赛灵思还通过硅中介层创造了奇迹,并在Virtex芯片上分层放置了高达16GB的高带宽存储器(HBM)。所有四条芯片生产线的其他芯片也采用了这项技术。Zynq是他们的SoC芯片系列,包括FPGA可编程逻辑、四核Arm、实时Arm核心、DDR控制器以及用于以太网和PCI Express的连接逻辑。Versal超越了SoC,成为一个基于七纳米芯片技术的自适应计算加速平台(ACAP)。ACAP通过添加数百个人工智能(AI)核心和数字信号处理(DSP)引擎来扩展Zynq架构。AI核心在某种程度上是新器件,但它们在本质上属于单精度计算引擎。最终,赛灵思将把其公开展示的SoftNIC与Versal结合起来,使其成为SmartNIC平台中的佼佼者。
博通是以太网NIC控制器商品市场上无可争议的领导者。因此,当他们装配Stingray SmartNIC并加入竞争时,博通采用了单芯片方法。与其他竞争对手的众多芯片板相比,单芯片SmartNIC解决方案的板级生产成本始终保持在较低水平。博通以NetXtreme E系列控制器的逻辑为基础,设计了位于Stingray核心的NetXtreme-S BCM58800芯片。然后,他们在集群配置中部署了主频为3Ghz的8个Arm v8 A72核心。接下来,他们加入了一些逻辑,以高达90千兆/秒的速度卸载加密,同时卸载擦除编码和RAID等存储处理。最后,博通还采用了具有神秘色彩的TruFlow技术。这是一个可配置的流加速器,用于将常见的网络流过程转移到硬件中;我们相信使用P4语言会取得很好的效果。这有助于释放Arm核心,从而专注于流程和数据包级别上的更多可编程任务。从发布的内容来看,TruFlow能够在硬件中分担像Open vSwitch(OvS)这样的任务。此外,博通还声称TruFlow在硬件中实现了众多经典的软件定义网络(SDN)概念,例如分类、匹配和操作。因此,Stingray配备了两个可编程组件,即TruFlow和一个由四个3Ghz双核Arm v8 A72复合体组成的集群。了解到他们所提供产品的复杂性后,博通为SmartNIC应用开发和存储控制器开发提供了Stingray开发套件。这确实出乎大家的意料。
英伟达在图形处理单元(GPU)领域是公认的领导者,GPU已经成为高性能计算(HPC)领域的首选加速器。今年年初,英伟达最终以70亿美元的价格完成了对迈络思的收购。为了占领HPC市场,英伟达选择了领先的无限带宽技术互联供应商,以便为HPC客户提供完整的解决方案。这与克雷过去的做法非常相似。英伟达最近还收购了Cumulus Networks,后者是开源以太网交换机操作系统的领导者。软件一直是迈络思的弱点,而英伟达显然很早就意识到了这一点。关于SmartNIC,英伟达还通过收购迈络思得到了一个意外惊喜。
迈络思是最早进入SmartNIC领域的公司之一,但这是通过收购实现的。他们当前的Bluefield 2解决方案是在2015年通过收购EZchip收购Tilera而完成构建的。Tilera拥有首个申请知识产权的高度并行SmartNIC实现方案,它是从更早的MIT研究项目逐步发展起来的。Tilera将处理核心作为芯片上的块进行排列,每个核心都有一条高速总线连接到周围的四个核心。他们的旗舰产品早在2013年就可支持多达72个MIPS核心、内存控制器、加密模块、PCIe块和mPipe,这是通过SFP和连接器连接到多个MAC的一组通道。迈络思通过用Arm替换核心并将mPipe换成ConnectX逻辑来推进这一进程。当前的核心数量为8个Arm v8 A72核心,但它们被排列成由4个双核心Arm构成的群集。这种方法与博通的Stingray十分类似,它们不仅使用相同的核心,而且速度相同,但是它缺少Broadcom架构的核心组成部分,即并行P4处理器。P4是每家公司的目标,只不过并不是每家公司都对此公开表明。下面提到的博通、赛灵思和Pensando都很关注P4。这也是Cumulus Networks的用武之地,他们在P4编程方面有着丰富的经验。因此,为了向未来的Bluefield产品系列提供前端服务,英伟达设计了P4数据包处理引擎也就不足为奇了。
最新的SmartNIC初创企业是Pensando,由思科前首席执行官John Chambers创立。John带领他的梦之队(六名前思科员工)创办了这家公司。这些人的公司过去都曾被思科收购。考虑到他们的声誉和以往的经验,人们普遍认为Pensando正在向一些主要客户证明他们的技术是可行的,然后他们会将其打包卖给思科。思科拥有一些通用的NIC技术,但它不是SmartNIC级别的,Pensando显然是想填补这一空白。Pensando最初提供两种产品,但最近又降为单一产品,即分布式服务卡DSC-25,这听起来甚至像是思科产品的名称。它像是一款单一的P4处理器芯片,带有用于一些辅助处理的Arm,数据表声称这两种处理器都可支持高达4GB的板载存储器。该处理器称为Capri,它是带有多个并行级的P4可编程单元;但确切的并行处理程度尚不清楚,因为数据包性能、时延和抖动尚未公布。由于缓存未命中而导致的指令内存提取会影响所有指标的性能,所以Pensando妥善管控P4应用,将它们保留在Capri缓存中。其他被称为服务处理卸载(Service Processing Offloads) 的计算单元则负责处理加密、存储流程和其他任务。Pensando声称Capri能够提供线速性能。
Fungible是颇具潜力的后起之秀。在获得了近3亿美元的三轮融资(其中2亿美元来自去年的C轮软银集团愿景基金)后,他们宣布即将推出一款新产品。目前,他们有180名员工,没有产品,没有收入,也没有可见客户。Fungible声称将生产数据处理单元(DPU),但实际的架构和组成尚不明朗。他们提供了右侧所示的图片,但如同架构图不具备重要意义一样没有突出重点。很多文章都提到他们的产品将在今年夏天发布,因此我想提醒大家关注这家公司。他们的创始人之一兼首席架构师是曾在Chelsio Communications积累了10年经验的资深人士,专门从事以存储为中心的以太网NIC方面的研究。此外,他们的软件和固件工程副总裁也曾在Chelsio任职,而且他的工作经验有13年之久。因此,尽管Chelsio过去的核心产品是ASIC,但如今从头开始生产一款领先的SmartNIC以太网控制器ASIC很容易就会消耗掉他们超过5000万美元的宝贵资本。有人推测,他们将采取阻力最小的方法来获得收益,并利用FPGA平台开发他们的初始产品,同时将特有的ASIC设计加载到该平台。随后,他们可以在开始追求客户和收益的同时推出设计方案。将设计加载到FPGA中有助于Fungible轻松地修复设计缺陷,并可以根据客户要求快速改善。如今,FPGA的应用越来越广泛,我们已经开始看到像RISC-V这样成熟的处理器架构被加载到这些平台上。
那么,SmartNIC与普通的NIC有哪些显著性差异?计算能力、存储器以及最重要的软件设计都是为了减轻主机CPU的负担,以完成更高级的网络处理任务。SmartNIC将推动计算能力逐渐扩展到网络边缘,从而释放服务器CPU的算力,重点关注复杂的业务关键型处理任务。研究表明,在高度虚拟化的环境中,网络可以消耗主机CPU周期的多达30%来处理OvS事务等任务。试想一下,在SmartNIC中能够完成存储功能、加密、深度包检测和复杂路由吗?这可能会将通常花费在处理这些工作负载上的大部分CPU周期传递回主机CPU。为了保持领先地位,Pensando和Fungible这样的新兴公司将继续向SmartNIC市场注入创新特性和功能。与此同时,像赛灵思、英特尔、博通和英伟达这样的技术领先者也开始着手改进基础计算核心和专用P4处理引擎。SmartNIC市场正在升温,而这只是从GPU技术开始兴起的加速器浪潮的边缘领域,但它将改变计算技术的发展方向。
作者:Scott Schweitzer,赛灵思技术传播者
责编:Amy Guan
本文为《电子工程专辑》2020年9月刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅
- 怎么没介绍华为的