SmartNIC與普通的NIC差別在哪?
普通NIC定位于高效遷移服務器的網絡數據包,通常包括不同程度的為優化性能而設計的傳統卸載。SmartNIC整合了多方面的附加計算資源,但是這些架構就像雪花一樣各不相同,因此,我們將深入研究規模最大、最受歡迎的供應商所提供的幾種方法。
本文引用地址:http://www.j9360.com/article/202208/437663.htm普通網絡接口卡(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交換芯片的Arria 10 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商業化的公司?,F如今,賽靈思已經是FPGA領域的霸主,英特爾則被遠遠地甩在后面。賽靈思于2019年秋季收購了Solarflare Communications,自2012年以來,Solarflare一直在為電子交易構建基于ASIC和FPGA的NIC。來自英國劍橋的SolarFarre工程團隊是賽靈思Alveo U25 SmartNIC的研發主力,如圖所示。賽靈思的成功得益于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中能夠完成存儲功能、加密、深度包檢測和復雜路由嗎?這可能會將通?;ㄙM在處理這些工作負載上的大部分CPU周期傳遞回主機CPU。
為了保持領先地位,Pensando和Fungible這樣的新興公司將繼續向SmartNIC市場注入創新特性和功能。與此同時,像賽靈思、英特爾、博通和英偉達這樣的技術領先者也開始著手改進基礎計算核心和專用P4處理引擎。SmartNIC市場正在升溫,而這只是從GPU技術開始興起的加速器浪潮的邊緣領域,但它將改變計算技術的發展方向。
作者介紹
姓名:Scott Schweitzer
職位:賽靈思技術布道者
個人簡介:
自從當年通過TRS-80計算機入門編程的世界,Scott便成為了一名忠實的科技信徒。他曾為IBM、NEC、Solarflare以及現在的賽靈思編寫過產品級的軟件產品,構建過硬件產品,并擔任過程序管理職務。在從事單插槽計算平臺工作20年后,Scott于2003年加入NEC,管理其新推出的英特爾安騰(Itanium)多核64位超級計算服務器。自此,他一直都在該領域繼續深耕。
2005年,Scott開始重點研究超級計算與超高性能聯網聚類這兩大領域。隨著10GbE的普及,他推出了廣受歡迎的10GbE.net博客。在2017年市場風云變幻之際,Scott將10GbE.net打造成了一個每月擁有數千次頁面瀏覽量的技術傳播博客,同時還附帶一個播客。Scott在賽靈思的職責是與合作伙伴一起探尋新的加速機遇并定義創新解決方案。
原文標題:SmartNIC與普通的NIC有哪些顯著性差異?
文章出處:【微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
評論