趙玉宇 ,程 光 ,劉旭輝 ,袁 帥 ,唐 路
1(東南大學 網(wǎng)絡空間安全學院,江蘇 南京 211189)
2(教育部計算機網(wǎng)絡和信息集成重點實驗室(東南大學),江蘇 南京 211189)
3(湖南華芯通網(wǎng)絡科技有限公司,湖南 長沙 410000)
自21 世紀以來,人類已經(jīng)不再滿足于只運用互聯(lián)網(wǎng)進行簡單的信息交互.隨著終端設備的智能化,互聯(lián)網(wǎng)承載的任務變得復雜多樣.這種發(fā)展一方面提高了人類社會生產(chǎn)生活的效率,為人們帶來了很大的便利以及好處,但另一方面,也加重了互聯(lián)網(wǎng)中以路由器、交換機為主的各項基礎設施的壓力.尤其是在約束了特定服務質(zhì)量(quality of service,簡稱QoS)的情況下,網(wǎng)絡設備處理速度隨著CPU 利用率的增高而下降,使得網(wǎng)絡傳輸效率降低,用戶體驗較差.當代互聯(lián)網(wǎng)的發(fā)展,要求網(wǎng)絡設備擁有強大的計算和存儲能力,以便滿足復雜網(wǎng)絡環(huán)境以及特定任務.隨著互聯(lián)網(wǎng)用戶需求的不斷革新,人們對網(wǎng)絡設備的可編程能力也提出了更高的要求.
網(wǎng)絡處理器(network processor,簡稱NP)就是為網(wǎng)絡設備提供計算能力的核心器件.它是一種能夠完成路由查找、協(xié)議分類、報文處理以及防火墻和QoS 等各種任務的通信網(wǎng)絡芯片[1].當前的部分網(wǎng)絡處理器具備了一定的可編程性,能夠靈活地應對管理人員希望使能的功能需求.在計算能力方面,擁有多個微碼處理器和硬件協(xié)處理器的NP 能夠?qū)?nèi)存操作、路由表查找算法、擁塞控制以及主動隊列管理進行一些標準操作.在下一代網(wǎng)絡體系結(jié)構(gòu)的提出與應用以及終端計算能力變強等硬件設備革新的技術(shù)潮流下,現(xiàn)有NP 由于設計缺陷和人為疏漏,未能很好地兼顧靈活性和高性能,使得網(wǎng)絡設備的能力始終滯后,無法滿足未來網(wǎng)絡通信設備應用場景的迫切需求.所以,網(wǎng)絡處理器的研究設計始終是網(wǎng)絡與通信方面的熱點問題,其研究層次逐漸提高.由于中興通訊股份有限公司(下文簡稱為中興)、華為技術(shù)有限公司(下文簡稱為華為)等中國先進通信設備制造商接連遭受美國制裁或者禁運,無法獲得NP 芯片技術(shù),網(wǎng)絡處理器的國產(chǎn)化也成為國內(nèi)業(yè)界學術(shù)界面臨的緊急任務.
為了能夠自適應地滿足高性能和靈活應用場景的各項要求,使NP 擁有多樣化分組處理以及超高帶寬的體系結(jié)構(gòu)[2],下一代網(wǎng)絡處理器(next generation network processor,簡稱NGNP)成為NP 研究與設計的熱點.NGNP的設計核心思想是:在靈活性上擁有良好的可編程性,盡可能地滿足高級語言編程;針對不斷涌現(xiàn)的新業(yè)務,能夠減少部署時間,提高效率;在性能上,能夠利用加速引擎或者體系結(jié)構(gòu)優(yōu)勢優(yōu)化處理流程、處理時間;同時,在能耗、芯片尺寸上盡可能地輕量化,降低成本的同時,提高網(wǎng)絡設備的綜合能力(見表1).
Table 1 Comparison between next generation network processor and traditional network processor表1 下一代網(wǎng)絡處理器與傳統(tǒng)網(wǎng)絡處理器對比
下一代網(wǎng)絡處理器是一種借鑒新型可編程技術(shù)、面向新型網(wǎng)絡體系結(jié)構(gòu)或新型應用的設計理念和目標,并不是指某一種具體的芯片設計.當前,在NGNP 設計目的指引下,國際國內(nèi)的很多研究者進行了大量的研究工作.下一代網(wǎng)絡處理器的各項內(nèi)在設計關鍵技術(shù)也隨著新型網(wǎng)絡體系結(jié)構(gòu)、可編程技術(shù)以及在網(wǎng)絡環(huán)境復雜多變的高性能業(yè)務引導下進行革新和發(fā)展.學術(shù)界主要是提供NGNP 的體系結(jié)構(gòu)以及關鍵技術(shù)研究,產(chǎn)生了很多新的NP 體系結(jié)構(gòu),也在協(xié)處理器設計上進行了突破,使其能夠滿足某一特定新型業(yè)務如優(yōu)化數(shù)據(jù)轉(zhuǎn)發(fā)、新型擁塞控制方法等.工業(yè)界則根據(jù)原有NP 迭代更新產(chǎn)品,定向提高了芯片內(nèi)CPU 計算能力,或者加大帶寬以滿足當前應用需求.自2010 年以來,有部分學者進行了NGNP 技術(shù)的相關分析和研究,但審視現(xiàn)在已經(jīng)公開發(fā)表的包括科技論文和專利等資料,其中大部分只是介紹和闡述NP 的特定新應用、新架構(gòu).國內(nèi)外對下一代網(wǎng)絡體系結(jié)構(gòu)技術(shù)的分析和研究不夠全面和深入,并且基本沒有對NGNP 的綜述性的學術(shù)著作出現(xiàn).2010 年,Albrecht 和Carsten 等人[3]發(fā)表專著,介紹了一種利用動態(tài)可重構(gòu)的協(xié)處理DynaCORE,以增加NP 相關負載功能,但是該書沒有宏觀地提煉NGNP 的相關體系結(jié)構(gòu).2016 年,Gadre、Geetanjaliy 以及Matthews 等人[4,5]系統(tǒng)性地提出了利用精簡指令集計算機(reduced instruction set computing,簡稱RISC)處理器作為高速網(wǎng)絡接口的NP 結(jié)構(gòu),但是該文獻注重技術(shù)細節(jié)的闡述,針對新型網(wǎng)絡體系結(jié)構(gòu)下的NP 設計分析簡單,主要還是面向NP 靈活性進行體系結(jié)構(gòu)的技術(shù)更新,也缺少其他同類NP 體系結(jié)構(gòu)設計的分析比對.
下一代網(wǎng)絡處理器包括設備功能模塊、體系結(jié)構(gòu)、外圍支撐以及協(xié)議與平臺等內(nèi)在關鍵技術(shù),都是圍繞新型網(wǎng)絡架構(gòu)技術(shù)及應用進行研究與設計.因此,本綜述嘗試對下一代網(wǎng)絡處理器的關鍵技術(shù)設計研究進行全面的總結(jié)與歸納,按照利用新型可編程技術(shù)、面向新型網(wǎng)絡體系結(jié)構(gòu)、針對新型高性能業(yè)務的3 類下一代網(wǎng)絡處理器設計方法進行闡述.提出了下一代網(wǎng)絡處理器發(fā)展的挑戰(zhàn),設計了一種下一代高性能可演進的網(wǎng)絡處理器體系架構(gòu),實現(xiàn)了原型系統(tǒng)并對其進行了測試.
本文第1 節(jié)介紹網(wǎng)絡處理器的基本概念與面臨的挑戰(zhàn).第2 節(jié)~第4 節(jié)按照3 類方法分類闡述下一代網(wǎng)絡處理器設計的主要指導思想.第6 節(jié)提出下一代網(wǎng)絡處理器的發(fā)展方向,并介紹一種高性能可演進的下一代網(wǎng)絡處理器體系架構(gòu)與實現(xiàn)方法.第7 節(jié)對全文的工作進行總結(jié).
網(wǎng)絡處理器由多個處理器內(nèi)核構(gòu)成[6],一般地,這些內(nèi)核分為處理單元(processing element,簡稱PE)、協(xié)處理單元(co-processor,簡稱CoP)以及硬件邏輯管控單元(hardware logic block,簡稱HLB).以上單元的配置方式、指令集設計、共享資源訪問策略以及調(diào)度方法一般有兩種處理機制,處理機制的不同,導致網(wǎng)絡處理器的硬件邏輯結(jié)構(gòu)不同:一種是流水線方式,如圖1 所示的Yang 等學者[7]提出的一種經(jīng)典網(wǎng)絡分組處理操作流程,各單元利用處理引擎無關的特點,通過流水線實現(xiàn)系統(tǒng)指令并行處理,完成分組相關操作;另一種是并行處理方式,由于使用并行處理要頻繁地對分組狀態(tài)進行更新,利用存儲表格維護其狀態(tài),所需要的計算資源相對較多,采用并行處理的時機非常重要,使得每個處理單元完成相似的任務.并行處理架構(gòu)使用HLB 和PE 集群關聯(lián),利用PE 間并行、PE 內(nèi)部并行或者PE 和CoP 并行方式提高處理器效率.
Fig.1 Pipeline structure of network processor圖1 網(wǎng)絡處理器流水線編排結(jié)構(gòu)
學者譚章熹等人[8]認為,網(wǎng)絡處理器本身必須具備以下5 點要求:(1) 擁有網(wǎng)絡分組并行處理能力;(2) 具有高效的處理速度,能夠達到分組的實時處理;(3) 擁有一定數(shù)目的網(wǎng)絡專用協(xié)處理器;(4) 具有高度的可編程性和擴展性;(5) 能夠快速投向市場,盡量減小再開發(fā)周期.
在這種條件下,除了擁有可靠的硬件架構(gòu)外,網(wǎng)絡處理器芯片內(nèi)的各PE 上需要執(zhí)行相關程序進行單元間通信和轉(zhuǎn)發(fā)表、提取元數(shù)據(jù)等操作.依據(jù)不同的網(wǎng)絡處理任務,軟件系統(tǒng)分為控制層面和數(shù)據(jù)層面:控制面搭載網(wǎng)絡協(xié)議棧以及實時操作系統(tǒng)等進行管理和策略控制;數(shù)據(jù)層面包括控制程序、管理程序和轉(zhuǎn)發(fā)程序等完成對數(shù)據(jù)的高速和定制化處理.
網(wǎng)絡處理器作為一種支持各項網(wǎng)絡協(xié)議實現(xiàn)的特殊處理器,它具備一定的可編程性保證部分工作所需功能的動態(tài)加入[9].網(wǎng)絡處理器問世于1999 年,并即刻被網(wǎng)絡設備廠商和半導體公司投資制作.隨著學術(shù)界和業(yè)界對網(wǎng)絡處理器的重視,不同體系結(jié)構(gòu)、不同應用場景的網(wǎng)絡處理器也相繼出現(xiàn).
作為推動下一代網(wǎng)絡向靈活性和高性能結(jié)合的關鍵技術(shù),新型網(wǎng)絡處理器的體系結(jié)構(gòu)研究首先成為了該領域的熱點問題[10].為了使得網(wǎng)絡處理器更具備靈活性,以便對新型業(yè)務進行處理,中間網(wǎng)絡設備開始不僅僅滿足于基本的轉(zhuǎn)發(fā)和查表操作.各類基于新型網(wǎng)絡處理器體系架構(gòu)的QoS 路由器相繼出現(xiàn),如基于DifferServ[11]的VERA(virtual extensible router architecture,虛擬可擴展路由器體系結(jié)構(gòu))可擴充路由器.這些設備主要關注可擴展性和靈活性,稍微兼顧了效率.隨著對QoS 控制策略的不斷深入研究,網(wǎng)絡處理器架構(gòu)設計逐漸偏向可重點支持某一特定需求的協(xié)處理器設計[12].協(xié)處理器利用自身計算性能,增加了網(wǎng)絡處理器針對特定應用的處理效率.當然,協(xié)處理器一定意義上拖累了網(wǎng)絡處理器的靈活性,針對協(xié)處理器而設計的流水線或者體系架構(gòu)更改成本較高.
為了解決上述問題,也隨著網(wǎng)絡環(huán)境的日益復雜,近年來,硬件領域以及編程語言的發(fā)展紅利也逐漸映射到網(wǎng)絡處理器研究上來.ASIC(application specific integrated circuit,專用集成電路)作為網(wǎng)絡處理設備的初始應用芯片,在應用領域逐漸廣泛并趨于靈活的網(wǎng)絡市場上逐漸不被人滿意.更多的半定制化芯片,如FPGA(field programmable gate array,現(xiàn)場可編程邏輯門陣列)應用到了網(wǎng)絡處理器設計中[13].網(wǎng)絡處理器應用開發(fā)難度也影響著其靈活性利用新型的可編程技術(shù),簡化網(wǎng)絡處理器設計的方式方法也成為研究熱點.
網(wǎng)絡處理器的發(fā)展也面臨著對應的挑戰(zhàn).面向新型的網(wǎng)絡體系結(jié)構(gòu),從數(shù)據(jù)網(wǎng)到電信網(wǎng)、從接入層到骨干層,網(wǎng)絡處理器開始被廣泛開展研究以及應用.隨著需求的推動和技術(shù)間的交叉融合,網(wǎng)絡處理器在平衡高速、靈活特性上逐漸出現(xiàn)矛盾[14].隨著通用性強、開發(fā)環(huán)境友好、軟硬件融合度高等設計理念都逐漸泛化為數(shù)據(jù)處理技術(shù)從而成為潮流,網(wǎng)絡處理器面臨著從交換、路由、網(wǎng)絡融合與演進等傳統(tǒng)業(yè)務拓展到適應新型體系結(jié)構(gòu)、滿足特殊需求型業(yè)務甚至應用于終端領域的重大挑戰(zhàn).
在這種大背景下,將網(wǎng)絡處理器的“高性能”“高靈活”結(jié)合的研究局面出現(xiàn),下一代網(wǎng)絡處理器設計成為了研究熱點.下一代網(wǎng)絡處理器的核心設計方法是結(jié)合應用場景,將分組處理與轉(zhuǎn)發(fā)的高性能和可編程、可演進的靈活性進行結(jié)合,使得其能夠在自身資源屬性的限制下,完成可定制、可重構(gòu)的,并且提高搭載網(wǎng)絡處理器設備的效率、可編程性、魯棒性和安全性.目前,網(wǎng)絡處理器的“下一代”設計思路主要體現(xiàn)在3 個方面:利用新型可編程技術(shù)的下一代網(wǎng)絡處理器、面向新型網(wǎng)絡體系結(jié)構(gòu)的下一代網(wǎng)絡處理器、針對新型高性能業(yè)務的下一代網(wǎng)絡處理器.具體的分類框架如圖2 所示.同時,為了使下一代網(wǎng)絡處理器更具有有效性和可用性,工業(yè)界開始針對新型設計方法進行產(chǎn)品化、原型系統(tǒng)化的輸出,本文也將會介紹這一部分內(nèi)容.
本文將重點關注下一代網(wǎng)絡處理器設計思想和體系結(jié)構(gòu),將這些雖然沒有量產(chǎn)但是實現(xiàn)原型系統(tǒng)的網(wǎng)絡處理器進行體系化的整理、介紹以及對比.
Fig.2 Classification framework of next generation network processor design methods圖2 下一代網(wǎng)絡處理器設計方法分類框架
網(wǎng)絡處理器的靈活性依賴于兩點:芯片的可編程性以及平臺編程語言的交互難度和編寫難度.芯片作為一個集成電路的載體,因其特有的體積小、重量輕、處理速度快等優(yōu)勢,得以在各項工業(yè)制造中廣泛應用.可編程技術(shù)在不同的硬件上有不同的體現(xiàn)方式,由用戶在使用中通過計算機指令選擇不同通道和電路功能進行編程實現(xiàn)[15].網(wǎng)絡處理設備利用可編程芯片的起源較早,從開始的單片機到ASIC、FPGA 等,除了處理網(wǎng)絡協(xié)議,還可以擴大轉(zhuǎn)發(fā)表,滿足高性能需求.網(wǎng)絡處理器作為一種特殊器件,其借鑒不同可編程芯片架構(gòu)的融合開發(fā),是下一代網(wǎng)絡處理器原型的重點方向.在當前對中間網(wǎng)絡設備處理需求多樣、復雜的情況下,對芯片編程的語言可操作性,成為了評判網(wǎng)絡處理器靈活性的一個重要方式.硬件描述語言隨著EDA(electronic design automation,電子設計自動化)技術(shù)的發(fā)展成為一種趨勢.目前,最主要的硬件描述語言是VHDL 和在C 語言的基礎上發(fā)展起來的Verilog HDL.兩者語法相對嚴格,主要關注數(shù)字電路和系統(tǒng)的設計與描述,功能雖然覆蓋網(wǎng)絡處理但是針對性不夠,編寫編譯復雜.斯坦福大學的McKeown 教授[16]于2014 年設計并提出了數(shù)據(jù)平面特定領域編程語言P4,充分發(fā)揮了網(wǎng)絡處理中數(shù)據(jù)平面的編程能力,也為網(wǎng)絡處理器的設計提供了新的思路.
網(wǎng)絡處理器設計之初,ASIC,FPGA 以及NP 作為不同的架構(gòu)都可以搭載在路由器上,學術(shù)界也開始爭論這幾種芯片架構(gòu)對交換機等設備的適用性.擁有不同特點的3 種芯片的相互融合借鑒,是下一代網(wǎng)絡處理器的設計潮流.2013 年,Teubner 和Woods 編寫了利用可編程門陣列FPGA 進行網(wǎng)絡數(shù)據(jù)處理的專著[17],該書主要關注了網(wǎng)絡處理器的硬件系統(tǒng)的可編程性,對利用FPGA 進行網(wǎng)絡數(shù)據(jù)流的處理進行了系統(tǒng)化的整理和指導,討論了基于ASIC 芯片對網(wǎng)絡處理器的設計影響.
自2005 年開始,3 種芯片的架構(gòu)融合設計潮流興起.David 和Taylor 等人[18]探討了利用FPGA 和ASIC 等芯片形式,用以硬件輔助設計權(quán)衡的健壯的報頭壓縮(robust header compression,簡稱ROHC)方法.ROHC 在網(wǎng)絡處理器上實現(xiàn),并為分組交換網(wǎng)絡中的無線通信提供更有效的無線鏈路使用.Renterghem 等人[19]研究了一種適合以太網(wǎng)接入節(jié)點的網(wǎng)絡處理器,借鑒ASIC 數(shù)據(jù)包處理器設計方法,通過多個處理器在多核環(huán)境下并行運行,并達到10gbit/s 的以太網(wǎng)速率.該處理器有一個優(yōu)化的體系結(jié)構(gòu)來處理流處理任務,如解析、分類和包操作.VLIW(very long instruction word,超長指令字)指令集允許ASIP(application specific instruction set processor,專用指令集處理器)內(nèi)部各功能單元之間的高度并行,并有專用指令來加速典型的包處理任務.當然,上述兩點研究沒有考慮可編程性,無法靈活更新任務.來自開羅大學的Suleiman 等學者[20]介紹了一種利用ASIC 設計的嵌入式應用的低功耗、中性能網(wǎng)絡處理器,它的典型時鐘頻率為 260MHz,功耗為 0.11mW/MHz,功率效率為8.78dMIPS/mW,這使得它非常適合嵌入式和實時系統(tǒng).但是實驗驗證,其處理性能不高.Yoon 等人[21]提出了由多核處理器實現(xiàn)的一種適用于未來互聯(lián)網(wǎng)和需要多層協(xié)議處理的高端網(wǎng)絡服務的全流系統(tǒng)(OmniFlow system).作為一個基于流的網(wǎng)絡處理器,使用了65nmCOMS(complementary metal oxide semiconductor,互補金屬氧化物半導體)技術(shù),它包含40 個處理核,并利用ASIC 實現(xiàn).OmniFlow system 可通過兩個SPI-4.2s 處理傳入的包,并擁有40Gb/s 包轉(zhuǎn)發(fā)可編程引擎.文中也指出,該方法包含較多處理器核,如何進行并行調(diào)度也是未來的研究重點.
Zhang 等學者[22]提出了一種基于FPGA 的高速OBS(optical burst switch,光突發(fā)交換)核心節(jié)點BCP 網(wǎng)絡處理器,并提出了一種新的有效的波長調(diào)度算法.它不僅在調(diào)度有效波長時具有較高的帶寬利用率,而且調(diào)度時間更短.當系統(tǒng)時鐘為200MHz 時,BCP 只需180ns 的處理時間:約50ns 用于調(diào)度有效波長,130ns 用于核心節(jié)點的其他問題.上述方法針對業(yè)務較為普通,獲得高帶寬后,面對擁塞情況沒考慮.在用于特定業(yè)務的網(wǎng)絡處理器方面,Niu 等人[23]提出了一種基于FPGA 的可配置的IPSec 處理器,其本質(zhì)是高性能在線網(wǎng)絡安全處理器.它由兩個嵌入式32 位CPU 核和一個SoC 上的IPSec 協(xié)議處理器構(gòu)成,4 個并行AH,ESP,AES,HMAC-SHA-1ip 核分別連接到IPSec 處理器中的8×8 交叉開關上,實現(xiàn)了200MHz 時1.5Gb/s 的吞吐率.雖然關注點是網(wǎng)絡安全,但是進行網(wǎng)絡流量可視化難度較高.Veeraprathap 等人[24]介紹了一種基于FPGA 的網(wǎng)絡處理器設計與實現(xiàn),它是一種可擴展的分組交換結(jié)構(gòu),具有存儲轉(zhuǎn)發(fā)、錯誤管理、電源管理和安全等先進的網(wǎng)絡功能.它不僅具有數(shù)據(jù)包化/去封裝化、頻率轉(zhuǎn)換、數(shù)據(jù)大小轉(zhuǎn)換等基本功能,還具有有限電路復雜度和較低的成本.然而,該方法在靈活性上的體現(xiàn)還是基于設計時的應用下發(fā),沒有考慮任務熱部署,無法實現(xiàn)除預設能力外的更多功能.
由于預測網(wǎng)絡流量以每年大約60%的速率快速增長,因此迫切需要在NGNP 上利用其他成熟芯片原理降低功耗.Roy[25]討論了3 種減輕NP 功耗的技術(shù):異構(gòu)多核架構(gòu)、通用功能的硬件加速和非對稱擴展技術(shù).Shamani 等人[26]介紹了一種基于FPGA 的網(wǎng)絡處理器的COFFEE RISC(reduced instruction set computing,精簡指令集計算機)協(xié)處理器,它能夠通過控制器局域網(wǎng)(controller area network,簡稱CAN)協(xié)議與外圍設備通信.此外,核心和協(xié)處理器之間的數(shù)據(jù)傳輸在主數(shù)據(jù)總線上不引入任何工作負載,減少耗能的同時,最大可達825MHz的最大工作頻率.上述方法由于性能上受限于設計架構(gòu),很難滿足當代網(wǎng)絡業(yè)務的高性能需求
利用FPGA 進行靈活與性能優(yōu)化的NP 研究方面,Gadre 等人[27]提出了一種利用RISC 處理器作為高速網(wǎng)絡接口的、基于FPGA 實現(xiàn)的網(wǎng)絡處理器,其使用RISC 處理器作為網(wǎng)絡處理器的專有高速網(wǎng)絡接口卡.這種NP 可以進行多線程協(xié)議處理.文章還解釋了在確定了完整的設計規(guī)范并在硬件上實現(xiàn)了整個設計之后,支持新協(xié)議所涉及的增量變化以及調(diào)試復雜協(xié)議處理和糾正協(xié)議實現(xiàn)錯誤所需的調(diào)試策略.Li 等人[28]的文章介紹了一種基于FPGA 加速平臺的高柔性和高性能的ClickNP,該處理器靈活性高,可以服務基于高級C 類語言的可編程點擊模塊化路由器.其原型擁有每秒高達2 億個包的流量處理速度,并且具有低于2μs 延遲.該方法由于設計性能要求高,加載策略過多,導致芯片產(chǎn)業(yè)化過于困難.
打破傳統(tǒng)的芯片體系結(jié)構(gòu),將多種芯片優(yōu)點混合設計進行網(wǎng)絡處理芯片開發(fā),成為2018 年之后的主要研究熱點.Zhou 等人[29]設計并實現(xiàn)了ECTCAT 實時應用的靈活快速路徑可編程網(wǎng)絡處理器.作為家庭網(wǎng)關的快速路徑處理器,最多可用于10GPON 訪問.使用 VLIW(超長指令字)體系結(jié)構(gòu),可以并行運行多達 8 條指令.在SMIC(中芯國際) 65nm 技術(shù)下,在1.75Ghz 的運行頻率下,最多可支持7Gb/s 的數(shù)據(jù)吞吐量.同時,該處理器對于1G 以太網(wǎng)具有最小40ns 的端到端延遲,且無抖動.不過該設計受限于定制化服務,如何面對今后的網(wǎng)絡發(fā)展是一個無法解決的問題.2019 年的INFOCOM 上,Su 等人[30]甚至提出了一種基于模板的網(wǎng)絡處理器自動生成框架,通過將P4 程序自動轉(zhuǎn)換為VHDL 程序來生成具有匹配動作結(jié)構(gòu)的網(wǎng)絡處理器.作為一種基于模板的解決方案,其使用P4 程序自動轉(zhuǎn)換為VHDL 程序,從而在FPGA 中生成包轉(zhuǎn)發(fā)處理器,最后實例化生成網(wǎng)絡處理器.該方法實例化過程復雜,適合學術(shù)界進行學術(shù)研究,不適合現(xiàn)場部署.
一般地,轉(zhuǎn)發(fā)芯片絕大部分都不是可編程芯片,無論是路由器中采用的NP,還是交換機中采用的Switch Chip,都不是可編程芯片[31].這些芯片的硬件轉(zhuǎn)發(fā)邏輯已經(jīng)設計好,無法通過調(diào)整軟件參數(shù)去更改.編程語言的協(xié)議或者是平臺相關性隨著芯片種類的冗雜導致數(shù)據(jù)平面控制平面分離失效,網(wǎng)絡處理器可編程性變差[32].P4的出現(xiàn)開始改變這種局面,網(wǎng)絡處理器原型設計開始考慮對這種語言的適配性.
領域?qū)S谜Z言(domain-specific language,簡稱DSL),如P4,以其高生產(chǎn)率在網(wǎng)絡領域得到了廣泛的應用.然而,在FPGA 上實現(xiàn)P4 程序的自動轉(zhuǎn)換是很困難的.
Cao 等人[30]提出了一種基于模板的網(wǎng)絡處理器自動生成框架,通過將P4 程序自動轉(zhuǎn)換為VHDL 程序來生成具有匹配動作結(jié)構(gòu)的網(wǎng)絡處理器.該框架首先從P4 程序中提取功能模塊和相應的參數(shù),這些功能模塊將映射到預構(gòu)建的高效VHDL 模板以獲得高性能.最后,所選模板將被實例化,并根據(jù)需要安排形成一個完整的處理器.實驗表明:生成的處理器不僅具有較高的吞吐量,而且具有較低的延遲.該方法的缺陷是精度較差,測試壓力強度不夠.He 等人[33]建議利用P4 實現(xiàn)NP 的網(wǎng)絡功能虛擬化(NFV),可以處理與協(xié)議無關分組處理的P4 語言,在計算和存儲硬件方面等運營商指定的網(wǎng)絡功能實例化具有很好的優(yōu)勢.同時,可以利用P4 增強的網(wǎng)絡硬件的性能改進.Cao 等人[34]提出了一種將P4 程序轉(zhuǎn)換為VHDL 語言并在FPGA 平臺上實現(xiàn)NP 的框架,在該框架中,引入了一種基于匹配動作的硬件體系結(jié)構(gòu),其預構(gòu)建的模板庫用于編譯,包括與特定的明確設計的組件相對應的優(yōu)化VHDL 模板.通過調(diào)用、配置、優(yōu)化和實例化這些參數(shù)和關系,將它們映射到相應的模板,這樣生成的NP占用資源少、吞吐量高、延遲低.當然,上述方法原型到芯片的過程比較困難.
NP 與P4 的結(jié)合可以實現(xiàn)在靈活性上的質(zhì)變,這首先給流量監(jiān)測技術(shù)帶來了新鮮血液.Martins 等人[35]提出了利用P4 實現(xiàn)的NP 中搭載概率數(shù)據(jù)結(jié)構(gòu)來監(jiān)視多租戶網(wǎng)絡.文章為每個租戶實現(xiàn)了sketches 架構(gòu),利用位圖和計數(shù)器數(shù)組兩個概率結(jié)構(gòu)來進行獨立的網(wǎng)絡監(jiān)視.該方法沒有考慮帶內(nèi)測量帶來的精確問題,導致測量結(jié)果精確度不高.Paolucci 等人[36]利用P4 語言對SDN(software defined network,軟件定義網(wǎng)絡)交換機的數(shù)據(jù)平面結(jié)構(gòu)和行為進行編程.實例化的NP 可以自定義管道和有狀態(tài)對象,支持復雜的工作流、用戶定義的協(xié)議/頭和有限狀態(tài)機強制.原型系統(tǒng)顯示出良好的可擴展性性能和總體延遲.該方法沒有進行現(xiàn)網(wǎng)測試,實際應用能力存在一定的疑問.在網(wǎng)絡管理方面,Yazdinejad 等人[37]設計了一種與靜態(tài)網(wǎng)絡設備不同的NP 體系結(jié)構(gòu),它在數(shù)據(jù)平面具有高靈活性和可編程性,支持特定分組的解析和處理,原型系統(tǒng)采用了P4 語言在FPGA 上實現(xiàn).Guan、Jiang、Benácek 等人[38-40]都利用P4 設計了負載均衡的網(wǎng)絡監(jiān)控、網(wǎng)絡擁塞控制以及線速轉(zhuǎn)發(fā)框架,使得下一代可能的異構(gòu)網(wǎng)絡硬件能夠根據(jù)不同領域的特定應用程序的需要進行運行時定制.這些方法注重靈活性,在部署時間、處理性能兩方面考慮不足.
P4 除了能夠提高NP 的靈活性,解決了有狀態(tài)數(shù)據(jù)平面的局限性之外,也能利用存儲和計算性能的改變,實現(xiàn)學習功能,提高性能.Sviridov 等人[41]引入并提供了LODGE 的設計準則.LODGE 是一個模型,根據(jù)該模型,分布式網(wǎng)絡應用程序可以基于在其他交換機上共享的一些全局變量在每個交換機上利用NP 做出本地決策.應用程序可以支持在P4 和開放包處理器的有狀態(tài)數(shù)據(jù)平面中學習并檢測分布式拒絕服務(DDoS)攻擊.Pontarelli 等人[42]的目標是使NP 進行預先操作,在保持高速多Gb/s 操作的同時可編程.他們提出了一個特定領域的NP 架構(gòu),稱為包操作處理器(PMP),能夠有效地支持微程序?qū)崿F(xiàn)隧道、NAT(network address translation,網(wǎng)絡地址轉(zhuǎn)換)和ARP(address resolution protocol,地址解析協(xié)議)應答生成等相關操作.上述方法由于需要離線學習,對數(shù)據(jù)要求嚴格,準確性過度依賴先驗處理知識.
近年來,網(wǎng)絡的應用場景變化復雜,傳統(tǒng)網(wǎng)絡體系結(jié)構(gòu)在時延、傳輸性能上的弊端逐漸顯現(xiàn)[43].新型的網(wǎng)絡體系結(jié)構(gòu)成為了學者們從根本上解決各種網(wǎng)絡問題的研究熱點,這種學術(shù)潮流也影響了學者們對網(wǎng)絡處理器的設計模式.數(shù)據(jù)平面與控制平面分離原本就符合網(wǎng)絡處理器的設計思想,面向軟件定義網(wǎng)絡這一新型網(wǎng)絡體系結(jié)構(gòu)進行NP 設計,可以增強網(wǎng)絡各節(jié)點處理性能,靈活開展各項業(yè)務.去中心化的下一代網(wǎng)絡體系結(jié)構(gòu)設計思潮體現(xiàn)在了邊緣計算中的網(wǎng)絡應用.邊緣計算節(jié)點對計算能力要求高,其功耗和成本必須維持在普通環(huán)境下的可接受的程度[44].所以在邊緣計算以及云計算、甚至霧計算的節(jié)點上,NP 可以成為一種專用的預處理器,在海量級的數(shù)據(jù)報文流量下,利用高效的包處理能力提煉出相關有效載荷,轉(zhuǎn)發(fā)至計算節(jié)點的不同核心計算處理器進行數(shù)據(jù)計算或者相關處理.NP 作為一種功能芯片,實現(xiàn)非核心業(yè)務向智能網(wǎng)卡(smart network interface controller,簡稱SmartNIC)的功能推拉與卸載,可以幫助NP 提高利用率,增強網(wǎng)絡的轉(zhuǎn)發(fā)與處理性能.
SDN 的設計雖然從控制層面進行了邏輯上的簡化,但是實現(xiàn)這種下一代架構(gòu)需要各個交換機擁有足夠的計算與處理甚至是存儲資源[45].使用下一代網(wǎng)絡處理器應用在交換設備上能夠加速SDN 體系結(jié)構(gòu)的流表下發(fā)、帶內(nèi)遙測以及網(wǎng)絡監(jiān)管的性能.
NGNP 在SDN 的數(shù)據(jù)中心建設上有得天獨厚的優(yōu)勢.Brebner 等人[46]探討了利用FPGA 實現(xiàn)的NP 原型作為光網(wǎng)絡和數(shù)據(jù)中心服務器之間的一種經(jīng)濟高效的中介,以滿足下一代數(shù)據(jù)中心的需求.在數(shù)據(jù)中心本地或是在載波網(wǎng)絡中,配備了這種NP 的主要作用有3 個:首先是從服務器上卸載網(wǎng)絡處理功能,以便在較低的延遲下實現(xiàn)更高的吞吐量,同時釋放服務器資源以集中于數(shù)據(jù)處理;第2 個是為不同的通信協(xié)議和標準提供靈活的硬件支持;第3 個是作為一種可管理的資源,它可以提供支持SDN 和網(wǎng)絡功能虛擬化(NFV)的軟件控制器和管理程序所需的數(shù)據(jù)平面功能.該方法沒有考慮突發(fā)流量情況下或者是網(wǎng)絡攻擊時的NP 性能表現(xiàn).為了破除兼容性帶來的OpenFlow 控制平面在許多網(wǎng)絡平臺上的部署障礙,Su?é 等人[47]描述了xDPd 和OpenFlow 的網(wǎng)絡處理器.硬件無關部分主要是使用修訂的OpenFLASH 庫(RoFL),它為OpenFLASH 控制器和數(shù)據(jù)通路元件的開發(fā)提供了基礎,并允許為各種設備開發(fā)特定平臺的驅(qū)動程序.Belter 等人[48]描述了一種在軟件定義的網(wǎng)絡體系結(jié)構(gòu)中實現(xiàn)NP 的支持發(fā)現(xiàn)和HSL 翻譯功能,它將基于OpenFlow 的AFA 消息轉(zhuǎn)換為NP-3 網(wǎng)絡處理器中的內(nèi)存結(jié)構(gòu).NP-3 存儲器結(jié)構(gòu)通過EZchip 提供的EZdriver 訪問,其內(nèi)存包含一個帶有流條目的結(jié)構(gòu)、包匹配和操作的專有二進制編碼.這兩種方法在提供控制器命令編譯支持時沒有考慮SDN 架構(gòu)下流量的特征與分組處理特點,導致過多指令集翻譯帶來的性能下降.
將輸入業(yè)務流與控制器發(fā)送的規(guī)則相匹配,是SDN 業(yè)務轉(zhuǎn)發(fā)的一個重要組成部分,其執(zhí)行效率對網(wǎng)絡性能有很大影響.Wijekoon 等人[49]提出了一種高性能、低成本的SDN 交換機流匹配體系結(jié)構(gòu),通過定制NP 處理特定于SDN 的業(yè)務.該NP 由一個用于流匹配的專用單元和一個自定義處理器組成,這個處理器的ISA 被設計用來加速OpenFlow 和SDN 相關的任務,比如向流表添加條目、處理相關報文等.其使用32 位長指令,操作碼保留6 位,能夠保持最大頻率150MHz,其流量匹配單元也可保證250MHz 工作.但是該NP 的功耗很高,設計相對復雜,很難大規(guī)模地在SDN 網(wǎng)絡中部署.Blaiech 等人[50]提出了一種基于網(wǎng)絡演算模型和博弈論算法的公平共享網(wǎng)絡處理器資源分配策略,該策略根據(jù)虛擬節(jié)點的處理,動態(tài)地映射合適的資源.在NP 的實現(xiàn)中,他們專注于在多個協(xié)處理器中根據(jù)OpenFlow 轉(zhuǎn)發(fā)模型來重新分配資源的包處理任務.
隨著業(yè)務的不斷更新,SDN 仍然尋求靈活的方式定義網(wǎng)絡設備的行為,控制平面需要能夠充分利用現(xiàn)代網(wǎng)絡硬件不斷增長的能力及其多樣性,使得控制平面加快對網(wǎng)絡變化的探測和響應[51].Belter 等人[52]提出了一種新的NP 硬件抽象,其首要目標是公開NP 和軟件交換機的高級可編程能力;第2 個目標是通過提供動態(tài)檢查特定網(wǎng)絡設備支持的功能的可能性,來擴展網(wǎng)絡節(jié)點可編程性的概念;第 3 個目標是將使用新定義的 API(application programming interface,應用程序接口)的編程語言引入到不同類型網(wǎng)絡設備的數(shù)據(jù)路徑的可編程抽象中.Kaljic 等人[53]提出了一種基于現(xiàn)CPU+FPGA 技術(shù)的深度可編程NP 混合結(jié)構(gòu),以克服OpenFlow 在實現(xiàn)新協(xié)議和高級分組處理功能方面的局限性.通過對實現(xiàn)和實驗評估,該NP 將交換任務減少到簡單的包流表查找,證明了采用混合的FPGA/CPU 結(jié)構(gòu)是可行的.這種方法的不足是在CPU 和FPGA 混合編排時忽略了緩存架構(gòu)的設計,導致性能較差
在SDN 中,OpenFlow 表查找可能需要檢查15 個包頭字段.為了針對SDN 這種下一代網(wǎng)絡體系結(jié)構(gòu)進行優(yōu)化加速,Qu 等人[54]提出了利用NP 的包分類實現(xiàn)與有效的優(yōu)化技術(shù).在多核GPP 上,他們使用并行程序線程并行化搜索和合并階段.該方法強調(diào)性能,可能會加大NP 中Cache 的資源占用,反而導致Cache 失效.Sun、Bi 等人[55]針對SDN 數(shù)據(jù)平面提出了一種新的狀態(tài)數(shù)據(jù)平面體系結(jié)構(gòu)SDPA.為SDN 交換機設計了一個專用NP,通過新的指令和狀態(tài)表來管理狀態(tài)信息,進而實現(xiàn)擴展的開放流協(xié)議來支持平面間通信.Wu 等人[56]提出了一種支持Openflow 協(xié)議的高擴展性SDN 交換機的NP 軟硬件協(xié)同設計,為了在靈活性、能量效率和性能之間取得平衡,NP 核心是基于集成了ARM 處理器和FPGA 的嵌入式片上系統(tǒng)(SOC)平臺來實現(xiàn)的.特別地,在所提出的交換架構(gòu)中設計了專用高速信道,使得多個交換機可以互連在一起,成為一個堆疊的交換機.Li 等人[57]提出了一種基于Cavium 的開放式vSwitch 實現(xiàn),Cavium 平臺就是一種多核NP,它支持包的零拷貝,處理包的速度更快.這兩種方法在高速通道的使用上容易引發(fā)堵塞和不一致性,風險系數(shù)較高.
安全性是SDN 中最具挑戰(zhàn)性的問題之一,網(wǎng)絡安全應用程序通常需要以比SDN 數(shù)據(jù)平面實現(xiàn)允許的更高級的方式分析和處理流量[58].NP 可以在SDN 數(shù)據(jù)平面(即交換機)上對分組進行預處理,以初步確定其在網(wǎng)絡中的行為.近期,區(qū)塊鏈被用于安全傳輸網(wǎng)絡中的交易和文件傳遞.Yazdinejad 等人[59]根據(jù)區(qū)塊鏈的安全特性和對數(shù)據(jù)處理功能的支持,提出了一種新的SDN 分組解析器體系結(jié)構(gòu),稱為區(qū)塊鏈啟用分組解析器(blockchainenabled packet parser,簡稱BPP),并進行了利用FPGA 的NP 原型實現(xiàn).在他們提出的架構(gòu)中,NP 利用一個基于多元相關方法的數(shù)學模型,用于從觀察到的數(shù)據(jù)包流量中檢測攻擊,能夠做到處理速度快、靈活性強、消耗資源較低.但是該方法沒有對NP 本身的架構(gòu)加以解析和更改,沒有突破原有NP 架構(gòu)在使能安全業(yè)務時的限制.
邊緣計算、云計算節(jié)點最注重節(jié)點的數(shù)據(jù)處理能力[44].作為分導網(wǎng)絡數(shù)據(jù)的重要“關卡”,網(wǎng)絡處理器對網(wǎng)絡數(shù)據(jù)的預先處理可以倍速增加計算節(jié)點的處理效能,甚至可以緩解整體網(wǎng)絡的壓力.
在邊緣計算節(jié)點中,領域特定的局域網(wǎng)語言(如Click)是捕獲應用程序一致性的好方法,但網(wǎng)絡處理器仍有許多其他機會來提供更符合應用程序需求的功能.Mihal、Andrew 等人[60]提出了一個處理元素,它在實現(xiàn)Click應用程序任務時非常有效.其使用Click 作為高級輸入語言編程PE 提供了一種高效的方法,并利用FPGA 實現(xiàn)了為IPv4 轉(zhuǎn)發(fā)應用處理超過8Gb/s 流量的NP.Nayaka 等人[61]介紹了一種用于片上系統(tǒng)(SoC)的以太網(wǎng)NP 設計,該處理器實現(xiàn)了所有核心的分組處理功能,包括分組和重組、分組分類、路由和隊列管理,提高了交換/路由性能,使其更適合下一代網(wǎng)絡(next generation network,簡稱NGN)的各項節(jié)點.該NP 可支持1/10/20/40/100 千兆鏈路,具有速度和性能優(yōu)勢.當然,其也具有片上系統(tǒng)的共同弱點,靈活性受限于定制流程.
加速 NP 中的數(shù)據(jù)處理流程、增強節(jié)點性能、減少復雜度,是面向計算節(jié)點的 NP 設計重點.Ihor,Tchaikovsky[62]成體系地介紹了面向邊緣計算的網(wǎng)絡處理器的體系結(jié)構(gòu)和服務,描述了網(wǎng)絡處理器在設備流量處理和形成中的應用.他指出:在滿足這些要求時,重點是包的處理速度.但是該文章沒有討論NP 在遭遇計算節(jié)點流量突發(fā)時的情況.Kanada 等人[63]提出了一種利用多個包處理器控制(packet-processing cores,簡稱PPC)NP中的分組處理的方法.通過這種方法,NP 芯片外的CPU 對復雜的控制信息進行部分處理,并將其分為簡化的控制包,這些控制包被發(fā)送到控制處理PPC.利用PPC 的數(shù)據(jù)交換機制(例如共享存儲器或片上網(wǎng)絡)來控制數(shù)據(jù)處理,這些機制比原有機制更加統(tǒng)一和簡單.處理器關聯(lián)性是提高NP 性能的有效途徑之一.He 等人[64]詳細分析了網(wǎng)絡處理器的緩存特性,提出了一種兼顧負載均衡和數(shù)據(jù)包相關性的多核網(wǎng)絡處理器調(diào)度算法BLA.該方法嘗試將同一個流的數(shù)據(jù)包調(diào)度到同一個NP 核心,同時保持核心之間的工作負載平衡.但是增加核間調(diào)度,使得該方法犧牲了一定的性能
鏈路速度的顯著和連續(xù)增加以及應用的多樣性,要求新的云計算節(jié)點服務高效又靈活.Niu 等人[65]提出一種基于NP 的高效流量管理QoS 調(diào)度機制,詳細討論了利用數(shù)據(jù)平面軟件體系結(jié)構(gòu)的操作過程.他們將NP 的一些協(xié)處理器設計得更加親和計算節(jié)點業(yè)務,如準確的流量分類、靈活的訪問控制和三步調(diào)度等.針對網(wǎng)絡應用中數(shù)據(jù)量大、實時性要求高的問題,Wu 等人[66]通過優(yōu)化配置NP 控制和數(shù)據(jù)平面,提出一種基于核心處理器的快速數(shù)據(jù)包處理的NP 體系結(jié)構(gòu).它減少了CPU 的調(diào)度,與平均分配CPU 內(nèi)核資源相比,提高了30%的包轉(zhuǎn)發(fā)率.上述方法的缺點是沒有引入負載均衡考慮,準確的流量分類帶來的高功耗,加大了計算節(jié)點的環(huán)境、能動壓力.
與DPDK(data plane development kit,數(shù)據(jù)平面開發(fā)套件)的設計模式類似,很多云計算或邊緣計算節(jié)點不希望所有的數(shù)據(jù)通過之前搭載的網(wǎng)絡協(xié)議棧進行處理,為NP 專門實現(xiàn)一種協(xié)議棧,成為了計算節(jié)點的加速方式.Tang 等人[67]提出一種實時操作系統(tǒng)中的多徑可靠數(shù)據(jù)傳輸(multi-path reliable data transfer,簡稱MPRDT)系統(tǒng),該系統(tǒng)在多核NP 的實時操作系統(tǒng)(real time operating system,簡稱RTOS)中實現(xiàn)了一個基于UDP 的可靠數(shù)據(jù)傳輸棧,以加速網(wǎng)絡處理器的可靠數(shù)據(jù)傳輸.該系統(tǒng)由兩部分組成:基于UDP 的可靠棧(URS)和連接管理模塊.系統(tǒng)采用多徑方法,使系統(tǒng)能夠通過不同的接口管理到不同接收端的多徑連接,充分利用網(wǎng)絡接口和帶寬資源.
隨著服務器的虛擬化的發(fā)展趨勢,出現(xiàn)了一種新的網(wǎng)絡訪問層,它由運行在服務器平臺上的虛擬交換機組成,為同一物理服務器上的虛擬機(VM)提供連接.Blaiech 等人[68]提出了一種策略,旨在通過將包處理任務擴展到NP,以提高虛擬交換機的性能.該策略基于處理器資源的自適應動態(tài)分配,分配機制包括將虛擬交換機任務映射到足夠的資源集,即多核數(shù)據(jù)路徑或硬件加速器數(shù)據(jù)路徑.傳統(tǒng)的NP 不能處理7 層包,給計算節(jié)點帶來了很大困擾,Bae 等人[69]提出了一種新的NP 互通結(jié)構(gòu),該結(jié)構(gòu)通過將傳統(tǒng)NP 與通用處理器(GP)相結(jié)合,能夠處理OSI 第2 層(L2)~第7 層(L7)的數(shù)據(jù)包,并在不增加硬件開銷的情況下提高NP 中數(shù)據(jù)包處理的吞吐量和負載平衡.實現(xiàn)上述方法并不簡單,兼容性是搭載新協(xié)議NP 的重要問題,無法識別分組頭部或者協(xié)議偏差導致識別錯誤時,NP 的后續(xù)處理不僅消耗CPU 資源,而且導致下發(fā)的轉(zhuǎn)發(fā)和處理任務全部失敗.
隨著云計算中網(wǎng)絡即服務(network-as-as-a-service,簡稱 NaaS)的發(fā)展趨勢,加速租戶 NFs(network file system,網(wǎng)絡文件系統(tǒng))以滿足性能要求也具有重要意義.然而,為了追求高性能,現(xiàn)有的工作如AccelNet 被精心設計,以加速數(shù)據(jù)中心提供者的特定NFS,這犧牲了快速部署新NFs 的靈活性.Li 等人[70]提出了一種可重構(gòu)的NP 流水線DrawerPipe,它將數(shù)據(jù)包處理抽象為多個由同一接口連接的drawer.開發(fā)人員可以輕松地將現(xiàn)有模塊與其他NFs 共享,只需在適當?shù)摹俺閷稀敝屑虞d核心應用程序邏輯,即可實現(xiàn)新的NFs.此外,他們還提出了一個可編程模塊索引機制,即PMI,它可以以任何邏輯順序連接“抽屜”,從而為不同的租戶或流執(zhí)行不同的NFs.這種NP設計方案暫時無法大規(guī)模投入生產(chǎn).Li 等人[71]提出了一個并行包處理運行系統(tǒng),并探討了一種基于關聯(lián)度的包調(diào)度算法,以提高NP 負載平衡度并減少緩存丟失為.在并行數(shù)據(jù)包處理系統(tǒng)中,由于犧牲了部分緩存,NP 任務分發(fā)器和調(diào)度器能夠在負載均衡和緩存關聯(lián)性之間達到較好的折衷.方法缺陷是租戶單點故障時容易使得全部服務器NP 性能宕機,在高并發(fā)情況下其效率有限,安全性也一般.
NP 的設計原型一般以板卡的形式實現(xiàn),所以NP 的設計階段與SmartNIC 的設計方法類似,呈現(xiàn)形式也相似.可以預見的是:面向復雜網(wǎng)絡應用和對網(wǎng)絡壓力不同的各項應用,實現(xiàn)NP 和smartNIC 的功能推拉是必備的節(jié)點能力,很多研究者也在開始尋找兩者的平衡點.
NP 的使用受到不斷提高的靈活性和高性能的分組處理的需求的鼓舞.此外,適應性要求、產(chǎn)品差異化和縮短上市時間鼓勵在網(wǎng)卡中使用網(wǎng)絡處理器,而不是包括特定用途的硬件.Cascón 等人[72]提出了一種利用NP 的并行性來提高通信性能的網(wǎng)卡,遺憾的是,他們沒有提出特有的框架,而是基于包括16 個多線程處理內(nèi)核和包處理的優(yōu)化設計Intel IXP28xx 網(wǎng)絡處理器.通過使用NIC 卸載和/或加載策略,利用不同的選項來優(yōu)化主機中的通信路徑.Sabin 等人[73]提出的SmartNIC 是一種用戶可編程的10GE NIC,可以滿足HPC(high performance computing,高性能計算機群)和數(shù)據(jù)中心社區(qū)的高性能網(wǎng)絡需求.這種SmartNIC 支持開發(fā)特定于應用程序的卸載引擎,以實現(xiàn)與NP 的功能推拉.應用程序開發(fā)人員可以實現(xiàn)應用程序感知的卸載引擎,網(wǎng)絡開發(fā)人員可以測試和開發(fā)網(wǎng)絡協(xié)議卸載引擎,研究人員可以測試和開發(fā)新的卸載協(xié)議和中間件.但該方法沒有明確卸載協(xié)議類型,適用范圍有限.
從增加包處理性能的角度看,SmartNIC 從主機處理器上卸載網(wǎng)絡功能,使其部分功能通過板卡或者是NP進行實現(xiàn),是一個較優(yōu)策略.Le 等人[74]提出了一種廣義的SDN 控制的NF 卸載結(jié)構(gòu)(uniflying host and smart NIC offload,簡稱UNO).通過在主機中使用多個交換機,它可以透明地將動態(tài)選擇的主機處理器的數(shù)據(jù)包處理功能卸載到SmartNIC,同時保持數(shù)據(jù)中心范圍的網(wǎng)絡控制和管理平面不變.UNO 向SDN 控制器公開單個虛擬控制平面,并在統(tǒng)一的虛擬管理平面后面隱藏動態(tài)NF 卸載.這使得UNO 能夠最佳地利用主機和SmartNIC 的組合包處理能力,并根據(jù)本地觀察到的通信模式和資源消耗進行NP 參與轉(zhuǎn)發(fā)的本地優(yōu)化,而無需中央控制器的參與.這種方法依賴于板卡CPU 的計算性能,可能會無法正確地判斷本地網(wǎng)絡狀態(tài).Cornevaux-Juignet 等人[75]考慮了采用嵌入式現(xiàn)場FPGA 的SmartNIC 輔助NP 進行處理的新解決方案,提出了一種混合體系結(jié)構(gòu)來實現(xiàn)靈活的高性能流量取證.這項工作結(jié)合了硬件性能、高吞吐量和軟件高靈活性,以實現(xiàn)超過40Gb/s 的數(shù)據(jù)速率,同時可以通過參數(shù)在運行時熱配置.Cerovi? 等人[76]提出了一種將數(shù)據(jù)平面包處理卸載到具有并行處理能力的可編程硬件上的體系結(jié)構(gòu),因此,他們使用MPPA 這種大規(guī)模并行NP 陣列組建的SmartNIC,它提供可用于數(shù)據(jù)包處理的ODP(open distributed processing,開放式分布處理)API,并且可以建立一個全網(wǎng)格無阻塞的第2 層網(wǎng)絡.當然,這兩種方法注重轉(zhuǎn)發(fā)性能,包處理性能考慮不周.
實現(xiàn)與SmartNIC 功能推拉的NP 可以擴大自身的網(wǎng)絡監(jiān)控能力.Huang 等人[77]設計并實現(xiàn)了一個基于多隊列網(wǎng)卡和多核NP 的數(shù)據(jù)流捕獲系統(tǒng),該系統(tǒng)充分利用了輪詢技術(shù)、多隊列技術(shù)和原始設備技術(shù),大大提高了系統(tǒng)性能.2019 年的SIGCOMM 上,Li 等人[78]提出了一種新的高速擁塞控制機制HPCC(high-precision clusion control),HPCC 利用網(wǎng)絡遙測技術(shù)(INT)獲得精確的鏈路負載信息,并精確控制通信量.他們用可編程的網(wǎng)卡(NICs)模仿NP 來實現(xiàn)HPCC.這種方法能夠在避免擁塞的同時快速收斂,以利用空閑帶寬,并能在網(wǎng)絡隊列中保持接近零的超低延遲.這種定制板卡的擁塞控制方法部署環(huán)境受限于大規(guī)模數(shù)據(jù)中心.在網(wǎng)絡安全問題上,S.Miano 的文章[79]旨在利用SmartNICs 構(gòu)建一個更高效的處理管道,并為特定用例(即減輕分布式拒絕服務(DDoS)攻擊)的使用提供具體的方案.他們通過透明地卸載SmartNIC 與NP 中的DDoS 緩解規(guī)則的一部分,實現(xiàn)了XDP 靈活性在操作內(nèi)核中的流量采樣和聚合時的平衡組合,并具有基于硬件的過濾流量性能.由于依賴DDoS 配置規(guī)則,缺乏在線流量學習功能,在真實網(wǎng)絡環(huán)境中預計無法有效清洗DDoS 流量.
SmartNIC 不僅可以包含NP,還可以利用多項元器件加強網(wǎng)絡包的轉(zhuǎn)發(fā)或者處理性能.與此同時,學者將眼光轉(zhuǎn)向保證SmartNIC 與NP 功能推拉結(jié)構(gòu)的靈活性[80].在Caulfield 等人[81]的文章中,他們重點討論了基于FPGA 的智能網(wǎng)卡(sNICs)和可編程交換機實現(xiàn)這一愿景的潛力.NP 和SmartNIC 涵蓋了從完全基于CPU 的設計到完全定制的硬件的范圍.基于CPU 的可編程NIC 提供一個或多個通用處理器,算法可以在這些處理器上運行.這種設計可以映射到FPGA 上.這樣可以保證推拉架構(gòu)的可編程的能力,并且擁有完全定制硬件的效率和吞吐量特性.Microsoft 公司的Firestone 和Greenberg 等人[82]提供了Azure 加速網(wǎng)絡(AccelNet)解決方案,其使用基于FPGA 的自定義Azure 智能網(wǎng)卡將主機網(wǎng)絡卸載到硬件.利用NP 的性能和FPGA 的可編程性,為客戶提供小于15ms 的TCP 延遲和32Gb/s 吞吐量.這種方案在運行正常時缺乏日志記錄,在業(yè)務演進過程中必須重新匹配軟件定制方案,增加了運維成本.
下一代高性能業(yè)務是指隨著平臺軟硬件的迅速升級,在網(wǎng)絡監(jiān)測、網(wǎng)絡傳輸、服務質(zhì)量保證、VR(virtual reality,虛擬現(xiàn)實)以及高帶寬低時延終端應用、網(wǎng)絡安全以及物聯(lián)網(wǎng)等方面新興的復雜業(yè)務.這些業(yè)務一般需求更改時間快、性能要求高、針對性強,部署在當前的網(wǎng)絡處理器中難度很高.針對下一代高性能業(yè)務,業(yè)界希望能夠設計出符合要求的專用網(wǎng)絡處理器滿足相關需求.網(wǎng)絡監(jiān)測和網(wǎng)絡傳輸?shù)幕疽笫?網(wǎng)絡處理器具備精確網(wǎng)絡測量能力[83],測量過程的自適應性和精確性直接影響了監(jiān)測結(jié)果和傳輸效率.利用網(wǎng)絡處理器獲得的數(shù)據(jù)包元數(shù)據(jù)(metadata)能夠定制化地完成不同的服務質(zhì)量保障.在性能方面,具備多核的網(wǎng)絡處理器的核間調(diào)度、提高Cache 親和性以及分組向量化處理是當前研究的熱點.
網(wǎng)絡測量作為眾多網(wǎng)絡管理應用的基礎,其一直作為眾多學術(shù)研究者的重要研究領域.網(wǎng)絡處理器具有計算和存儲能力后,借助報文的往返所攜帶的各項遙測數(shù)據(jù)進行非全域視角下的網(wǎng)絡資源視圖繪制,可以成為網(wǎng)絡測量方向的發(fā)展重點.面向這一熱點,NGNP 的設計對精確的網(wǎng)絡測量進行了偏移.
高速捕獲和處理流量中的數(shù)據(jù)包,是NP 在精確網(wǎng)絡測量中的重要應用.Ficara、Lu 以及Li[84-86]都利用了已有的網(wǎng)絡處理器實現(xiàn)架構(gòu),如Intel IXP2400 網(wǎng)絡處理器PCI-X 卡實現(xiàn)網(wǎng)絡流量測量,并在在此基礎上實現(xiàn)了二維矩陣測量器和入侵監(jiān)測系統(tǒng)等.這幾種方法在思想上貼近下一代網(wǎng)絡處理器架構(gòu)設計,但是由于受限于已有架構(gòu),簡單地通過下發(fā)基本測量任務使得其性能較差.Yang 等人[87]提出了一種被動HTTP 流量性能測量的NP架構(gòu),將對象分為不同的源/目的IP 地址對,并使用對象間請求時間間隔來判斷這些對象是否屬于同一頁面,從流量中實時地測量HTTP 性能.該系統(tǒng)可以在高速網(wǎng)絡中工作,可以部署在ISP 上.Yuan 等人[88]提出了用FPGA作為專用NP 原型平臺的ProgME 的方法.ProgME 可以整合應用程序要求,調(diào)整自身緩存,以規(guī)避大量流帶來的可擴展性挑戰(zhàn),并實現(xiàn)更好的應用程序感知準確性.其核心是基于流集的查詢答案引擎協(xié)處理器,它可以由用戶和應用程序通過提議的流集組成語言進行編程.上述文章基本實現(xiàn)的是NP 中的協(xié)處理器,所以存在適用場景小、性能以及可靠性差的缺陷.
依靠NP 的存儲實現(xiàn)NP 的智能測量任務下發(fā)以及測度值反饋分析,能極大地提高測量精度.Xie 等人[89]提出了一種在NP 上實現(xiàn)的新的動態(tài)測量方法(dynamic measurement method,簡稱DMM),它通過記錄在NP 存儲里的運行時計劃操作和相應時間戳來導出測量路徑;通過判斷派生路徑能否通過任務調(diào)度IMC 模型接收;通過判斷實際值是否滿足初始狀態(tài)的標簽函數(shù)進行可靠性驗證.當然,多核處理器進行測量值的傳遞一定是具有一定開銷的,這種方法還是有優(yōu)化空間.Ferkouss 等人[90]提出了在100Gb/s 混合NP 上的Openflow 多表流水線的記錄及測量方案,該方案描述了幾種將這些流水線查找表鏈接起來并將它們映射到不同類型的NP 存儲器設計方案.SDN 網(wǎng)絡應用程序的要求可以在這種NP 上靈活地實現(xiàn),以便實現(xiàn)智能測量.但是,該方法沒有使用IXIA硬件流量生成器以線速進行詳盡的性能評估,這種NP 的性能暫時未知.
平衡測量和轉(zhuǎn)發(fā)的CPU 負載以及Cache、存儲的利用率是針對下一代高性能測量任務的NP 需要關注的重點.華盛頓大學的Liu 等人[91]研究如何使用NP 的加速服務器在數(shù)據(jù)中心執(zhí)行基于微服務的應用程序.文章提出了通過適當?shù)貙y量微服務卸載到SmartNIC 的低功耗處理器上而不會造成延遲損失的負載均衡方法,這種方法依然面臨網(wǎng)絡流量路由和負載平衡、異構(gòu)硬件上的微服務布局以及共享智能網(wǎng)卡資源的爭奪等嚴重挑戰(zhàn).在利用測量結(jié)果進行擁塞控制方面,Narayan 等人[92]提出將擁塞控制從數(shù)據(jù)路徑轉(zhuǎn)移到一個獨立的NP 代理中.這個必須同時提供一個表達性的擁塞控制API 和一個規(guī)范,供數(shù)據(jù)路徑設計者實現(xiàn)和部署.他們提出了一個用于擁塞控制的API、數(shù)據(jù)路徑原語和一個用戶空間代理設計,該設計使用批處理方法與數(shù)據(jù)路徑通信.但是這種方法的NP 設計復雜,無論部署在端節(jié)點還是重要的中間路由設備上都不適合,定位不清晰.
服務質(zhì)量保障在硬件上的實現(xiàn)一直是學術(shù)屆的研究熱點.在數(shù)據(jù)平面上獲取分組的元數(shù)據(jù)后,對數(shù)據(jù)傳輸鏈路以及流量進行簡單的閾值分析,對相關服務質(zhì)量進行保障在網(wǎng)絡處理器變得可行.
有效進行分組分類、保障特定業(yè)務的分組延遲和丟失,是 NGNP 在 QoS 保障上的重點研究方向.Avudaiammal 等人[93]在基于通用NP 架構(gòu)上實現(xiàn)并驗證了高速、低復雜度的基于啟發(fā)式的專用分組分類(high speed packet classifier,簡稱HASPC)機制可以執(zhí)行多維分組分類.通過多位的Trie 數(shù)據(jù)結(jié)構(gòu)用于對地址前綴對的搜索,從而有效地聚合了協(xié)議和端口字段的搜索結(jié)果,并將該方法應用到IXP 2400 上.但是他們沒有提出通用分組分類高效方法,只對多媒體分組進行QoS 保障.Park 和Lee 等人[94]提出了基于流的動態(tài)帶寬控制方法的網(wǎng)絡處理器體系結(jié)構(gòu).他們提出的FDBC(flow-based dynamic bandwidth control,基于流的動態(tài)帶寬控制)通過使用流分類、識別活動流并重新計算活動帶寬,通過流量工程的方法屏蔽網(wǎng)絡拓撲配置,以便在以太網(wǎng)上提供有效的QoS.該方法的缺點是:當傳入流量的總大小超過最大上游帶寬時,無論服務類型或流的屬性如何,HLS 都會丟棄流量.
面向IP 網(wǎng)的傳統(tǒng)服務,Li 等人[95]在IXP2400 架構(gòu)上改進了一種傳統(tǒng)的ACL 算法,將TCP 的ASK 和RST添加到1 級表分類索引中,減少了規(guī)則冗余.通過微碼實現(xiàn)的IP QoS 體系結(jié)構(gòu),利用CAR 處理器實現(xiàn)了帶寬限制功能,滿足數(shù)據(jù)線速轉(zhuǎn)發(fā),有效地保證多媒體服務的低延時需求.同樣地,Saleem 等人[96]利用DiffServ 架構(gòu)對IXP2400 編程,添加緩存單元,以便在查找操作期間減少對SRAM(static random access memory,靜態(tài)隨機存取存儲器)的訪問,使得總體速度提高并減少延遲.當然,兩種方法基于SDK3.1 開發(fā),沒有成體系結(jié)構(gòu)地更改核心NP的架構(gòu).Nguyen 等人[97]提出了一種針對NP 的多模式完全可重新配置路由器.設計NP 支持混合式分組交換體系結(jié)構(gòu),該體系結(jié)構(gòu)可以在運行時進行動態(tài)重新配置,以在蟲洞和虛擬直通交換方案之間進行交換.配備了QoS驅(qū)動的仲裁器保證了無需預留資源的吞吐量保證服務,基于優(yōu)先級繼承仲裁機制有效地利用了網(wǎng)絡資源,具有動態(tài)的期限可感知的重新路由機制.但是該方案成本較高,沒有進行負載均衡,等待CMOS 技術(shù)對其進行綜合評估.
在擁塞控制的流量管理架構(gòu)方面,Benacer 等人[98]提出了一種支持5G 傳輸?shù)牧髁抗芾砥骷軜?gòu).他們設計了基于FPGA 的NP 原型對傳入流量(數(shù)據(jù)包)進行管制、調(diào)度、整形和排隊的模型.流量管理以要滿足每個流所允許的帶寬配額并強制執(zhí)行所需的QoS 目標的方式,對要發(fā)送的數(shù)據(jù)包施加約束.方法實現(xiàn)在Xilinx 板卡上,注重可編程性,通過流量發(fā)生器進行測試,其真實效果未知.Iqbal 等人[99]重新設計了NP 中的數(shù)據(jù)包調(diào)度方案,以在最小化亂序數(shù)據(jù)包的同時,提高網(wǎng)絡處理器的吞吐量.其調(diào)度策略試圖通過保持流局部性來維護數(shù)據(jù)包順序,通過識別激進流來最大程度地減少流從一個核心到另一個核心的遷移,并在多個服務之間劃分核心,以獲得指令緩存局部性.此外,調(diào)度程序?qū)⒒诠5脑O計擴展到了多服務路由器,其中,內(nèi)核被動態(tài)分配給服務,以改善I-Cache 局部性.該方案通過減少亂序包來獲得吞吐的QoS 性能,過多的調(diào)度設計增加了數(shù)據(jù)平面和控制平面的耦合.
NP 中,QoS 調(diào)度器的性能直接影響新QoS 需求層出不窮背景下的NP 性能和部分靈活性.Yu 等人[100]在線卡中利用NP 提出了基于DVFS(dynamic voltage and frequency scaling,動態(tài)電壓頻率調(diào)整)的數(shù)據(jù)包QoS 調(diào)度器設計方法,該方法使用隊列長度(QL)和鏈接利用率來控制線卡中的執(zhí)行速率.通過不同的頻率縮放策略,保障了節(jié)省能源時的處理器性能下降,在一定意義上解決了功耗和QoS 調(diào)度器的性能均衡.該方法基于預測隊列長度,但在預測時只是根據(jù)階段時間內(nèi)的隊列長度均值,很難應對bufferbloat 情況,容易導致全方案失效.Paul 等人[101]使用機器(深度)學習技術(shù)為智能IP 路由器中的多核NP 開發(fā)了QoS 增強型智能調(diào)度程序,他們將NP 每個內(nèi)核都以利用率驅(qū)動的期限感知模式處理傳入流量,并且使用學習算法,在運行時以智能方式動態(tài)地最小化負載不平衡,保持內(nèi)核之間的穩(wěn)態(tài)負載分配.該方法最大程度地減少每個內(nèi)核的計算開銷,獲得更高的吞吐量、更低的平均等待時間值和PLR(packet loss rate,丟包率).但是機器學習本身就有極大的開銷,計算和存儲資源在學習方法加載過程中會造成轉(zhuǎn)發(fā)能力下降.由于NP 本身架構(gòu)受限,該方法與真正做到在線學習調(diào)度還有差距.
針對眾多的高性能業(yè)務,網(wǎng)絡處理器在設計架構(gòu)上需要進行改進,加速分組的處理能力以及針對特定應用進行包分類后的處理優(yōu)化.
提高Cache 親和性能夠提高NP 多核處理器的處理性能,許多多核處理器實時操作系統(tǒng)提供了通過設置相似性掩碼來提高任務遷移到處理器指定子集的可能性.Bonifaci 等人[102]提出了強任意處理器相似性調(diào)度的概念,利用層次(層流)親和力掩碼的系統(tǒng)硬件拓撲結(jié)構(gòu),在最早截至優(yōu)先(EDF)調(diào)度策略上實現(xiàn)對強大的分層處理器相似性的支持.該方法強調(diào)降低處理任務的時間復雜度,將性能提高到O(m2)左右.但是親和性實現(xiàn)原理復雜,可調(diào)度性損失過大.Jang 等人[103]提出了多核NP 的新穎網(wǎng)絡過程調(diào)度方案MiAMI,其根據(jù)處理器緩存布局、通信強度和處理器負載來確定最佳處理器親和力.該方法可以適應網(wǎng)絡和處理器的動態(tài)負載,同時以最少的處理器資源需求充分利用網(wǎng)絡帶寬.在Intel SMP Symmetrical Multi-Processing,對稱多處理和AMD NUMA(non uniform memory access architecture,非統(tǒng)一內(nèi)存訪問)服務器上,處理器利用率的有效性改善率分別達到65%和63%.但是,該方法的缺陷是沒有考慮存儲資源的I/O 性能,擴展到外圍設備的流程相對復雜.
在NP 處理多媒體流服務、實時或者是高性能計算應用服務時,需要處理器周期多、提高時鐘頻率和微體系結(jié)構(gòu)效率的困難.Ortiz 等人[104]提出并分析了幾種配置,以在NP 可用的不同處理器核之間分配網(wǎng)絡接口.該方法根據(jù)相應的通信任務與處理位置,優(yōu)化存儲不同數(shù)據(jù)結(jié)構(gòu)的存儲器的接近程度以及處理核特性之間的相關性.該方法使用多個內(nèi)核加速給定連接的通信路徑,利用多個內(nèi)核同時處理屬于相同或不同連接的數(shù)據(jù)包的補充.Hanforda 等人[105]基于追蹤高速TCP 流網(wǎng)絡設備瓶頸的方法,將協(xié)議處理效率定義為系統(tǒng)資源(例如CPU 和緩存)計算量.在多核NP 終端系統(tǒng)中,將網(wǎng)絡中斷,傳輸和應用程序處理接收過程分配、甚至綁定給相關親和的特定處理器內(nèi)核.但是這兩種方法同樣實現(xiàn)困難,算法復雜度過高.
NP 使用多個數(shù)據(jù)包處理元素提高數(shù)據(jù)包處理的并行性,是處理優(yōu)化的重要研究點.OK 等人[106]提出了一種用于具有多個分組PE 的NP 新序列保留分組調(diào)度器,使相同流的數(shù)據(jù)包由不同的PE 并行處理,調(diào)度程序通過利用預先估計的數(shù)據(jù)包來保留每個流的輸出數(shù)據(jù)包的序列處理時間.該方法的缺陷是沒有關注成本效益以及分組處理的準確性.Roy 等人[107]提出了16 核的類NP 多核加速計算體系架構(gòu),其中的每個核均配備有專用硬件,可在每次硬件加速器調(diào)用時快速切換任務.控制器偵聽到重點任務時,將任務搶占請求發(fā)送到內(nèi)核,減少了實時任務的延遲.該方法利用優(yōu)先級閾值化技術(shù),避免了低級的任務和行頭阻塞的延遲不確定性.遺憾的是,該方法芯片化過程較慢,僅僅用28nm 技術(shù)制作,但是正在研發(fā)最新版本,市場前景光明.
減少NP 內(nèi)的隊列長度,可以提高多數(shù)應用相應速度.Satheesh 等人[108]提出了一個新的動態(tài)重新配置NP 的波動流量排隊系統(tǒng),該方法使用Kolmogorov 微分方程分析了NP 中的動態(tài)可重配置排隊模型,并獲得了PE 數(shù)量、隊列長度、平均等待時間和重配置時間的上限.該方法能夠動態(tài)地調(diào)節(jié)被使用的處理器數(shù)量,當隊列增大到指定閾值時投入備用處理器,并在隊列減小時動態(tài)減小.Avudaiammal[93]的文章里也有這種設計思想,有效地聚合了協(xié)議和端口字段的搜索結(jié)果,以分配不同的處理器核.兩個方法也是基于原有NP 架構(gòu)IXP2400,很難大幅度提高性能.Steven 等人[109]提出了一種基于數(shù)據(jù)流微體系結(jié)構(gòu)的NP 設計方法,能夠解決資源虛擬化和數(shù)據(jù)包處理的并行性問題.當然,這項研究仍在進行中,如何將塊級數(shù)據(jù)流、連接性和運算符涵蓋進入這種NP 體系結(jié)構(gòu)是一個難點.表2 是文中提到的不同NGNP 設計方案優(yōu)勢及不足對比.
Table 2 Summary of designs of next generation network processor in existing study表2 現(xiàn)有下一代網(wǎng)絡處理器設計方案總結(jié)
Table 2 Summary of designs of next generation network processor in existing study (Continued 1)表2 現(xiàn)有下一代網(wǎng)絡處理器設計方案總結(jié)(續(xù)1)
Table 2 Summary of designs of next generation network processor in existing study (Continued 2)表2 現(xiàn)有下一代網(wǎng)絡處理器設計方案總結(jié)(續(xù)2)
國際上,作為最早的網(wǎng)絡處理器生產(chǎn)廠家之一,Motorola 于2000 年生產(chǎn)了面向中低端應用的網(wǎng)絡處理器C5,其只能執(zhí)行第7 層以下的分組分類作業(yè).雖然能力較弱,但作為一種獨立網(wǎng)絡轉(zhuǎn)發(fā)處理芯片,其出現(xiàn)代表著NP 開始了工業(yè)化之路.IBM 于2002 年生產(chǎn)了PowerNP NP4GS3,其擁有16 個協(xié)議處理器、7 個專業(yè)協(xié)處理器和一個PowerPC 核心處理器,具有2.5Gb/s 的報文處理能力.同樣作為一款廉價處理器,其占據(jù)了國際國內(nèi)大部分市場,但處理性能依舊不佳.2005 年,Intel 推出了IXP42X,其逐漸開始爭奪業(yè)界主流位置,這款產(chǎn)品的處理單元內(nèi)繼承了數(shù)十個以太網(wǎng)口,內(nèi)置了加速功能降低系統(tǒng)成本.這幾款產(chǎn)品出現(xiàn)的年代網(wǎng)絡業(yè)務簡單,智能終端尚未普及,所以其靈活性重視不夠,性能上差強人意.
隨著網(wǎng)絡技術(shù)創(chuàng)新浪潮出現(xiàn),傳統(tǒng)網(wǎng)絡處理器開始顧此失彼,逐漸被市場淘汰[110].2013 年,Cisco 推出了nPower X1,其具備高可擴展性,也是首款支持400Gb/s 吞吐率的單芯片,引領了利用新型可編程技術(shù)的網(wǎng)絡處理器產(chǎn)業(yè)化趨勢.創(chuàng)新性地,其為軟件定義網(wǎng)絡構(gòu)建,支持在運行中重新編程,大幅簡化了網(wǎng)絡運營.2015 年,Mellanox 公司發(fā)布了NP-5 網(wǎng)絡處理器,作為一款240Gb/s 線速網(wǎng)絡處理器,其峰值處理數(shù)據(jù)路徑和CoS 分類高達 480Gb/s.同年,ExpressPlus 推出了 Juniper 處理器,每秒可執(zhí)行超過 15 億次過濾操作,并可擴展到500Gb/s(1Tb/s 半雙工).作為一款面向新型網(wǎng)絡體系結(jié)構(gòu)的下一代網(wǎng)絡處理器,其利用3D 內(nèi)存的多級緩存架構(gòu),與以前的解決方案相比,物理占用空間減少了20 倍,優(yōu)化了功耗和空間要求.Nokia 在2017 年推出了世界首款可支持3.0Tbit/s 轉(zhuǎn)發(fā)的網(wǎng)絡處理器,利用網(wǎng)絡元數(shù)據(jù)作為安全解決方案的一部分,是針對新型高性能業(yè)務網(wǎng)絡處理的產(chǎn)品代表之一;同年,Cisco 設計了可支持400Gb/s 轉(zhuǎn)發(fā)的多核網(wǎng)絡處理器,它包含672 個處理器核心,擁有著大于6.5Tb/s 的核心I/O 帶寬,外部DRAM(dynamic random access memory,動態(tài)隨機存取存儲器)用于大型數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)包緩沖.2020 年初,收購了Freescale 的NXP 公司推出了S32G,該設備是第一款將具有ASILD 安全性和網(wǎng)絡加速功能(micro control unit,簡稱MCU)集成車載網(wǎng)絡處理器,并且具有分組轉(zhuǎn)發(fā)引擎用于以太網(wǎng)加速功能.當然,這幾款產(chǎn)品設計與生產(chǎn)成本較高,市場化進程緩慢,大多在自家高端路由器或者交換機產(chǎn)品中應用.
中國的網(wǎng)絡通信設備制造商在2016 年以前以采購國外網(wǎng)絡處理器芯片為主,以便獲得硬件發(fā)展紅利,將創(chuàng)新與產(chǎn)能焦點集中在網(wǎng)絡業(yè)務出新和5G 通信網(wǎng)絡研究與建設上.然而隨著中美貿(mào)易爭端開始,2018 年4 月16日,美國商務部法部發(fā)布公告,聲稱未來7 年內(nèi)禁止中興向美國企業(yè)購買包含網(wǎng)絡處理器芯片在內(nèi)的“敏感”設備,該事件直至同年7 月12 日才以中興向美國支付近10 億美元告一段落.然而一年后,2019 年5 月15 日,美國商務部將華為和其下屬子公司列入出口管制名單,華為產(chǎn)業(yè)下的多款中高端路由器產(chǎn)品網(wǎng)絡處理器芯片斷供.中國業(yè)界及學術(shù)界逐漸認識到網(wǎng)絡處理器芯片作為一種重要網(wǎng)絡設備元器件,其設計與生產(chǎn)應當至少具備自主可控能力,在特殊時期保證網(wǎng)絡處理器芯片的供應.
2019 年,華為和中興都開始進行自主可控的下一代網(wǎng)絡處理器研發(fā)工作,設計方案的基本要求是,使得網(wǎng)絡處理器具備高性能、低時延、可編程甚至是全流可視化.華為于2019 年初推出了Solar S 下一代網(wǎng)絡處理器設計,其可以靈活地利用高級編程語言下發(fā)業(yè)務,保障低時延的同時,利用特有的存儲結(jié)構(gòu),將流量的特征信息在時間域內(nèi)存儲,以便實時網(wǎng)絡管理和精確測量,并且大多數(shù)開始應用于華為的高端路由器產(chǎn)品.同年,中興發(fā)布了一款擁有先進內(nèi)核互聯(lián)結(jié)構(gòu)、大容量微碼指令空間、層次化的流量管理的100Gb/s 網(wǎng)絡處理器.在此基礎上,設計了這款處理器的迭代更新版本原型系統(tǒng),升級內(nèi)部體系架構(gòu),利用多核的性能提升轉(zhuǎn)發(fā)速度.這兩款國產(chǎn)化網(wǎng)絡處理器與國際市場主流處理器相比在性能上相差無異,但是在芯片工藝、產(chǎn)品能耗上還有差距,亟待彌補.
一般地,對網(wǎng)絡處理器分為4 個層次,即硬件指令層、模塊任務層、應用功能層和系統(tǒng)平臺層來進行性能評估.通過在每一個層次上逐步分析,可將多級并行的系統(tǒng)性能評估問題轉(zhuǎn)化為簡單的串行程序性能分析,或者是簡單的并行程序性能分析[111].在這種評估模型的基礎上,利用網(wǎng)絡測試設備搭建相關拓撲,連接測評儀器、控制器以及NP 芯片(原型系統(tǒng))開始測評被測設計性能.對于芯片數(shù)據(jù)包的處理能力的評測,一般采用M/M/1 排隊模型進行評估,利用流量生成器完成流量生成.接口驅(qū)動模塊負責將數(shù)據(jù)流發(fā)送給被測NP.NP 將處理后的數(shù)據(jù)發(fā)送給平臺的接口響應模塊.最后,接口響應模塊將數(shù)據(jù)發(fā)送給相應評測模塊,模塊內(nèi)置了相關算法對正確性和性能進行統(tǒng)計評測.
現(xiàn)有的網(wǎng)絡測試設備廠商一般有思博倫、安捷倫、IXIa 等.一般地,NP 芯片的性能測試組網(wǎng)方式如圖3 所示.圖3 中,PC 機通過串行COM 接口對網(wǎng)絡處理器進行配置和管理.其硬件編譯環(huán)境通過JTAG(joint test action group,聯(lián)合測試工作組)接口與網(wǎng)絡處理器相連進行調(diào)試診斷.測試儀產(chǎn)生、發(fā)出以及接收流量也由PC 機進行控制,測試儀與網(wǎng)絡處理器原型之間通過萬兆Ethernet 接口進行流量傳輸、測試.針對上述產(chǎn)品,本文搭建了相關測試平臺,購買并測試了C5,NP4GS3 和IXP42X 這3 款NP 的吞吐率以及處理時延.吞吐率為測試儀線速發(fā)送測試報文得到的速率統(tǒng)計信息,時延為利用測試儀時間統(tǒng)計功能得到的報文從發(fā)送到返回所消耗時間的一半.對于剛剛上市、價格昂貴無法購買的下一代網(wǎng)絡處理器,本文通過查詢企業(yè)產(chǎn)品手冊、相關文獻等對結(jié)果進行了統(tǒng)計.測試與統(tǒng)計結(jié)果展示于表3.
Fig.3 NP testbed圖3 NP 性能測試床
Table 3 Performance of some network processor products表3 部分網(wǎng)絡處理器產(chǎn)品性能
表3 部分網(wǎng)絡處理器產(chǎn)品性能(續(xù))Table 3 Performance of some network processor products (Continued)
盡管目前的網(wǎng)絡處理器都考慮了可編程性和處理轉(zhuǎn)發(fā)速度,但是沒有在頂層設計上兼顧靈活和性能[112].網(wǎng)絡處理器可編程性多是借助開發(fā)平臺或者是使用語言的先天屬性,在此基礎上調(diào)整相關數(shù)據(jù)平面控制平面的處理架構(gòu)、元器件編排方式以及業(yè)務處理流水等,導致靈活和性能總是無法收斂到最優(yōu)程度[113].
為了解決上述問題,下一代網(wǎng)絡處理器應當朝著高性能、可演進的融合架構(gòu)方向發(fā)展.針對處理優(yōu)化和應用加速等高性能要求,融合架構(gòu)的研究應當包括多級分組緩存管理框架、CPU 分組調(diào)度方法、可動態(tài)重構(gòu)的應用加速等方面.一方面優(yōu)化改進網(wǎng)絡處理器基礎設計架構(gòu);另一方面,則面向業(yè)務應用的加速進行實現(xiàn)[114],并為上層提供相應的基礎開發(fā)接口.在這種架構(gòu)下,網(wǎng)絡處理器的接口線速和轉(zhuǎn)發(fā)能力都被良好地設計和實現(xiàn).融合架構(gòu)的可編程性、可演進性主要體現(xiàn)在硬件資源管理和可擴展API 編程接口的研究.基于上述優(yōu)化加速的平臺架構(gòu),下一代網(wǎng)絡處理器應當為用戶提供高效、良定義、可擴展的API 接口和開發(fā)模型,支撐上層業(yè)務應用的開發(fā).提供平臺無關的API 接口、支持高級語言編程不僅方便了業(yè)務應用開發(fā)周期,也使得所設計的網(wǎng)絡處理器的場景適應能力增強.在當前網(wǎng)絡技術(shù)和人工智能結(jié)合的發(fā)展熱點下,融合架構(gòu)能夠擁有足夠的資源將部分學習方法卸載進入網(wǎng)絡處理器,細粒度、高效率地實現(xiàn)包轉(zhuǎn)發(fā)處理.
現(xiàn)有的網(wǎng)絡處理器通常基于多CPU 核加硬件協(xié)處理器陣列架構(gòu)實現(xiàn),加解密、查表等協(xié)處理器以ASIC 電路形式實現(xiàn),可以有效提升網(wǎng)絡處理器進行分組轉(zhuǎn)發(fā)處理的性能.然而隨著硬件協(xié)處理器開發(fā)周期長[115],且功能固定,難以滿足網(wǎng)絡處理可演化性需求以及面向多業(yè)務場景的應用需求.綜上,本文提出了基于通用多核CPU加FPGA 的高性能可演進下一代網(wǎng)絡處理器(high performance evolvable network processor,簡稱HPENP)架構(gòu).HPENP 設計的軟硬件協(xié)同可擴展分組處理架構(gòu)一方面利用通用多核CPU 的可編程靈活性和并發(fā)處理能力,支撐網(wǎng)絡分組深度處理[116];另一方面,利用FPGA 具有的硬件可重構(gòu)特性,支持數(shù)據(jù)平面處理及加速模塊的按需部署[117].HPENP 具有轉(zhuǎn)發(fā)模塊與硬件加速模塊的混合編排架構(gòu),可在此基礎上實現(xiàn)基于模塊ID 映射表的流水線功能動態(tài)擴展方法,有效支持軟硬件功能的動態(tài)加載,提升網(wǎng)絡處理器面向多場景的應用能力和未來新型業(yè)務協(xié)議的演化能力.
高性能可演進的下一代網(wǎng)絡處理器體系結(jié)構(gòu)基于通用多核處理器及可重構(gòu)FPGA 硬件構(gòu)建,其中的設計重點是實現(xiàn)軟硬件協(xié)同的分組處理流水線.HPENP 支持CPU+FPGA 平臺軟硬件高效數(shù)據(jù)通信,并且利用轉(zhuǎn)發(fā)模塊與硬件加速模塊的混合編排方法.設計采用可編程硬件流水線、硬件流水線擴展、軟件模塊擴展以及軟硬件協(xié)同擴展這4 種方式提升網(wǎng)絡處理器可編程及可演進能力,滿足網(wǎng)絡設備功能擴展的性能和靈活性要求.
如圖4 所示,軟硬件流水線均包含多個在CPU 上可按需動態(tài)加載的擴展模塊,實現(xiàn)對不同處理功能的擴展.動態(tài)擴展模塊一方面可以實現(xiàn)通用路由交換處理的“慢速路徑”功能(如分片重組),也可擴展實現(xiàn)一些新的如按需部署的安全防護網(wǎng)絡功能.可定制處理模塊還可將目的IP 地址是本地的分組發(fā)送到控制平面處理.動態(tài)擴展模塊和控制平面軟件通過網(wǎng)絡接口發(fā)送分組時,該分組首先會送給FPGA 中由可定制處理模塊組成的硬件流水線處理.軟件發(fā)出的分組可以對硬件流水線進行重入,進一步增加了下一代網(wǎng)絡處理器處理的靈活性.由國產(chǎn)CPU 內(nèi)搭載的協(xié)議棧、驅(qū)動以及內(nèi)核等通過良定義接口實現(xiàn)用戶空間的交互,完成擴展性能.
Fig.4 HPENP’s architecture圖4 HPENP 體系架構(gòu)
HPENP 架構(gòu)實現(xiàn)Cache、內(nèi)存和外存相結(jié)合的多層次分組緩存管理,以打破“存儲墻”問題對網(wǎng)絡處理器系統(tǒng)性能瓶頸的影響.網(wǎng)絡流量到緩存的調(diào)度與映射優(yōu)化算法、多層次分組緩存動態(tài)管理與調(diào)度機制融入到了本架構(gòu)設計中.借鑒計算機體系架構(gòu)的多級緩存設計模型[118],基于CPU Cache、內(nèi)存、FPGA 內(nèi)部RAM 和DDR外存設計多層次存儲框架實現(xiàn)多級緩存的分組統(tǒng)一管理與調(diào)度.針對突發(fā)數(shù)據(jù)流的可導致?lián)砣麪顩r,HPENP 具備動態(tài)緩存分配方案,引用大容量DRAM 作為備用隊列緩存存儲溢出流量.
HPENP 支持基于多核分組路徑感知的分組調(diào)度技術(shù),如圖5 所示.
Fig.5 HPENP’s packet scheduling model圖5 HPENP 分組調(diào)度模型
分組調(diào)度感知器按分組特征預先分類進入CPU 的分組,生成無處理分支的報文向量,以減少CPU TLB(translation lookaside buffer,轉(zhuǎn)譯后備緩沖器)和cache 失效.輸入隊列經(jīng)過解析器、匹配器以及分配器進行分組的路徑處理,以生成輸出隊列.各個硬件處理單元通過多項用戶定義處理功能,降低分組IO 過程中的性能損失,提升并行化處理性能.
HPENP 將CPU 核、FPGA 邏輯資源、內(nèi)外部存儲資源進行統(tǒng)一抽象,并支持按需配置和動態(tài)分配,完成分組業(yè)務應用到系統(tǒng)各類資源的重構(gòu)、映射與調(diào)度.HPENP 資源管理與編程接口主要研究層次化的資源管理和可擴展API 編程接口,基于優(yōu)化的網(wǎng)絡處理器平臺架構(gòu),為用戶提供可擴展API 接口和開發(fā)模型,支撐上層業(yè)務應用的開發(fā).分層處理結(jié)構(gòu)分為內(nèi)核態(tài)與用戶態(tài)兩個部分,每一部分都是一個完整的開發(fā)環(huán)境,分別包含內(nèi)核態(tài)開發(fā)環(huán)境庫和用戶定義開發(fā)環(huán)境庫.在每一個開發(fā)環(huán)境中都分為3 層:底層通信模塊、中間適配模塊和上層應用模塊.由于提供多層次封裝編程接口,高層接口可以最大限度屏蔽底層硬件資源的感知[119],完善底層接口支持對系統(tǒng)的深度調(diào)優(yōu).
一般地,NP 進程包括ACL(advanced C library,跨平臺C 語言庫)線程、路由線程、編排調(diào)度、數(shù)據(jù)響應/請求、協(xié)議棧響應/請求以及控制響應/請求線程.HPENP 進程中,線程間通信使用自定義msg 消息,由編排調(diào)度負責具體搬運.每個NP 平臺服務線程都有兩個隊列,分別是rxq 輸入隊列和txq 輸出隊列.所有線程的服務擁有唯一標識號用以認證該線程的身份.具體如圖6 所示.
Fig.6 NP process implementation architecture圖6 NP 進程實現(xiàn)架構(gòu)
基于HPENP 架構(gòu),在線智能測量業(yè)務能夠完備地滿足當前智能網(wǎng)絡管理、網(wǎng)絡監(jiān)控以及網(wǎng)絡安全等多方面業(yè)務的基礎處理需求[120].用戶可以在路由器上利用自定義功能(測量、審計、加解密等),使用HPENP 中擴展的API,直接在NP 上開發(fā)相關的加速邏輯,實現(xiàn)基于測量的在線統(tǒng)計分析和機器學習功能.
在線智能測量作為各項網(wǎng)絡業(yè)務的基礎,需要滿足自適應粒度的調(diào)控.在搭載下一代網(wǎng)絡處理器的路由器上加載自適應測量調(diào)度控制器,其根據(jù)所在網(wǎng)絡環(huán)境中網(wǎng)絡狀態(tài)和測量任務自適應的調(diào)整測量粒度,結(jié)合主動與被動測量,對鏈路時延、網(wǎng)絡帶寬、丟包率、網(wǎng)絡拓撲等進行探測以及結(jié)構(gòu)化的描述.HPENP 可以加速面向多測量任務的動態(tài)調(diào)控,將測量的數(shù)據(jù)層和控制層功能進行分離.控制器通過了解各個節(jié)點的當前流量狀況,全局編程調(diào)配網(wǎng)絡測量體系結(jié)構(gòu),以進行測量任務的優(yōu)化調(diào)度.通過擴展的API 實現(xiàn)被動輪詢和主動探測的結(jié)合,審計動態(tài)網(wǎng)絡的視圖狀態(tài).通過各項軟硬件資源,建立網(wǎng)絡環(huán)境中地址資源、流量資源表示模型,建立網(wǎng)絡拓撲表示流量矩陣的多維動態(tài)資源視圖,完成流量統(tǒng)計分析.通過統(tǒng)計分析提取網(wǎng)絡狀態(tài)特征,利用機器學習功能彈性智能的判斷網(wǎng)絡狀態(tài),完成尋路應用等場景.
針對上述HPENP 的架構(gòu)設計,本文將FPGA 和CPU 等按照設計在PCB 板上編排,采用國產(chǎn)麒麟操作系統(tǒng),利用標準的19 英寸的機箱構(gòu)構(gòu)建了HPENP 的初步原型系統(tǒng).原型系統(tǒng)如圖7 所示.
Fig.7 HPENP prototype system圖7 HPENP 原型系統(tǒng)
圖7 中,FPGA 模塊主要用于流量輸入解析處理和流量輸出整形調(diào)度,可擴展流水線與存儲模塊相關聯(lián).CPU 為4 核處理器,處理器陣列利用分組感知調(diào)度模塊提高整體核間親和性,盡量減少處理分支,保證整體性能.
為了測試上述原型系統(tǒng)性能,本文利用IXIa perfectstorm one 測試儀,按照如圖8 所示的拓撲方式搭建了實驗環(huán)境,對HPENP 原型系統(tǒng)相關性能進行測試.實體測試環(huán)境如下.
原型系統(tǒng)測試主要是網(wǎng)絡交換基礎能力測試,其包括接口指標、轉(zhuǎn)發(fā)性能指標等等.針對原型系統(tǒng)的千兆和萬兆的接口測試,本文使用了網(wǎng)絡測試儀對千兆一套網(wǎng)口進行性能測試,設置使用千兆速率發(fā)送隨機長度報文1 億個,設備開啟網(wǎng)口回環(huán)功能后,網(wǎng)絡測試儀的收發(fā)報文數(shù)量一致.針對原型系統(tǒng)的共計10 個千兆網(wǎng)口用于測試交換能力,通過主機管理系統(tǒng),將千兆接口的轉(zhuǎn)發(fā)設置為相鄰端口轉(zhuǎn)發(fā).為了驗證每秒最大bit 傳輸率,在網(wǎng)絡測試儀中,將與設備相連的2 路萬兆和2 路千兆配置了每個網(wǎng)口的測試報文長度為1 518 字節(jié),設置報文數(shù)量為1 億個.通過長時間測試統(tǒng)計,確定其交換穩(wěn)定不丟包,從而可得所有網(wǎng)口都是線速轉(zhuǎn)發(fā).針對分組轉(zhuǎn)發(fā)率指標,測試在網(wǎng)絡測試儀中將與設備相連的2 路萬兆和2 路千兆配置每個網(wǎng)口發(fā)送報文長度為64 字節(jié)的1 億個報文.啟動網(wǎng)絡測試儀后,線速發(fā)送測試報文,觀察并統(tǒng)計測試儀各網(wǎng)口的速率統(tǒng)計信息,匯總統(tǒng)計結(jié)果,并計算轉(zhuǎn)發(fā)能力,得到原型系統(tǒng)擁有30Mpacket/s 的分組轉(zhuǎn)發(fā)率.針對流水線時延,利用網(wǎng)絡測試儀的報文時間統(tǒng)計功能,用測試儀的一個網(wǎng)口發(fā)送報文,中間經(jīng)過測試設備轉(zhuǎn)發(fā),然后在另一個網(wǎng)口回環(huán),得到了一個報文從發(fā)送到返回經(jīng)歷路徑的延遲,從而設備端到端的延遲為28μs.具體結(jié)果見表4.
Fig.8 HPENP prototype system performance test environment圖8 HPENP 原型系統(tǒng)性能測試環(huán)境
Table 4 Basic performance test results of prototype system表4 原型系統(tǒng)基礎性能測試結(jié)果
為了驗證原型系統(tǒng)的可編程性,本文利用原型系統(tǒng)的用戶態(tài)編程,通過定義軟件模塊的流表,對不可信的外部網(wǎng)絡進行了規(guī)則約束,搭建了簡易的網(wǎng)絡安全防火墻,并建立了測試拓撲對相關功能進行驗證.測試實驗拓撲如圖9 所示.
在HPENP 原型系統(tǒng)上,本文設置了一條包過濾的防火墻安全策略,并在內(nèi)部主機C 上啟動抓包工具,配置抓取本機接收的所有報文.原型系統(tǒng)啟動后,初始狀態(tài)下,其包過濾防火墻功能默認不允許報文通過,此時,外部主機D構(gòu)造的報文無法發(fā)送到內(nèi)部主機C,抓包工具無法抓取到外部主機D發(fā)送的報文;通過用戶態(tài)控制器,向原型系統(tǒng)下發(fā)一條源MAC 地址為主機D、目的MAC 為主機C、源IP 為主機D、目的IP 為主機C、協(xié)議為UDP、動作為“允許”的五元組包過濾防火墻規(guī)則.繼續(xù)發(fā)包后發(fā)現(xiàn),外部主機D構(gòu)造的報文成功發(fā)送到內(nèi)部主機C,抓包工具也成功抓取到外部主機D發(fā)送的UDP 報文.說明原型系統(tǒng)被成功部署防火墻,能夠按需進行相關業(yè)務的邏輯編程.
Fig.9 HPENP programmable function test圖9 HPENP 可編程性功能測試
上述結(jié)果表明:HPENP 的設計理念合理,具備高性能、可演進的優(yōu)勢,能夠較好地兼顧靈活性和處理轉(zhuǎn)發(fā)性能.相信經(jīng)過進一步的研究和學習,能夠完善原型系統(tǒng)的各項功能,升級相關架構(gòu),為下一步的處理器芯片化做好充足的準備.
網(wǎng)絡處理器的設計與研究,一直是通信、網(wǎng)絡傳輸領域的重點問題.硬件協(xié)處理器開發(fā)周期長、功能調(diào)整不靈活的特點,導致多樣分組處理可演進化需求在網(wǎng)絡處理器中無法滿足.所以,下一代網(wǎng)絡處理器體系架構(gòu)一直受到研究人員的廣泛關注.針對這一背景,本文首先梳理了網(wǎng)絡處理器的基本架構(gòu)及其在當前網(wǎng)絡環(huán)境下的發(fā)展挑戰(zhàn),其次介紹了利用新型可編程技術(shù)、面向新型網(wǎng)絡體系結(jié)構(gòu)、針對新型高性能業(yè)務這3 個層面的業(yè)界學術(shù)界主流NGNP 設計模式,并對不同的架構(gòu)方案進行了分析和比較,指出它們的優(yōu)點及不足,結(jié)合網(wǎng)絡處理器的工業(yè)化進程,得到了相應的結(jié)論.
我們認為,下一代網(wǎng)絡處理器研究及設計方案應當遵從以下幾點意見.
(1) 體系架構(gòu)高性能可演進.當前網(wǎng)絡由超高帶寬反哺出對網(wǎng)絡處理器的多樣化分組處理需求.網(wǎng)絡處理器體系架構(gòu)設計首先考慮高性能的處理分組,進行包解析、包分類以及元數(shù)據(jù)提取存儲等操作的同時完成高速轉(zhuǎn)發(fā),實現(xiàn)通信轉(zhuǎn)發(fā).同時,架構(gòu)應當包含可動態(tài)重構(gòu)硬件完成業(yè)務靈活配置,利用軟硬件協(xié)同擴展的編程方式實現(xiàn)網(wǎng)絡處理器的可演進性.
(2) 分組處理可加速可優(yōu)化.體系架構(gòu)給予支撐,技術(shù)細節(jié)完善性能.下一代網(wǎng)絡處理器設計應當在核間調(diào)度、多級緩存、并行處理等關鍵技術(shù)上有所突破,規(guī)避處理器核內(nèi)大量路徑分支處理開銷和核間負載不均衡帶來的性能損失問題.在突發(fā)流量到來時能夠?qū)Я饕绯隽髁?減少擁塞時間,高效轉(zhuǎn)換地址映射,及時轉(zhuǎn)發(fā)處理分組.
(3) 硬件資源按需配置.抽象硬件資源,精準動態(tài)分配.CPU 核、FPGA 或者其他可重構(gòu)邏輯資源、緩存資源應當進行統(tǒng)一管理,抽象成表按需、動態(tài)配置相關業(yè)務.利用業(yè)務應用到系統(tǒng)各類資源的重構(gòu)、映射與調(diào)度算法,提高下一代網(wǎng)絡處理器處理性能,擴展應用場景.
(4) 編程接口底層無關.開發(fā)環(huán)境決定使用效率.下一代網(wǎng)絡處理器借助關系明了的開發(fā)編程接口、清晰劃分的功能模塊和流程規(guī)范的數(shù)據(jù)處理,完成可視、透明以及簡單的業(yè)務邏輯開發(fā)與調(diào)試.軟硬件通信的底層模塊提供相應的API 接口,幫助內(nèi)核態(tài)分組轉(zhuǎn)發(fā)設備驅(qū)動進行應用適配.向下使用底層API實現(xiàn)控制,向上豐富通信開發(fā)接口對應應用需求.
(5) 搭載應用智能高效.高效精準的各項網(wǎng)絡應用需要分組處理與轉(zhuǎn)發(fā)的智能化.利用下一代網(wǎng)絡處理器的硬件資源,全局編程調(diào)配各項業(yè)務.通過存儲的動態(tài)多維資源視圖,完成搭載應用的學習功能,實現(xiàn)自適應高性能的流量轉(zhuǎn)發(fā)、視域測量、網(wǎng)絡安全、QoS 保障等業(yè)務.
針對這些特點,我們提出了高性能可演進的下一代網(wǎng)絡處理器體系結(jié)構(gòu)HPENP,介紹了軟硬件協(xié)同分組處理流水線、多級緩存與分組調(diào)度、資源管理及編程接口的相關設計方案,提出了基于下一代NP 的在線智能測量及應用,并搭建測試了HPENP 原型系統(tǒng).目前,國內(nèi)外有關網(wǎng)絡處理器的研究與設計處于快速發(fā)展階段,雖然早期已有許多設計被產(chǎn)業(yè)化并大量應用,但當前也存在一些初步涉及的重要研究點.本文希望通過大量研究工作的討論比較以及新型體系架構(gòu)的設計,為下一代網(wǎng)絡處理器的未來工作提供參考與建議.
致謝本文的匿名評閱者對文章內(nèi)容,特別是對下一代網(wǎng)絡處理器中高性能可演進方面的完善提出了許多建設性的意見和建議,在此表示感謝.