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