普通 NIC 定位于高效遷移服務(wù)器的網(wǎng)絡(luò)數(shù)據(jù)包,通常包括不同程度的為優(yōu)化性能而設(shè)計的傳統(tǒng)卸載。SmartNIC 整合了多方面的附加計算資源,但是這些架構(gòu)就像雪花一樣各不相同,因此,我們將深入研究規(guī)模最大、最受歡迎的供應(yīng)商所提供的幾種方法。
普通網(wǎng)絡(luò)接口卡(NIC)是圍繞單獨的專用集成電路(ASIC)構(gòu)建的,該集成電路被設(shè)計成以太網(wǎng)控制器。例如,邁絡(luò)思的 ConnectX 系列、博通的 NetXtreme 系列或賽靈思的 XtremeScale 系列。通常,這些芯片會圍繞第二個設(shè)計目標(biāo)進(jìn)行進(jìn)一步優(yōu)化;例如,ConnectX 系列也支持 Infiniband,而 XtremeScale 則專注于 Linux 內(nèi)核旁路。這些控制器的功能非常出色,它們代表了業(yè)界最出色的控制器,但它們不能算是 SmartNIC。
在本文中,我們將 SmartNIC 定義為一個允許附加軟件的 NIC,而這些附加軟件可以在購買后的某個時刻被加載到 NIC 中,用于添加新功能或支持其他功能。就像您購買了一部智能手機(jī),然后從該供應(yīng)商的應(yīng)用商店下載并安裝應(yīng)用一樣。
若要將 NIC 變?yōu)?SmartNIC,能夠加載并運行代碼,需要其配備額外的計算能力和板載存儲器,而這些功能是普通 NIC 所不具備的。SmartNIC 的應(yīng)用大多數(shù)都是從基本的以太網(wǎng)控制器開始,要么在芯片上作為固件,要么在適配器上作為單獨的芯片。
以下三種方法均有助于提升計算能力,使得普通的 NIC 變得智能:
- Arm CPU 核集成,有人稱其為集群,有些人則稱其為“網(wǎng)格”或“塊”
- 定制網(wǎng)絡(luò)處理器采用的流處理核(FPC),通常是 P4
許多 SmartNIC 通常使用一個或多個 Arm CPU 核來管理 NIC 中的控制平面。有些甚至允許將修改過的 Linux 內(nèi)核加載到一個或多個核心中。這些 Arm CPU 核通常負(fù)責(zé)將代碼加載到其他處理元件中,收集統(tǒng)計信息和日志并監(jiān)測 SmartNIC 的運行狀況和配置。它們不會接觸任何網(wǎng)絡(luò)數(shù)據(jù)包,且通常會在“帶外”運行,這就意味著它們無法通過“常規(guī)”網(wǎng)絡(luò)接口或 PCIe 命令進(jìn)行訪問。此外,他們只應(yīng)通過先前受保護(hù)的接口接受經(jīng)過正式簽署的固件包。除了架構(gòu)草圖以外,我們不會在下面調(diào)用這些控制平面的 Arm CPU 核,因為它們需要管道,而且它們本身通常不會為 SmartNIC 提供的特性集增加價值。
為了理解 SmartNIC 與普通 NIC 的不同之處,我們需要深入了解全球四大 NIC 公司以及兩家初創(chuàng)企業(yè)推出的 SmartNIC 產(chǎn)品,看看他們做出了哪些改進(jìn)。入選的六家公司分別是英特爾、博通、英偉達(dá)(前身為邁絡(luò)思)、賽靈思、Netronome 和 Pensando。此外,我們還將對目前被稱為 Fungible 的隱形項目提出一些見解。
說到芯片公司,大家都會想到英特爾,因為它是全球規(guī)模最大的芯片公司。十多年來,英特爾一直保持著不間斷的高性能 10GbE 以太網(wǎng)控制器產(chǎn)品線。他們的 XL710 平臺已經(jīng)出貨數(shù)百萬臺,是眾多數(shù)據(jù)中心服務(wù)器的必備產(chǎn)品。對于其新款 N3000,英特爾 SmartNIC 的電路板采用五塊芯片。
這種方法成本很高,因為大多數(shù)廠商都在努力完成單芯片設(shè)計。英特爾還將一對 XL710 以太網(wǎng)控制器和一個使用 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 架構(gòu),它使 FPGA 能夠在數(shù)據(jù)包被傳遞到 XL710 之前處理數(shù)據(jù)包。
使用現(xiàn)成的以太網(wǎng)控制器和 FPGA 構(gòu)建 NIC 并不是什么新鮮事。早在 2012 年,Solarflare Communications 就在 NIC 的兩個 QSFP 端口與其以太網(wǎng)控制器之間放置了一個 FPGA,用于創(chuàng)建其應(yīng)用加載引擎( AOE )平臺。這是上述英特爾 N3000 設(shè)計的先驅(qū),它幫助 Solarflare 為金融客戶提供了令人印象深刻的即時交易結(jié)果,耗時僅為 350 納秒。8 年后的今天,該記錄為 24.2 納秒。英特爾的方法支持 FPGA 在 XL710 之前進(jìn)行數(shù)據(jù)包處理。
英特爾的 FPGA 具有 115 萬個可編程邏輯單元和兩個 4GB 的 DDR4 存儲器組,這為它處理以下 SmartNIC 任務(wù)提供了充足的空間:
- 虛擬寬帶網(wǎng)絡(luò)網(wǎng)關(guān)(vBNG)
- 層級服務(wù)質(zhì)量(HQoS)
- 數(shù)據(jù)包分類、監(jiān)控、調(diào)度和成形
- 虛擬化演進(jìn)分組核心(vEPC)
- 5G 新一代核心網(wǎng)絡(luò)(NGCN)
- 互聯(lián)網(wǎng)協(xié)議安全(IPSec)
- IPv6 分段路由(SRv6)
- 矢量數(shù)據(jù)包處理(VPP)
- 虛擬無線電接入網(wǎng)(vRAN)
盡管英特爾已將上述工作負(fù)載用于其 N3000 平臺,但目前還不清楚他們是否已交付所有必要的軟件來卸載該 SmartNIC 上的每個應(yīng)用。SmartNIC 的消費者會發(fā)現(xiàn),軟件才是癥結(jié)所在,所有這些公司在硬件方面都很出色,但是軟件交付又完全是另一回事。
SmartNIC 領(lǐng)域中另一家杰出的 FPGA 供應(yīng)商是賽靈思,它是上世紀(jì) 80 年代中期首家實現(xiàn) FPGA 商業(yè)化的公司。現(xiàn)如今,賽靈思已經(jīng)是 FPGA 領(lǐng)域的霸主,英特爾則被遠(yuǎn)遠(yuǎn)地甩在后面。賽靈思于 2019 年秋季收購了 Solarflare Communications,自 2012 年以來,Solarflare 一直在為電子交易構(gòu)建基于 ASIC 和 FPGA 的 NIC。來自英國劍橋的 SolarFarre 工程團(tuán)隊是賽靈思 Alveo U25 SmartNIC 的研發(fā)主力,如圖所示。賽靈思的成功得益于 Solarflare 工程團(tuán)隊在這個市場中將近十年的經(jīng)驗積累。
Alveo U25 將雙 SFP28 端口直接連接到 Zynq 系列芯片。Zynq 實際上是一種片上系統(tǒng)(SoC),因為它不僅包括 FPGA,還包括用于數(shù)據(jù)包處理的四核 Arm A53。然后,Zynq 通過第三代 PCIe 提供的 8 個通道直接連接到主機(jī)服務(wù)器,或是通過 SerDes 連接到 X2 以太網(wǎng)控制器芯片,后者也可以通過第三代 PCIe 8 個通道連接到主機(jī)。這種方法使得 Zynq 能夠在數(shù)據(jù)包被傳遞到 X2 芯片之前對其進(jìn)行處理,或者完全繞過 X2 芯片。此外,U25 還包括 6GB 的 DDR4 存儲器,可以通過運行在該芯片上的程序訪問 Zynq 的 FPGA 和 Arm 核心。FPGA 具有 52 萬個邏輯單元,是英特爾提供的邏輯單元數(shù)的一半,但是提供的四核 Arm 足以彌補(bǔ)減少的可用門數(shù)。
賽靈思將 U25 推向市場,最初是為了滿足那些需要開放虛擬交換機(jī)(OvS) 卸載功能的客戶。賽靈思已經(jīng)宣布,在不久的將來將增加 IPSec、機(jī)器學(xué)習(xí)(ML)、深度包檢測(DPI)、視頻轉(zhuǎn)碼和分析的卸載數(shù)量。賽靈思大概是 SmartNIC 領(lǐng)域中發(fā)展最為全面的企業(yè)。兩年前,在收購 Solarflare 的準(zhǔn)備階段,賽靈思與 Solarflare 作為合作伙伴在 OCP 峰會上公開展示了 X2 控制器邏輯作為軟 NIC 在更大型 FPGA 中的運行情況。
如同英特爾一樣,賽靈思也擁有數(shù)條可盈利的計算芯片產(chǎn)品線,如 Kintex、Virtex、Zynq 和 Versal。Kintex 和 Virtex 都是純 FPGA,該系列中某些型號采用的邏輯單元數(shù)量巨大,大約有近 300 萬個,幾乎是英特爾在其 N3000 中使用數(shù)量的三倍。此外,賽靈思還通過硅中介層創(chuàng)造了奇跡,并在 Virtex 芯片上分層放置了高達(dá) 16GB 的高帶寬存儲器(HBM)。所有四條芯片生產(chǎn)線的其他芯片也采用了這項技術(shù)。Zynq 是他們的 SoC 芯片系列,包括 FPGA 可編程邏輯、四核 Arm、實時 Arm 核心、DDR 控制器以及用于以太網(wǎng)和 PCI Express 的連接邏輯。
Versal 超越了 SoC,成為一個基于七納米芯片技術(shù)的自適應(yīng)計算加速平臺(ACAP)。ACAP 通過添加數(shù)百個人工智能(AI)核心和數(shù)字信號處理(DSP)引擎來擴(kuò)展 Zynq 架構(gòu)。AI 核心在某種程度上是新器件,但它們在本質(zhì)上屬于單精度計算引擎。最終,賽靈思將把其公開展示的 SoftNIC 與 Versal 結(jié)合起來,使其成為 SmartNIC 平臺中的佼佼者。
博通是以太網(wǎng) NIC 控制器商品市場上無可爭議的領(lǐng)導(dǎo)者。因此,當(dāng)他們裝配 Stingray SmartNIC 并加入競爭時,博通采用了單芯片方法。與其他競爭對手的眾多芯片板相比,單芯片 SmartNIC 解決方案的板級生產(chǎn)成本始終保持在較低水平。博通以 NetXtreme E 系列控制器的邏輯為基礎(chǔ),設(shè)計了位于 Stingray 核心的 NetXtreme-S BCM58800 芯片。然后,他們在集群配置中部署了主頻為 3Ghz 的 8 個 Arm v8 A72 核心。
接下來,他們加入了一些邏輯,以高達(dá) 90 千兆/秒的速度卸載加密,同時卸載擦除編碼和 RAID 等存儲處理。最后,博通還采用了具有神秘色彩的 TruFlow 技術(shù)。這是一個可配置的流加速器,用于將常見的網(wǎng)絡(luò)流過程轉(zhuǎn)移到硬件中;我們相信使用 P4 語言會取得很好的效果。這有助于釋放 Arm 核心,從而專注于流程和數(shù)據(jù)包級別上的更多可編程任務(wù)。
從發(fā)布的內(nèi)容來看,TruFlow 能夠在硬件中分擔(dān)像 Open vSwitch(OvS)這樣的任務(wù)。此外,博通還聲稱 TruFlow 在硬件中實現(xiàn)了眾多經(jīng)典的軟件定義網(wǎng)絡(luò)(SDN)概念,例如分類、匹配和操作。因此,Stingray 配備了兩個可編程組件,即 TruFlow 和一個由四個 3Ghz 雙核 Arm v8 A72 復(fù)合體組成的集群。了解到他們所提供產(chǎn)品的復(fù)雜性后,博通為 SmartNIC 應(yīng)用開發(fā)和存儲控制器開發(fā)提供了 Stingray 開發(fā)套件。這確實出乎大家的意料。
英偉達(dá)在圖形處理單元(GPU)領(lǐng)域是公認(rèn)的領(lǐng)導(dǎo)者,GPU 已經(jīng)成為高性能計算(HPC)領(lǐng)域的首選加速器。今年年初,英偉達(dá)最終以 70 億美元的價格完成了對邁絡(luò)思的收購。為了占領(lǐng) HPC 市場,英偉達(dá)選擇了領(lǐng)先的無限帶寬技術(shù)互聯(lián)供應(yīng)商,以便為 HPC 客戶提供完整的解決方案。這與克雷過去的做法非常相似。英偉達(dá)最近還收購了 Cumulus Networks,后者是開源以太網(wǎng)交換機(jī)操作系統(tǒng)的領(lǐng)導(dǎo)者。軟件一直是邁絡(luò)思的弱點,而英偉達(dá)顯然很早就意識到了這一點。關(guān)于 SmartNIC,英偉達(dá)還通過收購邁絡(luò)思得到了一個意外驚喜。
邁絡(luò)思是最早進(jìn)入 SmartNIC 領(lǐng)域的公司之一,但這是通過收購實現(xiàn)的。他們當(dāng)前的 Bluefield 2 解決方案是在 2015 年通過收購 EZchip 收購 Tilera 而完成構(gòu)建的。Tilera 擁有首個申請知識產(chǎn)權(quán)的高度并行 SmartNIC 實現(xiàn)方案,它是從更早的 MIT 研究項目逐步發(fā)展起來的。Tilera 將處理核心作為芯片上的塊進(jìn)行排列,每個核心都有一條高速總線連接到周圍的四個核心。他們的旗艦產(chǎn)品早在 2013 年就可支持多達(dá) 72 個 MIPS 核心、內(nèi)存控制器、加密模塊、PCIe 塊和 mPipe,這是通過 SFP 和連接器連接到多個 MAC 的一組通道。
邁絡(luò)思通過用 Arm 替換核心并將 mPipe 換成 ConnectX 邏輯來推進(jìn)這一進(jìn)程。當(dāng)前的核心數(shù)量為 8 個 Arm v8 A72 核心,但它們被排列成由 4 個雙核心 Arm 構(gòu)成的群集。這種方法與博通的 Stingray 十分類似,它們不僅使用相同的核心,而且速度相同,但是它缺少 Broadcom 架構(gòu)的核心組成部分,即并行 P4 處理器。P4 是每家公司的目標(biāo),只不過并不是每家公司都對此公開表明。下面提到的博通、賽靈思和 Pensando 都很關(guān)注 P4。這也是 Cumulus Networks 的用武之地,他們在 P4 編程方面有著豐富的經(jīng)驗。因此,為了向未來的 Bluefield 產(chǎn)品系列提供前端服務(wù),英偉達(dá)設(shè)計了 P4 數(shù)據(jù)包處理引擎也就不足為奇了。
最新的 SmartNIC 初創(chuàng)企業(yè)是 Pensando,由思科前首席執(zhí)行官 John Chambers 創(chuàng)立。John 帶領(lǐng)他的夢之隊(六名前思科員工)創(chuàng)辦了這家公司。這些人的公司過去都曾被思科收購。考慮到他們的聲譽(yù)和以往的經(jīng)驗,人們普遍認(rèn)為 Pensando 正在向一些主要客戶證明他們的技術(shù)是可行的,然后他們會將其打包賣給思科。思科擁有一些通用的 NIC 技術(shù),但它不是 SmartNIC 級別的,Pensando 顯然是想填補(bǔ)這一空白。
Pensando 最初提供兩種產(chǎn)品,但最近又降為單一產(chǎn)品,即分布式服務(wù)卡 DSC-25,這聽起來甚至像是思科產(chǎn)品的名稱。它像是一款單一的 P4 處理器芯片,帶有用于一些輔助處理的 Arm,數(shù)據(jù)表聲稱這兩種處理器都可支持高達(dá) 4GB 的板載存儲器。該處理器稱為 Capri,它是帶有多個并行級的 P4 可編程單元;但確切的并行處理程度尚不清楚,因為數(shù)據(jù)包性能、時延和抖動尚未公布。由于緩存未命中而導(dǎo)致的指令內(nèi)存提取會影響所有指標(biāo)的性能,所以 Pensando 妥善管控 P4 應(yīng)用,將它們保留在 Capri 緩存中。其他被稱為服務(wù)處理卸載(Service Processing Offloads)的計算單元則負(fù)責(zé)處理加密、存儲流程和其他任務(wù)。
Pensando 聲稱 Capri 能夠提供線速性能。Fungible 是頗具潛力的后起之秀。在獲得了近 3 億美元的三輪融資(其中 2 億美元來自去年的 C 輪軟銀集團(tuán)愿景基金)后,他們宣布即將推出一款新產(chǎn)品。目前,他們有 180 名員工,沒有產(chǎn)品,沒有收入,也沒有可見客戶。Fungible 聲稱將生產(chǎn)數(shù)據(jù)處理單元(DPU),但實際的架構(gòu)和組成尚不明朗。他們提供了下面所示的圖片,但如同架構(gòu)圖不具備重要意義一樣沒有突出重點。
很多文章都提到他們的產(chǎn)品將在今年夏天發(fā)布,因此我想提醒大家關(guān)注這家公司。他們的創(chuàng)始人之一兼首席架構(gòu)師是曾在 Chelsio Communications 積累了 10 年經(jīng)驗的資深人士,專門從事以存儲為中心的以太網(wǎng) NIC 方面的研究。此外,他們的軟件和固件工程副總裁也曾在 Chelsio 任職,而且他的工作經(jīng)驗有 13 年之久。因此,盡管 Chelsio 過去的核心產(chǎn)品是 ASIC,但如今從頭開始生產(chǎn)一款領(lǐng)先的 SmartNIC 以太網(wǎng)控制器 ASIC 很容易就會消耗掉他們超過 5000 萬美元的寶貴資本。
有人推測,他們將采取阻力最小的方法來獲得收益,并利用 FPGA 平臺開發(fā)他們的初始產(chǎn)品,同時將特有的 ASIC 設(shè)計加載到該平臺。隨后,他們可以在開始追求客戶和收益的同時推出設(shè)計方案。將設(shè)計加載到 FPGA 中有助于 Fungible 輕松地修復(fù)設(shè)計缺陷,并可以根據(jù)客戶要求快速改善。如今,F(xiàn)PGA 的應(yīng)用越來越廣泛,我們已經(jīng)開始看到像 RISC-V 這樣成熟的處理器架構(gòu)被加載到這些平臺上。
那么,SmartNIC 與普通的 NIC 有哪些顯著性差異?計算能力、存儲器以及最重要的軟件設(shè)計都是為了減輕主機(jī) CPU 的負(fù)擔(dān),以完成更高級的網(wǎng)絡(luò)處理任務(wù) SmartNIC 將推動計算能力逐漸擴(kuò)展到網(wǎng)絡(luò)邊緣,從而釋放服務(wù)器 CPU 的算力,重點關(guān)注復(fù)雜的業(yè)務(wù)關(guān)鍵型處理任務(wù)。研究表明,在高度虛擬化的環(huán)境中,網(wǎng)絡(luò)可以消耗主機(jī) CPU 周期的多達(dá) 30% 來處理 OvS 事務(wù)等任務(wù)。試想一下,在 SmartNIC 中能夠完成存儲功能、加密、深度包檢測和復(fù)雜路由嗎?這可能會將通常花費在處理這些工作負(fù)載上的大部分 CPU 周期傳遞回主機(jī) CPU。
為了保持領(lǐng)先地位,Pensando 和 Fungible 這樣的新興公司將繼續(xù)向 SmartNIC 市場注入創(chuàng)新特性和功能。與此同時,像賽靈思、英特爾、博通和英偉達(dá)這樣的技術(shù)領(lǐng)先者也開始著手改進(jìn)基礎(chǔ)計算核心和專用 P4 處理引擎。SmartNIC 市場正在升溫,而這只是從 GPU 技術(shù)開始興起的加速器浪潮的邊緣領(lǐng)域,但它將改變計算技術(shù)的發(fā)展方向。
作者介紹
姓名:Scott Schweitzer
職位:賽靈思技術(shù)布道者
個人簡介:
自從當(dāng)年通過 TRS-80 計算機(jī)入門編程的世界,Scott 便成為了一名忠實的科技信徒。他曾為 IBM、NEC、Solarflare 以及現(xiàn)在的賽靈思編寫過產(chǎn)品級的軟件產(chǎn)品,構(gòu)建過硬件產(chǎn)品,并擔(dān)任過程序管理職務(wù)。在從事單插槽計算平臺工作 20 年后,Scott 于 2003 年加入 NEC,管理其新推出的英特爾安騰(Itanium)多核 64 位超級計算服務(wù)器。自此,他一直都在該領(lǐng)域繼續(xù)深耕。
2005 年,Scott 開始重點研究超級計算與超高性能聯(lián)網(wǎng)聚類這兩大領(lǐng)域。隨著 10GbE 的普及,他推出了廣受歡迎的 10GbE.net 博客。在 2017 年市場風(fēng)云變幻之際,Scott 將 10GbE.net 打造成了一個每月?lián)碛袛?shù)千次頁面瀏覽量的技術(shù)傳播博客,同時還附帶一個播客。Scott 在賽靈思的職責(zé)是與合作伙伴一起探尋新的加速機(jī)遇并定義創(chuàng)新解決方案。
原文標(biāo)題:SmartNIC 與普通的 NIC 有哪些顯著性差異?
文章出處:【微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
芯片
+關(guān)注
關(guān)注
454文章
50430瀏覽量
421879 -
cpu
+關(guān)注
關(guān)注
68文章
10826瀏覽量
211161 -
NIC
+關(guān)注
關(guān)注
0文章
23瀏覽量
12386
原文標(biāo)題:SmartNIC 與普通的 NIC 有哪些顯著性差異?
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論