普通網絡接口卡( NIC )是圍繞單獨的專用集成電路( ASIC )構建的,該集成電路被設計成乙太網控制器。例如,邁絡思的 ConnectX系列、博通的 NetXtreme系列或賽靈思的 XtremeScale系列。通常,這些晶片會圍繞第二個設計目標進行進一步優化;例如,ConnectX系列也支持Infiniband,而XtremeScale則專注於Linux內核旁路。這些控制器的功能非常出色,它們代表了業界最出色的控制器,但它們不能算是SmartNIC。在本文中,我們將SmartNIC定義為一個允許附加軟體的NIC,而這些附加軟體可以在購買後的某個時刻被加載到NIC中,用於添加新功能或支持其他功能。就像您購買了一部智慧型手機,然後從該供應商的應用商店下載並安裝應用一樣。C7YEETC-電子工程專輯
若要將NIC變為SmartNIC,能夠加載並運行代碼,需要其配備額外的計算能力和板載存儲器,而這些功能是普通NIC所不具備的。SmartNIC的應用大多數都是從基本的乙太網控制器開始,要麼在晶片上作為固件,要麼在適配器上作為單獨的晶片。以下三種方法均有助於提升計算能力,使得普通的NIC變得智能:C7YEETC-電子工程專輯
-Arm CPU核集成,有人稱其為集群,有些人則稱其為「網格」或「塊」C7YEETC-電子工程專輯
-定製網絡處理器採用的流處理核(FPC),通常是P4C7YEETC-電子工程專輯
-現場可編程門陣列(FPGA),可編程邏輯C7YEETC-電子工程專輯
許多SmartNIC通常使用一個或多個Arm CPU核來管理NIC中的控制平面。有些甚至允許將修改過的Linux內核加載到一個或多個核心中。這些Arm CPU核通常負責將代碼加載到其他處理元件中,收集統計信息和日誌並監測SmartNIC的運行狀況和配置。它們不會接觸任何網絡數據包,且通常會在「帶外」運行,這就意味著它們無法通過「常規」網絡接口或PCIe命令進行訪問。此外,他們只應通過先前受保護的接口接受經過正式籤署的固件包。除了架構草圖以外,我們不會在下面調用這些控制平面的Arm CPU核,因為它們需要管道,而且它們本身通常不會為SmartNIC提供的特性集增加價值。C7YEETC-電子工程專輯
為了理解SmartNIC與普通NIC的不同之處,我們需要深入了解全球四大NIC公司以及兩家初創企業推出的SmartNIC產品,看看他們做出了哪些改進。入選的六家公司分別是英特爾、博通、英偉達(前身為邁絡思)、賽靈思、Netronome和Pensando。此外,我們還將對目前被稱為Fungible的隱形項目提出一些見解。C7YEETC-電子工程專輯
說到晶片公司,大家都會想到英特爾,因為它是全球規模最大的晶片公司。十多年來,英特爾一直保持著不間斷的高性能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之前處理數據包。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
使用現成的乙太網控制器和FPGA構建NIC並不是什麼新鮮事。早在2012年,Solarflare Communications就在NIC的兩個QSFP埠與其乙太網控制器之間放置了一個FPGA,用於創建其應用加載引擎(AOE)平臺。這是上述英特爾N3000設計的先驅,它幫助Solarflare為金融客戶提供了令人印象深刻的即時交易結果,耗時僅為350納秒。8年後的今天,該記錄為24.2納秒。英特爾的方法支持FPGA在XL710之前進行數據包處理。英特爾的FPGA具有115萬個可編程邏輯單元和兩個4GB的DDR4存儲器組,這為它處理以下SmartNIC任務提供了充足的空間:C7YEETC-電子工程專輯
-虛擬寬帶網絡網關(vBNG)C7YEETC-電子工程專輯
-層級服務質量(HQoS)C7YEETC-電子工程專輯
-數據包分類、監控、調度和成形C7YEETC-電子工程專輯
-虛擬化演進分組核心(vEPC)C7YEETC-電子工程專輯
-5G新一代核心網絡(NGCN)C7YEETC-電子工程專輯
-網際網路協議安全(IPSec)C7YEETC-電子工程專輯
-IPv6分段路由(SRv6)C7YEETC-電子工程專輯
-矢量數據包處理(VPP)C7YEETC-電子工程專輯
-虛擬無線電接入網(vRAN)C7YEETC-電子工程專輯
儘管英特爾已將上述工作負載用於其N3000平臺,但目前還不清楚他們是否已交付所有必要的軟體來卸載該SmartNIC上的每個應用。SmartNIC的消費者會發現,軟體才是癥結所在,所有這些公司在硬體方面都很出色,但是軟體交付又完全是另一回事。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
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中的運行情況。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
如同英特爾一樣,賽靈思也擁有數條可盈利的計算晶片產品線,如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平臺中的佼佼者。C7YEETC-電子工程專輯
博通是乙太網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開發套件。這確實出乎大家的意料。C7YEETC-電子工程專輯
英偉達在圖形處理單元(GPU)領域是公認的領導者,GPU已經成為高性能計算(HPC)領域的首選加速器。今年年初,英偉達最終以70億美元的價格完成了對邁絡思的收購。為了佔領HPC市場,英偉達選擇了領先的無限帶寬技術互聯供應商,以便為HPC客戶提供完整的解決方案。這與克雷過去的做法非常相似。英偉達最近還收購了Cumulus Networks,後者是開源乙太網交換機作業系統的領導者。軟體一直是邁絡思的弱點,而英偉達顯然很早就意識到了這一點。關於SmartNIC,英偉達還通過收購邁絡思得到了一個意外驚喜。C7YEETC-電子工程專輯
邁絡思是最早進入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數據包處理引擎也就不足為奇了。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
最新的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能夠提供線速性能。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
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這樣成熟的處理器架構被加載到這些平臺上。C7YEETC-電子工程專輯
C7YEETC-電子工程專輯
那麼,SmartNIC與普通的NIC有哪些顯著性差異?計算能力、存儲器以及最重要的軟體設計都是為了減輕主機CPU的負擔,以完成更高級的網絡處理任務。SmartNIC將推動計算能力逐漸擴展到網絡邊緣,從而釋放伺服器CPU的算力,重點關注複雜的業務關鍵型處理任務。研究表明,在高度虛擬化的環境中,網絡可以消耗主機CPU周期的多達30%來處理OvS事務等任務。試想一下,在SmartNIC中能夠完成存儲功能、加密、深度包檢測和複雜路由嗎?這可能會將通常花費在處理這些工作負載上的大部分CPU周期傳遞迴主機CPU。為了保持領先地位,Pensando和Fungible這樣的新興公司將繼續向SmartNIC市場注入創新特性和功能。與此同時,像賽靈思、英特爾、博通和英偉達這樣的技術領先者也開始著手改進基礎計算核心和專用P4處理引擎。SmartNIC市場正在升溫,而這只是從GPU技術開始興起的加速器浪潮的邊緣領域,但它將改變計算技術的發展方向。C7YEETC-電子工程專輯
作者:Scott Schweitzer,賽靈思技術傳播者C7YEETC-電子工程專輯
責編:Amy GuanC7YEETC-電子工程專輯
本文為《電子工程專輯》2020年9月刊雜誌文章,版權所有,禁止轉載。點擊申請免費雜誌訂閱 C7YEETC-電子工程專輯