本文參考自“未來網(wǎng)絡(luò):SmartNIC DPU技術(shù)白皮書”,,從核心處理器角度來分析,目前 SmartNIC 架構(gòu)主要有 3 類,分別基于 FPGA,, MP ( mulTI-coreprocessors)和 ASIC,。
1、基于 FPGA 的架構(gòu)
微軟研究院是以 FPGA 作為智能網(wǎng)卡核心可編程處理器的重要代表,。圖 2-1 描述了微軟一系列設(shè)計(jì)架構(gòu)的演進(jìn),。2014 年,微軟提出了基于高端 FPGA——Altera StraTIx V D5 的 Shell(通用邏輯)+Role(可重構(gòu)處理邏輯)的可重構(gòu)數(shù)據(jù)中心云服務(wù)加速方案,,用于解決商用服務(wù)器滿足不了飛速增長的數(shù)據(jù)中心業(yè)務(wù)需求,、定制化加速器成本開銷大且靈活性不足的問題。
如圖(a)所示,,其中 Shell 為可重用的通信,、管理、配置等通用邏輯,,包含 2 個(gè) DRAM 控制器(管理 FPGA 上的 2 塊 DRAM),、4 個(gè) 10 Gbps 輕量級 FPGA 間串行通信接口 SerialLite 3、管理 DMA 通信的 PCIe 核,、路由邏輯(用于管理來自 PCIe,,Role,SerialLite 3 的數(shù)據(jù)),、重新配置邏輯(用于讀,、寫、配置 Flash),、事件翻轉(zhuǎn)邏輯(用于階段性的監(jiān)督 FPGA 狀態(tài)以減少錯(cuò)誤),;而 Role 則位于 FPGA 芯片的固定區(qū)域中,是與用戶加速應(yīng)用緊密相關(guān)的邏輯,,可以將 Bing 搜索排序邏輯映射到 Role 中進(jìn)行加速,。
在 Catapult 設(shè)計(jì)中,考慮到 FPGA 的管理和使用,,同機(jī)架下的所有 FPGA 以 6×8 的 2 維 Torus 網(wǎng)絡(luò)拓?fù)涞男问浇M成一套新的網(wǎng)絡(luò)進(jìn)行連接,,可以將同機(jī)架下的所有 FPGA 作為加速資源使用。但是,,使用第 2 套網(wǎng)絡(luò)的設(shè)計(jì)方式:
一方面,,增加了網(wǎng)絡(luò)的開銷和容錯(cuò)管理;另一方面,,對于網(wǎng)絡(luò)流,、存儲流、分布式應(yīng)用僅能提供有限的加速,。此外,,機(jī)架內(nèi)的 2 維 Torus 直連使得用戶對跨機(jī)架的 FPGA 資源無法進(jìn)行有效的使用,。
微軟在2016 年的研究工作中對 Catapult 進(jìn)行了改進(jìn),將 FPGA網(wǎng)絡(luò)與數(shù)據(jù)中心網(wǎng)絡(luò)融合,,提出了新的云加速架構(gòu)設(shè)計(jì),。如圖(b)所示,在 StraTIx VD5 FPGA 板卡上設(shè)計(jì)了 2 個(gè) 40 Gbps 的 QSFP端口,,分別與主機(jī)端已有的普通網(wǎng)卡和架頂交換機(jī)(ToR)相連接,對應(yīng)地,,在新的 Shell設(shè)計(jì)中,,原來 Catapult 的 4 端口 SerialLite 3 被替換為輕量級傳輸層(LTL)引擎用于處理 2 個(gè) 40Gbps 端口。
微軟在 2018 年的研究中將軟件定義網(wǎng)絡(luò)(SDN)棧卸載到其二代智能網(wǎng)卡,,用以更好地支持 SR-IOV,。如圖(c)所示,此時(shí),,二代智能網(wǎng)卡已將通用網(wǎng)卡和高端 Intel Arria 10 FPGA 集成到 1 個(gè)板卡上,,對外的 ToR 端口已經(jīng)達(dá)到 50 Gbps,但從架構(gòu)上而言并無實(shí)質(zhì)的變化,,仍然采用將 FPGA 放置在通用網(wǎng)卡和 ToR 數(shù)據(jù)通路之間的設(shè)計(jì),,用于高效地處理數(shù)據(jù)流,提供路徑上的網(wǎng)絡(luò)功能,、特定應(yīng)用加速,。微軟在后來的研究中指出,鑒于當(dāng)前可編程網(wǎng)卡,、可編程交換機(jī)的硬件條件支持,,充分利用可編程網(wǎng)絡(luò)設(shè)備組成高效的全網(wǎng)可編程云將成為一種趨勢。
除微軟外,,Mellanox,、Intel、Xilinx 等也相繼推出基于 FPGA 的智能網(wǎng)卡類產(chǎn)品:
1)Mellanox 推出了 Innova 系列基于 Xilinx Kintex UltraScale 高端 FPGA 的智能網(wǎng)卡,,包含 Innova 和 Innova-2 Flex 共 2 代產(chǎn)品,。
2)Intel 則推出了基于 2 大類可編程 PCIe 加速卡,其中基于Arria10/Arria10 GX FPGA 的可編程加速卡 Intel FPGA PAC N3000,,用于加速協(xié)議棧處理,、NFV 等應(yīng)用[1];此外,,另有基于 StraTIx 10 SX 的可編程加速卡 IntelFPGA PAC D5005,,面向數(shù)據(jù)流分析、視頻編碼轉(zhuǎn)換,、金融,、人工智能、基因分析等領(lǐng)域。
3)Xilinx 推出的網(wǎng)卡包括 XtremeScale X2 和 8000 共 2 個(gè)系列以太網(wǎng)卡,。其中,,X2 系列產(chǎn)品是面向數(shù)據(jù)中心的設(shè)計(jì),帶寬達(dá)到10/25/40/100 Gbps,,其 Cloud Onload 旁路內(nèi)核技術(shù),、TCP-Direct 技術(shù)與 X2 的結(jié)合可以在負(fù)載均衡、數(shù)據(jù)庫緩存,、容器應(yīng)用,、網(wǎng)頁服務(wù)方面減輕操作系統(tǒng)的開銷,提高性能,。
2,、基于MP的架構(gòu)
另一種得到業(yè)內(nèi)認(rèn)可的智能網(wǎng)卡的設(shè)計(jì)方式為采用片上多核的方式來進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的可編程加速處理,多數(shù)使用片上系統(tǒng)(system on chip,,SoC)的實(shí)現(xiàn)方案,,使用的處理器核可以是專用的網(wǎng)絡(luò)處理器(network processor,NP),,如 Netronome NFP 系列,、Cavium Octeon系列,也可以是通用處理器(general processor,,GP),,如 ARM。下文將從網(wǎng)絡(luò)處理器和通用處理器兩個(gè)方面進(jìn)行介紹,。
1)基于 NP-SoC 的智能網(wǎng)卡
Netronome 早期在 2016 年推出了 NFE-3240 系列用于網(wǎng)絡(luò)安全相關(guān)應(yīng)用的智能網(wǎng)卡,,對數(shù)據(jù)包可達(dá)到 20 Gbps 的 C 語言可編程線速處理。在 2018,,2019 年,,Netronome 陸續(xù)推出了 3 大系列 Agilio 智能網(wǎng)卡:
①面向計(jì)算節(jié)點(diǎn)的 Agilio CX,,基于 NFP-4000 或者 NFP-5000 網(wǎng)絡(luò)處理器,,可以完全卸載虛擬交換機(jī)對網(wǎng)絡(luò)功能中數(shù)據(jù)平面的處理、卸載典型的計(jì)算密集型任務(wù),;
?、诿嫦?Bare-Metal 服務(wù)器的Agilio FX,基于 NFP-4000 網(wǎng)絡(luò)處理器和 4 核 ARM v8 Cortex-A72CPU(可運(yùn)行 Linux OS),;
?、勖嫦蚍?wù)節(jié)點(diǎn)的 Agilio LX,基于 NFP-6000 網(wǎng)絡(luò)處理器,,主要用于虛擬化,、非虛擬化的 X86 服務(wù)節(jié)點(diǎn)和廣域網(wǎng)網(wǎng)關(guān),。Agilio 系列產(chǎn)品支持靈活的包解析和 Match-Action 處理,可以進(jìn)行 eBPF,、C,、P4 編程。
Cavium 推出基于 cnMIPS III 網(wǎng)絡(luò)處理器的 LiquidIO 系列智能網(wǎng)卡,。其中,,cnMPIS III 是 Cavium 公司實(shí)現(xiàn)的基于 MIPS64 指令集架構(gòu)(instruction set architecture,ISA)的 Octeon 系列第 3 代產(chǎn)品,,此外,,Octeon 系列產(chǎn)品中還有基于 ARM 的產(chǎn)品。
2)基于 GP-SoC 智能網(wǎng)卡
Mellanox 除了推出基于 FPGA 的 Innova 系列可編程智能網(wǎng)卡,,還推出了基于 BlueField IPU(I/O processing unit)系列可編程智能網(wǎng)卡,支持 Ubuntu,、Centos 系統(tǒng),。其中 BlueField 初代產(chǎn)品集 ConnectX-5 控制器、ARM v8 A72 處理器陣列(最多 16 核,,0.8 GHz),、8/16 GBpsDDR4 內(nèi)存控制器于一體,最大支持雙端口 25/50/100 Gbps 的以太網(wǎng)或者 Infiniband 網(wǎng)絡(luò)連接,。
BlueField-2(也屬于一種 DPU)則集成了最新的 ConnectX-6 控制器,,仍然使用 ARM 處理器陣列,可支持單口200Gbps 以太網(wǎng)或者 Infiniband 網(wǎng)絡(luò)連接,,該系列智能網(wǎng)卡可用于加速數(shù)據(jù)中心或者超算中的安全,、存儲、網(wǎng)絡(luò)協(xié)議及功能的卸載和加速,。
基于 MP 的智能網(wǎng)卡設(shè)計(jì)框架如圖所示,,均含有以下重點(diǎn)模塊:
①多種已經(jīng)成熟的加速部件,,如 Hash 計(jì)算,、加解密(Crypto)等等;
?、谟糜谂c主機(jī)通信的 PCIe 接口,,多數(shù)支持 SR-IOV;
?、鄱喾N與外設(shè)通信的接口,,如 I2C,JTAG 等,;
?、茉L問智能網(wǎng)卡板上內(nèi)存的控制器,;
⑤片上 NP 或者 GP 多核,,用于 OVS,,RSS(receive side scaling)等網(wǎng)絡(luò)功能,以及用戶自定義功能,。NP 或者 GP 多核的具體片上布局會有差異,,多數(shù)設(shè)計(jì)采用 Mesh 方式,但也有例外,,如 MPPA 則采用多個(gè) Cluster 的方式,,Cluster 內(nèi)部共享內(nèi)存。
此外,,有的 NP 內(nèi)部含有多種處理器核,,如 Netronome NFP 系列 NP 內(nèi)部有包處理器核和流處理器核 2 大類,分別用于包的解析,、分類和數(shù)據(jù)流的處理,。
3、基于ASIC 的架構(gòu)
目前,,基于 ASIC 的智能網(wǎng)卡并不多,,ASIC 芯片主要以網(wǎng)絡(luò)控制器的角色出現(xiàn)在智能網(wǎng)卡中,如 Mellanox 的 ConnectX 系列,、Broadcom 的 NetXtreme 系列,、Cavium 的 FastLinQ 系列。此類 ASIC網(wǎng)絡(luò)芯片除了能夠滿足傳統(tǒng)的網(wǎng)絡(luò)協(xié)議(如 TCP,、RoCE)處理需求,,又具備一定的卸載 CPU 處理能力和可編程性。
以 Mellanox 最新的ConnectX-6 產(chǎn)品為例,,其在一定程度上提供對數(shù)據(jù)平面的可編程處理和硬件加速,,提供虛擬化、SDN 的支持,,可硬件卸載網(wǎng)絡(luò)虛擬化中的VxLAN,、NVGRE等協(xié)議,卸載網(wǎng)絡(luò)安全中的部分加解密運(yùn)算,,支持 NVMe-oF 等用于存儲場景的存儲協(xié)議處理,,支持 GPU-Direct 等機(jī)器學(xué)習(xí)應(yīng)用場景中數(shù)據(jù)零拷貝的低延時(shí)通信。
4,、架構(gòu)對比
上述 3 種主要架構(gòu)的對比如下:
?。?)在性價(jià)比方面,基于 ASIC 的智能網(wǎng)卡,,基本上可以滿足多數(shù)通用網(wǎng)絡(luò)處理的應(yīng)用場景,,可以在預(yù)定義的范圍內(nèi)對數(shù)據(jù)平面進(jìn)行可編程處理,,并提供有限范圍內(nèi)的硬件加速支持,如果是批量使用,,在性價(jià)比上會有較大的優(yōu)勢,。
(2)在編程復(fù)雜度方面,,基于 ASIC 的智能網(wǎng)卡雖不及基于 MP的智能網(wǎng)卡那么簡單,,卻也遠(yuǎn)易于基于 FPGA 的智能網(wǎng)卡。
?。?)在使用靈活性方面,,基于 ASIC 的智能網(wǎng)卡相比于其他的智能網(wǎng)卡靈活性最差,對于更復(fù)雜的應(yīng)用場景則顯得力不從心,,更明確的來說,,單純基于 ASIC 的智能網(wǎng)卡應(yīng)該稱之為卸載網(wǎng)卡,因?yàn)槠淇删幊绦圆⒉煌耆?/p>
從長遠(yuǎn)的角度分析,,其定制化的邏輯,,對于已經(jīng)成熟的應(yīng)用場景雖然能夠提供顯著的性能提升,但是隨著時(shí)間的推移,,新的應(yīng)用場景對智能網(wǎng)卡將會提出新的功能要求,。目前,,很多廠家采用 ASIC+GP 的設(shè)計(jì)方式來解決這一問題,,類似 Mellanox 的 BlueField產(chǎn)品(集成了 ConnectX-5 和 ARM)。同時(shí),,商家不斷地更新 ASIC 產(chǎn)品,,將成熟的技術(shù)定制化到網(wǎng)卡中,如 ConnectX 系列已更新到第6代,??梢姡w系結(jié)構(gòu)中靈活性和性能之間的競爭依然在繼續(xù),。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<