国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

下一代網(wǎng)絡(luò)處理器及應(yīng)用綜述*

2021-03-06 09:29:00趙玉宇劉旭輝
軟件學(xué)報(bào) 2021年2期
關(guān)鍵詞:處理器分組架構(gòu)

趙玉宇 ,程 光 ,劉旭輝 ,袁 帥 ,唐 路

1(東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 211189)

2(教育部計(jì)算機(jī)網(wǎng)絡(luò)和信息集成重點(diǎn)實(shí)驗(yàn)室(東南大學(xué)),江蘇 南京 211189)

3(湖南華芯通網(wǎng)絡(luò)科技有限公司,湖南 長(zhǎng)沙 410000)

自21 世紀(jì)以來(lái),人類已經(jīng)不再滿足于只運(yùn)用互聯(lián)網(wǎng)進(jìn)行簡(jiǎn)單的信息交互.隨著終端設(shè)備的智能化,互聯(lián)網(wǎng)承載的任務(wù)變得復(fù)雜多樣.這種發(fā)展一方面提高了人類社會(huì)生產(chǎn)生活的效率,為人們帶來(lái)了很大的便利以及好處,但另一方面,也加重了互聯(lián)網(wǎng)中以路由器、交換機(jī)為主的各項(xiàng)基礎(chǔ)設(shè)施的壓力.尤其是在約束了特定服務(wù)質(zhì)量(quality of service,簡(jiǎn)稱QoS)的情況下,網(wǎng)絡(luò)設(shè)備處理速度隨著CPU 利用率的增高而下降,使得網(wǎng)絡(luò)傳輸效率降低,用戶體驗(yàn)較差.當(dāng)代互聯(lián)網(wǎng)的發(fā)展,要求網(wǎng)絡(luò)設(shè)備擁有強(qiáng)大的計(jì)算和存儲(chǔ)能力,以便滿足復(fù)雜網(wǎng)絡(luò)環(huán)境以及特定任務(wù).隨著互聯(lián)網(wǎng)用戶需求的不斷革新,人們對(duì)網(wǎng)絡(luò)設(shè)備的可編程能力也提出了更高的要求.

網(wǎng)絡(luò)處理器(network processor,簡(jiǎn)稱NP)就是為網(wǎng)絡(luò)設(shè)備提供計(jì)算能力的核心器件.它是一種能夠完成路由查找、協(xié)議分類、報(bào)文處理以及防火墻和QoS 等各種任務(wù)的通信網(wǎng)絡(luò)芯片[1].當(dāng)前的部分網(wǎng)絡(luò)處理器具備了一定的可編程性,能夠靈活地應(yīng)對(duì)管理人員希望使能的功能需求.在計(jì)算能力方面,擁有多個(gè)微碼處理器和硬件協(xié)處理器的NP 能夠?qū)?nèi)存操作、路由表查找算法、擁塞控制以及主動(dòng)隊(duì)列管理進(jìn)行一些標(biāo)準(zhǔn)操作.在下一代網(wǎng)絡(luò)體系結(jié)構(gòu)的提出與應(yīng)用以及終端計(jì)算能力變強(qiáng)等硬件設(shè)備革新的技術(shù)潮流下,現(xiàn)有NP 由于設(shè)計(jì)缺陷和人為疏漏,未能很好地兼顧靈活性和高性能,使得網(wǎng)絡(luò)設(shè)備的能力始終滯后,無(wú)法滿足未來(lái)網(wǎng)絡(luò)通信設(shè)備應(yīng)用場(chǎng)景的迫切需求.所以,網(wǎng)絡(luò)處理器的研究設(shè)計(jì)始終是網(wǎng)絡(luò)與通信方面的熱點(diǎn)問題,其研究層次逐漸提高.由于中興通訊股份有限公司(下文簡(jiǎn)稱為中興)、華為技術(shù)有限公司(下文簡(jiǎn)稱為華為)等中國(guó)先進(jìn)通信設(shè)備制造商接連遭受美國(guó)制裁或者禁運(yùn),無(wú)法獲得NP 芯片技術(shù),網(wǎng)絡(luò)處理器的國(guó)產(chǎn)化也成為國(guó)內(nèi)業(yè)界學(xué)術(shù)界面臨的緊急任務(wù).

為了能夠自適應(yīng)地滿足高性能和靈活應(yīng)用場(chǎng)景的各項(xiàng)要求,使NP 擁有多樣化分組處理以及超高帶寬的體系結(jié)構(gòu)[2],下一代網(wǎng)絡(luò)處理器(next generation network processor,簡(jiǎn)稱NGNP)成為NP 研究與設(shè)計(jì)的熱點(diǎn).NGNP的設(shè)計(jì)核心思想是:在靈活性上擁有良好的可編程性,盡可能地滿足高級(jí)語(yǔ)言編程;針對(duì)不斷涌現(xiàn)的新業(yè)務(wù),能夠減少部署時(shí)間,提高效率;在性能上,能夠利用加速引擎或者體系結(jié)構(gòu)優(yōu)勢(shì)優(yōu)化處理流程、處理時(shí)間;同時(shí),在能耗、芯片尺寸上盡可能地輕量化,降低成本的同時(shí),提高網(wǎng)絡(luò)設(shè)備的綜合能力(見表1).

Table 1 Comparison between next generation network processor and traditional network processor表1 下一代網(wǎng)絡(luò)處理器與傳統(tǒng)網(wǎng)絡(luò)處理器對(duì)比

下一代網(wǎng)絡(luò)處理器是一種借鑒新型可編程技術(shù)、面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)或新型應(yīng)用的設(shè)計(jì)理念和目標(biāo),并不是指某一種具體的芯片設(shè)計(jì).當(dāng)前,在NGNP 設(shè)計(jì)目的指引下,國(guó)際國(guó)內(nèi)的很多研究者進(jìn)行了大量的研究工作.下一代網(wǎng)絡(luò)處理器的各項(xiàng)內(nèi)在設(shè)計(jì)關(guān)鍵技術(shù)也隨著新型網(wǎng)絡(luò)體系結(jié)構(gòu)、可編程技術(shù)以及在網(wǎng)絡(luò)環(huán)境復(fù)雜多變的高性能業(yè)務(wù)引導(dǎo)下進(jìn)行革新和發(fā)展.學(xué)術(shù)界主要是提供NGNP 的體系結(jié)構(gòu)以及關(guān)鍵技術(shù)研究,產(chǎn)生了很多新的NP 體系結(jié)構(gòu),也在協(xié)處理器設(shè)計(jì)上進(jìn)行了突破,使其能夠滿足某一特定新型業(yè)務(wù)如優(yōu)化數(shù)據(jù)轉(zhuǎn)發(fā)、新型擁塞控制方法等.工業(yè)界則根據(jù)原有NP 迭代更新產(chǎn)品,定向提高了芯片內(nèi)CPU 計(jì)算能力,或者加大帶寬以滿足當(dāng)前應(yīng)用需求.自2010 年以來(lái),有部分學(xué)者進(jìn)行了NGNP 技術(shù)的相關(guān)分析和研究,但審視現(xiàn)在已經(jīng)公開發(fā)表的包括科技論文和專利等資料,其中大部分只是介紹和闡述NP 的特定新應(yīng)用、新架構(gòu).國(guó)內(nèi)外對(duì)下一代網(wǎng)絡(luò)體系結(jié)構(gòu)技術(shù)的分析和研究不夠全面和深入,并且基本沒有對(duì)NGNP 的綜述性的學(xué)術(shù)著作出現(xiàn).2010 年,Albrecht 和Carsten 等人[3]發(fā)表專著,介紹了一種利用動(dòng)態(tài)可重構(gòu)的協(xié)處理DynaCORE,以增加NP 相關(guān)負(fù)載功能,但是該書沒有宏觀地提煉NGNP 的相關(guān)體系結(jié)構(gòu).2016 年,Gadre、Geetanjaliy 以及Matthews 等人[4,5]系統(tǒng)性地提出了利用精簡(jiǎn)指令集計(jì)算機(jī)(reduced instruction set computing,簡(jiǎn)稱RISC)處理器作為高速網(wǎng)絡(luò)接口的NP 結(jié)構(gòu),但是該文獻(xiàn)注重技術(shù)細(xì)節(jié)的闡述,針對(duì)新型網(wǎng)絡(luò)體系結(jié)構(gòu)下的NP 設(shè)計(jì)分析簡(jiǎn)單,主要還是面向NP 靈活性進(jìn)行體系結(jié)構(gòu)的技術(shù)更新,也缺少其他同類NP 體系結(jié)構(gòu)設(shè)計(jì)的分析比對(duì).

下一代網(wǎng)絡(luò)處理器包括設(shè)備功能模塊、體系結(jié)構(gòu)、外圍支撐以及協(xié)議與平臺(tái)等內(nèi)在關(guān)鍵技術(shù),都是圍繞新型網(wǎng)絡(luò)架構(gòu)技術(shù)及應(yīng)用進(jìn)行研究與設(shè)計(jì).因此,本綜述嘗試對(duì)下一代網(wǎng)絡(luò)處理器的關(guān)鍵技術(shù)設(shè)計(jì)研究進(jìn)行全面的總結(jié)與歸納,按照利用新型可編程技術(shù)、面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)、針對(duì)新型高性能業(yè)務(wù)的3 類下一代網(wǎng)絡(luò)處理器設(shè)計(jì)方法進(jìn)行闡述.提出了下一代網(wǎng)絡(luò)處理器發(fā)展的挑戰(zhàn),設(shè)計(jì)了一種下一代高性能可演進(jìn)的網(wǎng)絡(luò)處理器體系架構(gòu),實(shí)現(xiàn)了原型系統(tǒng)并對(duì)其進(jìn)行了測(cè)試.

本文第1 節(jié)介紹網(wǎng)絡(luò)處理器的基本概念與面臨的挑戰(zhàn).第2 節(jié)~第4 節(jié)按照3 類方法分類闡述下一代網(wǎng)絡(luò)處理器設(shè)計(jì)的主要指導(dǎo)思想.第6 節(jié)提出下一代網(wǎng)絡(luò)處理器的發(fā)展方向,并介紹一種高性能可演進(jìn)的下一代網(wǎng)絡(luò)處理器體系架構(gòu)與實(shí)現(xiàn)方法.第7 節(jié)對(duì)全文的工作進(jìn)行總結(jié).

1 網(wǎng)絡(luò)處理器基本概念

1.1 網(wǎng)絡(luò)處理器基本架構(gòu)

網(wǎng)絡(luò)處理器由多個(gè)處理器內(nèi)核構(gòu)成[6],一般地,這些內(nèi)核分為處理單元(processing element,簡(jiǎn)稱PE)、協(xié)處理單元(co-processor,簡(jiǎn)稱CoP)以及硬件邏輯管控單元(hardware logic block,簡(jiǎn)稱HLB).以上單元的配置方式、指令集設(shè)計(jì)、共享資源訪問策略以及調(diào)度方法一般有兩種處理機(jī)制,處理機(jī)制的不同,導(dǎo)致網(wǎng)絡(luò)處理器的硬件邏輯結(jié)構(gòu)不同:一種是流水線方式,如圖1 所示的Yang 等學(xué)者[7]提出的一種經(jīng)典網(wǎng)絡(luò)分組處理操作流程,各單元利用處理引擎無(wú)關(guān)的特點(diǎn),通過流水線實(shí)現(xiàn)系統(tǒng)指令并行處理,完成分組相關(guān)操作;另一種是并行處理方式,由于使用并行處理要頻繁地對(duì)分組狀態(tài)進(jìn)行更新,利用存儲(chǔ)表格維護(hù)其狀態(tài),所需要的計(jì)算資源相對(duì)較多,采用并行處理的時(shí)機(jī)非常重要,使得每個(gè)處理單元完成相似的任務(wù).并行處理架構(gòu)使用HLB 和PE 集群關(guān)聯(lián),利用PE 間并行、PE 內(nèi)部并行或者PE 和CoP 并行方式提高處理器效率.

Fig.1 Pipeline structure of network processor圖1 網(wǎng)絡(luò)處理器流水線編排結(jié)構(gòu)

學(xué)者譚章熹等人[8]認(rèn)為,網(wǎng)絡(luò)處理器本身必須具備以下5 點(diǎn)要求:(1) 擁有網(wǎng)絡(luò)分組并行處理能力;(2) 具有高效的處理速度,能夠達(dá)到分組的實(shí)時(shí)處理;(3) 擁有一定數(shù)目的網(wǎng)絡(luò)專用協(xié)處理器;(4) 具有高度的可編程性和擴(kuò)展性;(5) 能夠快速投向市場(chǎng),盡量減小再開發(fā)周期.

在這種條件下,除了擁有可靠的硬件架構(gòu)外,網(wǎng)絡(luò)處理器芯片內(nèi)的各PE 上需要執(zhí)行相關(guān)程序進(jìn)行單元間通信和轉(zhuǎn)發(fā)表、提取元數(shù)據(jù)等操作.依據(jù)不同的網(wǎng)絡(luò)處理任務(wù),軟件系統(tǒng)分為控制層面和數(shù)據(jù)層面:控制面搭載網(wǎng)絡(luò)協(xié)議棧以及實(shí)時(shí)操作系統(tǒng)等進(jìn)行管理和策略控制;數(shù)據(jù)層面包括控制程序、管理程序和轉(zhuǎn)發(fā)程序等完成對(duì)數(shù)據(jù)的高速和定制化處理.

1.2 網(wǎng)絡(luò)處理器發(fā)展以及挑戰(zhàn)

網(wǎng)絡(luò)處理器作為一種支持各項(xiàng)網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的特殊處理器,它具備一定的可編程性保證部分工作所需功能的動(dòng)態(tài)加入[9].網(wǎng)絡(luò)處理器問世于1999 年,并即刻被網(wǎng)絡(luò)設(shè)備廠商和半導(dǎo)體公司投資制作.隨著學(xué)術(shù)界和業(yè)界對(duì)網(wǎng)絡(luò)處理器的重視,不同體系結(jié)構(gòu)、不同應(yīng)用場(chǎng)景的網(wǎng)絡(luò)處理器也相繼出現(xiàn).

作為推動(dòng)下一代網(wǎng)絡(luò)向靈活性和高性能結(jié)合的關(guān)鍵技術(shù),新型網(wǎng)絡(luò)處理器的體系結(jié)構(gòu)研究首先成為了該領(lǐng)域的熱點(diǎn)問題[10].為了使得網(wǎng)絡(luò)處理器更具備靈活性,以便對(duì)新型業(yè)務(wù)進(jìn)行處理,中間網(wǎng)絡(luò)設(shè)備開始不僅僅滿足于基本的轉(zhuǎn)發(fā)和查表操作.各類基于新型網(wǎng)絡(luò)處理器體系架構(gòu)的QoS 路由器相繼出現(xiàn),如基于DifferServ[11]的VERA(virtual extensible router architecture,虛擬可擴(kuò)展路由器體系結(jié)構(gòu))可擴(kuò)充路由器.這些設(shè)備主要關(guān)注可擴(kuò)展性和靈活性,稍微兼顧了效率.隨著對(duì)QoS 控制策略的不斷深入研究,網(wǎng)絡(luò)處理器架構(gòu)設(shè)計(jì)逐漸偏向可重點(diǎn)支持某一特定需求的協(xié)處理器設(shè)計(jì)[12].協(xié)處理器利用自身計(jì)算性能,增加了網(wǎng)絡(luò)處理器針對(duì)特定應(yīng)用的處理效率.當(dāng)然,協(xié)處理器一定意義上拖累了網(wǎng)絡(luò)處理器的靈活性,針對(duì)協(xié)處理器而設(shè)計(jì)的流水線或者體系架構(gòu)更改成本較高.

為了解決上述問題,也隨著網(wǎng)絡(luò)環(huán)境的日益復(fù)雜,近年來(lái),硬件領(lǐng)域以及編程語(yǔ)言的發(fā)展紅利也逐漸映射到網(wǎng)絡(luò)處理器研究上來(lái).ASIC(application specific integrated circuit,專用集成電路)作為網(wǎng)絡(luò)處理設(shè)備的初始應(yīng)用芯片,在應(yīng)用領(lǐng)域逐漸廣泛并趨于靈活的網(wǎng)絡(luò)市場(chǎng)上逐漸不被人滿意.更多的半定制化芯片,如FPGA(field programmable gate array,現(xiàn)場(chǎng)可編程邏輯門陣列)應(yīng)用到了網(wǎng)絡(luò)處理器設(shè)計(jì)中[13].網(wǎng)絡(luò)處理器應(yīng)用開發(fā)難度也影響著其靈活性利用新型的可編程技術(shù),簡(jiǎn)化網(wǎng)絡(luò)處理器設(shè)計(jì)的方式方法也成為研究熱點(diǎn).

網(wǎng)絡(luò)處理器的發(fā)展也面臨著對(duì)應(yīng)的挑戰(zhàn).面向新型的網(wǎng)絡(luò)體系結(jié)構(gòu),從數(shù)據(jù)網(wǎng)到電信網(wǎng)、從接入層到骨干層,網(wǎng)絡(luò)處理器開始被廣泛開展研究以及應(yīng)用.隨著需求的推動(dòng)和技術(shù)間的交叉融合,網(wǎng)絡(luò)處理器在平衡高速、靈活特性上逐漸出現(xiàn)矛盾[14].隨著通用性強(qiáng)、開發(fā)環(huán)境友好、軟硬件融合度高等設(shè)計(jì)理念都逐漸泛化為數(shù)據(jù)處理技術(shù)從而成為潮流,網(wǎng)絡(luò)處理器面臨著從交換、路由、網(wǎng)絡(luò)融合與演進(jìn)等傳統(tǒng)業(yè)務(wù)拓展到適應(yīng)新型體系結(jié)構(gòu)、滿足特殊需求型業(yè)務(wù)甚至應(yīng)用于終端領(lǐng)域的重大挑戰(zhàn).

在這種大背景下,將網(wǎng)絡(luò)處理器的“高性能”“高靈活”結(jié)合的研究局面出現(xiàn),下一代網(wǎng)絡(luò)處理器設(shè)計(jì)成為了研究熱點(diǎn).下一代網(wǎng)絡(luò)處理器的核心設(shè)計(jì)方法是結(jié)合應(yīng)用場(chǎng)景,將分組處理與轉(zhuǎn)發(fā)的高性能和可編程、可演進(jìn)的靈活性進(jìn)行結(jié)合,使得其能夠在自身資源屬性的限制下,完成可定制、可重構(gòu)的,并且提高搭載網(wǎng)絡(luò)處理器設(shè)備的效率、可編程性、魯棒性和安全性.目前,網(wǎng)絡(luò)處理器的“下一代”設(shè)計(jì)思路主要體現(xiàn)在3 個(gè)方面:利用新型可編程技術(shù)的下一代網(wǎng)絡(luò)處理器、面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)的下一代網(wǎng)絡(luò)處理器、針對(duì)新型高性能業(yè)務(wù)的下一代網(wǎng)絡(luò)處理器.具體的分類框架如圖2 所示.同時(shí),為了使下一代網(wǎng)絡(luò)處理器更具有有效性和可用性,工業(yè)界開始針對(duì)新型設(shè)計(jì)方法進(jìn)行產(chǎn)品化、原型系統(tǒng)化的輸出,本文也將會(huì)介紹這一部分內(nèi)容.

本文將重點(diǎn)關(guān)注下一代網(wǎng)絡(luò)處理器設(shè)計(jì)思想和體系結(jié)構(gòu),將這些雖然沒有量產(chǎn)但是實(shí)現(xiàn)原型系統(tǒng)的網(wǎng)絡(luò)處理器進(jìn)行體系化的整理、介紹以及對(duì)比.

Fig.2 Classification framework of next generation network processor design methods圖2 下一代網(wǎng)絡(luò)處理器設(shè)計(jì)方法分類框架

2 利用新型可編程技術(shù)的下一代網(wǎng)絡(luò)處理器

網(wǎng)絡(luò)處理器的靈活性依賴于兩點(diǎn):芯片的可編程性以及平臺(tái)編程語(yǔ)言的交互難度和編寫難度.芯片作為一個(gè)集成電路的載體,因其特有的體積小、重量輕、處理速度快等優(yōu)勢(shì),得以在各項(xiàng)工業(yè)制造中廣泛應(yīng)用.可編程技術(shù)在不同的硬件上有不同的體現(xiàn)方式,由用戶在使用中通過計(jì)算機(jī)指令選擇不同通道和電路功能進(jìn)行編程實(shí)現(xiàn)[15].網(wǎng)絡(luò)處理設(shè)備利用可編程芯片的起源較早,從開始的單片機(jī)到ASIC、FPGA 等,除了處理網(wǎng)絡(luò)協(xié)議,還可以擴(kuò)大轉(zhuǎn)發(fā)表,滿足高性能需求.網(wǎng)絡(luò)處理器作為一種特殊器件,其借鑒不同可編程芯片架構(gòu)的融合開發(fā),是下一代網(wǎng)絡(luò)處理器原型的重點(diǎn)方向.在當(dāng)前對(duì)中間網(wǎng)絡(luò)設(shè)備處理需求多樣、復(fù)雜的情況下,對(duì)芯片編程的語(yǔ)言可操作性,成為了評(píng)判網(wǎng)絡(luò)處理器靈活性的一個(gè)重要方式.硬件描述語(yǔ)言隨著EDA(electronic design automation,電子設(shè)計(jì)自動(dòng)化)技術(shù)的發(fā)展成為一種趨勢(shì).目前,最主要的硬件描述語(yǔ)言是VHDL 和在C 語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的Verilog HDL.兩者語(yǔ)法相對(duì)嚴(yán)格,主要關(guān)注數(shù)字電路和系統(tǒng)的設(shè)計(jì)與描述,功能雖然覆蓋網(wǎng)絡(luò)處理但是針對(duì)性不夠,編寫編譯復(fù)雜.斯坦福大學(xué)的McKeown 教授[16]于2014 年設(shè)計(jì)并提出了數(shù)據(jù)平面特定領(lǐng)域編程語(yǔ)言P4,充分發(fā)揮了網(wǎng)絡(luò)處理中數(shù)據(jù)平面的編程能力,也為網(wǎng)絡(luò)處理器的設(shè)計(jì)提供了新的思路.

2.1 基于ASIC芯片的NGNP設(shè)計(jì)

網(wǎng)絡(luò)處理器設(shè)計(jì)之初,ASIC,FPGA 以及NP 作為不同的架構(gòu)都可以搭載在路由器上,學(xué)術(shù)界也開始爭(zhēng)論這幾種芯片架構(gòu)對(duì)交換機(jī)等設(shè)備的適用性.擁有不同特點(diǎn)的3 種芯片的相互融合借鑒,是下一代網(wǎng)絡(luò)處理器的設(shè)計(jì)潮流.2013 年,Teubner 和Woods 編寫了利用可編程門陣列FPGA 進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)處理的專著[17],該書主要關(guān)注了網(wǎng)絡(luò)處理器的硬件系統(tǒng)的可編程性,對(duì)利用FPGA 進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)流的處理進(jìn)行了系統(tǒng)化的整理和指導(dǎo),討論了基于ASIC 芯片對(duì)網(wǎng)絡(luò)處理器的設(shè)計(jì)影響.

自2005 年開始,3 種芯片的架構(gòu)融合設(shè)計(jì)潮流興起.David 和Taylor 等人[18]探討了利用FPGA 和ASIC 等芯片形式,用以硬件輔助設(shè)計(jì)權(quán)衡的健壯的報(bào)頭壓縮(robust header compression,簡(jiǎn)稱ROHC)方法.ROHC 在網(wǎng)絡(luò)處理器上實(shí)現(xiàn),并為分組交換網(wǎng)絡(luò)中的無(wú)線通信提供更有效的無(wú)線鏈路使用.Renterghem 等人[19]研究了一種適合以太網(wǎng)接入節(jié)點(diǎn)的網(wǎng)絡(luò)處理器,借鑒ASIC 數(shù)據(jù)包處理器設(shè)計(jì)方法,通過多個(gè)處理器在多核環(huán)境下并行運(yùn)行,并達(dá)到10gbit/s 的以太網(wǎng)速率.該處理器有一個(gè)優(yōu)化的體系結(jié)構(gòu)來(lái)處理流處理任務(wù),如解析、分類和包操作.VLIW(very long instruction word,超長(zhǎng)指令字)指令集允許ASIP(application specific instruction set processor,專用指令集處理器)內(nèi)部各功能單元之間的高度并行,并有專用指令來(lái)加速典型的包處理任務(wù).當(dāng)然,上述兩點(diǎn)研究沒有考慮可編程性,無(wú)法靈活更新任務(wù).來(lái)自開羅大學(xué)的Suleiman 等學(xué)者[20]介紹了一種利用ASIC 設(shè)計(jì)的嵌入式應(yīng)用的低功耗、中性能網(wǎng)絡(luò)處理器,它的典型時(shí)鐘頻率為 260MHz,功耗為 0.11mW/MHz,功率效率為8.78dMIPS/mW,這使得它非常適合嵌入式和實(shí)時(shí)系統(tǒng).但是實(shí)驗(yàn)驗(yàn)證,其處理性能不高.Yoon 等人[21]提出了由多核處理器實(shí)現(xiàn)的一種適用于未來(lái)互聯(lián)網(wǎng)和需要多層協(xié)議處理的高端網(wǎng)絡(luò)服務(wù)的全流系統(tǒng)(OmniFlow system).作為一個(gè)基于流的網(wǎng)絡(luò)處理器,使用了65nmCOMS(complementary metal oxide semiconductor,互補(bǔ)金屬氧化物半導(dǎo)體)技術(shù),它包含40 個(gè)處理核,并利用ASIC 實(shí)現(xiàn).OmniFlow system 可通過兩個(gè)SPI-4.2s 處理傳入的包,并擁有40Gb/s 包轉(zhuǎn)發(fā)可編程引擎.文中也指出,該方法包含較多處理器核,如何進(jìn)行并行調(diào)度也是未來(lái)的研究重點(diǎn).

2.2 FPGA加速輔助的NGNP設(shè)計(jì)

Zhang 等學(xué)者[22]提出了一種基于FPGA 的高速OBS(optical burst switch,光突發(fā)交換)核心節(jié)點(diǎn)BCP 網(wǎng)絡(luò)處理器,并提出了一種新的有效的波長(zhǎng)調(diào)度算法.它不僅在調(diào)度有效波長(zhǎng)時(shí)具有較高的帶寬利用率,而且調(diào)度時(shí)間更短.當(dāng)系統(tǒng)時(shí)鐘為200MHz 時(shí),BCP 只需180ns 的處理時(shí)間:約50ns 用于調(diào)度有效波長(zhǎng),130ns 用于核心節(jié)點(diǎn)的其他問題.上述方法針對(duì)業(yè)務(wù)較為普通,獲得高帶寬后,面對(duì)擁塞情況沒考慮.在用于特定業(yè)務(wù)的網(wǎng)絡(luò)處理器方面,Niu 等人[23]提出了一種基于FPGA 的可配置的IPSec 處理器,其本質(zhì)是高性能在線網(wǎng)絡(luò)安全處理器.它由兩個(gè)嵌入式32 位CPU 核和一個(gè)SoC 上的IPSec 協(xié)議處理器構(gòu)成,4 個(gè)并行AH,ESP,AES,HMAC-SHA-1ip 核分別連接到IPSec 處理器中的8×8 交叉開關(guān)上,實(shí)現(xiàn)了200MHz 時(shí)1.5Gb/s 的吞吐率.雖然關(guān)注點(diǎn)是網(wǎng)絡(luò)安全,但是進(jìn)行網(wǎng)絡(luò)流量可視化難度較高.Veeraprathap 等人[24]介紹了一種基于FPGA 的網(wǎng)絡(luò)處理器設(shè)計(jì)與實(shí)現(xiàn),它是一種可擴(kuò)展的分組交換結(jié)構(gòu),具有存儲(chǔ)轉(zhuǎn)發(fā)、錯(cuò)誤管理、電源管理和安全等先進(jìn)的網(wǎng)絡(luò)功能.它不僅具有數(shù)據(jù)包化/去封裝化、頻率轉(zhuǎn)換、數(shù)據(jù)大小轉(zhuǎn)換等基本功能,還具有有限電路復(fù)雜度和較低的成本.然而,該方法在靈活性上的體現(xiàn)還是基于設(shè)計(jì)時(shí)的應(yīng)用下發(fā),沒有考慮任務(wù)熱部署,無(wú)法實(shí)現(xiàn)除預(yù)設(shè)能力外的更多功能.

由于預(yù)測(cè)網(wǎng)絡(luò)流量以每年大約60%的速率快速增長(zhǎng),因此迫切需要在NGNP 上利用其他成熟芯片原理降低功耗.Roy[25]討論了3 種減輕NP 功耗的技術(shù):異構(gòu)多核架構(gòu)、通用功能的硬件加速和非對(duì)稱擴(kuò)展技術(shù).Shamani 等人[26]介紹了一種基于FPGA 的網(wǎng)絡(luò)處理器的COFFEE RISC(reduced instruction set computing,精簡(jiǎn)指令集計(jì)算機(jī))協(xié)處理器,它能夠通過控制器局域網(wǎng)(controller area network,簡(jiǎn)稱CAN)協(xié)議與外圍設(shè)備通信.此外,核心和協(xié)處理器之間的數(shù)據(jù)傳輸在主數(shù)據(jù)總線上不引入任何工作負(fù)載,減少耗能的同時(shí),最大可達(dá)825MHz的最大工作頻率.上述方法由于性能上受限于設(shè)計(jì)架構(gòu),很難滿足當(dāng)代網(wǎng)絡(luò)業(yè)務(wù)的高性能需求

利用FPGA 進(jìn)行靈活與性能優(yōu)化的NP 研究方面,Gadre 等人[27]提出了一種利用RISC 處理器作為高速網(wǎng)絡(luò)接口的、基于FPGA 實(shí)現(xiàn)的網(wǎng)絡(luò)處理器,其使用RISC 處理器作為網(wǎng)絡(luò)處理器的專有高速網(wǎng)絡(luò)接口卡.這種NP 可以進(jìn)行多線程協(xié)議處理.文章還解釋了在確定了完整的設(shè)計(jì)規(guī)范并在硬件上實(shí)現(xiàn)了整個(gè)設(shè)計(jì)之后,支持新協(xié)議所涉及的增量變化以及調(diào)試復(fù)雜協(xié)議處理和糾正協(xié)議實(shí)現(xiàn)錯(cuò)誤所需的調(diào)試策略.Li 等人[28]的文章介紹了一種基于FPGA 加速平臺(tái)的高柔性和高性能的ClickNP,該處理器靈活性高,可以服務(wù)基于高級(jí)C 類語(yǔ)言的可編程點(diǎn)擊模塊化路由器.其原型擁有每秒高達(dá)2 億個(gè)包的流量處理速度,并且具有低于2μs 延遲.該方法由于設(shè)計(jì)性能要求高,加載策略過多,導(dǎo)致芯片產(chǎn)業(yè)化過于困難.

打破傳統(tǒng)的芯片體系結(jié)構(gòu),將多種芯片優(yōu)點(diǎn)混合設(shè)計(jì)進(jìn)行網(wǎng)絡(luò)處理芯片開發(fā),成為2018 年之后的主要研究熱點(diǎn).Zhou 等人[29]設(shè)計(jì)并實(shí)現(xiàn)了ECTCAT 實(shí)時(shí)應(yīng)用的靈活快速路徑可編程網(wǎng)絡(luò)處理器.作為家庭網(wǎng)關(guān)的快速路徑處理器,最多可用于10GPON 訪問.使用 VLIW(超長(zhǎng)指令字)體系結(jié)構(gòu),可以并行運(yùn)行多達(dá) 8 條指令.在SMIC(中芯國(guó)際) 65nm 技術(shù)下,在1.75Ghz 的運(yùn)行頻率下,最多可支持7Gb/s 的數(shù)據(jù)吞吐量.同時(shí),該處理器對(duì)于1G 以太網(wǎng)具有最小40ns 的端到端延遲,且無(wú)抖動(dòng).不過該設(shè)計(jì)受限于定制化服務(wù),如何面對(duì)今后的網(wǎng)絡(luò)發(fā)展是一個(gè)無(wú)法解決的問題.2019 年的INFOCOM 上,Su 等人[30]甚至提出了一種基于模板的網(wǎng)絡(luò)處理器自動(dòng)生成框架,通過將P4 程序自動(dòng)轉(zhuǎn)換為VHDL 程序來(lái)生成具有匹配動(dòng)作結(jié)構(gòu)的網(wǎng)絡(luò)處理器.作為一種基于模板的解決方案,其使用P4 程序自動(dòng)轉(zhuǎn)換為VHDL 程序,從而在FPGA 中生成包轉(zhuǎn)發(fā)處理器,最后實(shí)例化生成網(wǎng)絡(luò)處理器.該方法實(shí)例化過程復(fù)雜,適合學(xué)術(shù)界進(jìn)行學(xué)術(shù)研究,不適合現(xiàn)場(chǎng)部署.

2.3 利用P4等高級(jí)語(yǔ)言的NGNP

一般地,轉(zhuǎn)發(fā)芯片絕大部分都不是可編程芯片,無(wú)論是路由器中采用的NP,還是交換機(jī)中采用的Switch Chip,都不是可編程芯片[31].這些芯片的硬件轉(zhuǎn)發(fā)邏輯已經(jīng)設(shè)計(jì)好,無(wú)法通過調(diào)整軟件參數(shù)去更改.編程語(yǔ)言的協(xié)議或者是平臺(tái)相關(guān)性隨著芯片種類的冗雜導(dǎo)致數(shù)據(jù)平面控制平面分離失效,網(wǎng)絡(luò)處理器可編程性變差[32].P4的出現(xiàn)開始改變這種局面,網(wǎng)絡(luò)處理器原型設(shè)計(jì)開始考慮對(duì)這種語(yǔ)言的適配性.

領(lǐng)域?qū)S谜Z(yǔ)言(domain-specific language,簡(jiǎn)稱DSL),如P4,以其高生產(chǎn)率在網(wǎng)絡(luò)領(lǐng)域得到了廣泛的應(yīng)用.然而,在FPGA 上實(shí)現(xiàn)P4 程序的自動(dòng)轉(zhuǎn)換是很困難的.

Cao 等人[30]提出了一種基于模板的網(wǎng)絡(luò)處理器自動(dòng)生成框架,通過將P4 程序自動(dòng)轉(zhuǎn)換為VHDL 程序來(lái)生成具有匹配動(dòng)作結(jié)構(gòu)的網(wǎng)絡(luò)處理器.該框架首先從P4 程序中提取功能模塊和相應(yīng)的參數(shù),這些功能模塊將映射到預(yù)構(gòu)建的高效VHDL 模板以獲得高性能.最后,所選模板將被實(shí)例化,并根據(jù)需要安排形成一個(gè)完整的處理器.實(shí)驗(yàn)表明:生成的處理器不僅具有較高的吞吐量,而且具有較低的延遲.該方法的缺陷是精度較差,測(cè)試壓力強(qiáng)度不夠.He 等人[33]建議利用P4 實(shí)現(xiàn)NP 的網(wǎng)絡(luò)功能虛擬化(NFV),可以處理與協(xié)議無(wú)關(guān)分組處理的P4 語(yǔ)言,在計(jì)算和存儲(chǔ)硬件方面等運(yùn)營(yíng)商指定的網(wǎng)絡(luò)功能實(shí)例化具有很好的優(yōu)勢(shì).同時(shí),可以利用P4 增強(qiáng)的網(wǎng)絡(luò)硬件的性能改進(jìn).Cao 等人[34]提出了一種將P4 程序轉(zhuǎn)換為VHDL 語(yǔ)言并在FPGA 平臺(tái)上實(shí)現(xiàn)NP 的框架,在該框架中,引入了一種基于匹配動(dòng)作的硬件體系結(jié)構(gòu),其預(yù)構(gòu)建的模板庫(kù)用于編譯,包括與特定的明確設(shè)計(jì)的組件相對(duì)應(yīng)的優(yōu)化VHDL 模板.通過調(diào)用、配置、優(yōu)化和實(shí)例化這些參數(shù)和關(guān)系,將它們映射到相應(yīng)的模板,這樣生成的NP占用資源少、吞吐量高、延遲低.當(dāng)然,上述方法原型到芯片的過程比較困難.

NP 與P4 的結(jié)合可以實(shí)現(xiàn)在靈活性上的質(zhì)變,這首先給流量監(jiān)測(cè)技術(shù)帶來(lái)了新鮮血液.Martins 等人[35]提出了利用P4 實(shí)現(xiàn)的NP 中搭載概率數(shù)據(jù)結(jié)構(gòu)來(lái)監(jiān)視多租戶網(wǎng)絡(luò).文章為每個(gè)租戶實(shí)現(xiàn)了sketches 架構(gòu),利用位圖和計(jì)數(shù)器數(shù)組兩個(gè)概率結(jié)構(gòu)來(lái)進(jìn)行獨(dú)立的網(wǎng)絡(luò)監(jiān)視.該方法沒有考慮帶內(nèi)測(cè)量帶來(lái)的精確問題,導(dǎo)致測(cè)量結(jié)果精確度不高.Paolucci 等人[36]利用P4 語(yǔ)言對(duì)SDN(software defined network,軟件定義網(wǎng)絡(luò))交換機(jī)的數(shù)據(jù)平面結(jié)構(gòu)和行為進(jìn)行編程.實(shí)例化的NP 可以自定義管道和有狀態(tài)對(duì)象,支持復(fù)雜的工作流、用戶定義的協(xié)議/頭和有限狀態(tài)機(jī)強(qiáng)制.原型系統(tǒng)顯示出良好的可擴(kuò)展性性能和總體延遲.該方法沒有進(jìn)行現(xiàn)網(wǎng)測(cè)試,實(shí)際應(yīng)用能力存在一定的疑問.在網(wǎng)絡(luò)管理方面,Yazdinejad 等人[37]設(shè)計(jì)了一種與靜態(tài)網(wǎng)絡(luò)設(shè)備不同的NP 體系結(jié)構(gòu),它在數(shù)據(jù)平面具有高靈活性和可編程性,支持特定分組的解析和處理,原型系統(tǒng)采用了P4 語(yǔ)言在FPGA 上實(shí)現(xiàn).Guan、Jiang、Benácek 等人[38-40]都利用P4 設(shè)計(jì)了負(fù)載均衡的網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)擁塞控制以及線速轉(zhuǎn)發(fā)框架,使得下一代可能的異構(gòu)網(wǎng)絡(luò)硬件能夠根據(jù)不同領(lǐng)域的特定應(yīng)用程序的需要進(jìn)行運(yùn)行時(shí)定制.這些方法注重靈活性,在部署時(shí)間、處理性能兩方面考慮不足.

P4 除了能夠提高NP 的靈活性,解決了有狀態(tài)數(shù)據(jù)平面的局限性之外,也能利用存儲(chǔ)和計(jì)算性能的改變,實(shí)現(xiàn)學(xué)習(xí)功能,提高性能.Sviridov 等人[41]引入并提供了LODGE 的設(shè)計(jì)準(zhǔn)則.LODGE 是一個(gè)模型,根據(jù)該模型,分布式網(wǎng)絡(luò)應(yīng)用程序可以基于在其他交換機(jī)上共享的一些全局變量在每個(gè)交換機(jī)上利用NP 做出本地決策.應(yīng)用程序可以支持在P4 和開放包處理器的有狀態(tài)數(shù)據(jù)平面中學(xué)習(xí)并檢測(cè)分布式拒絕服務(wù)(DDoS)攻擊.Pontarelli 等人[42]的目標(biāo)是使NP 進(jìn)行預(yù)先操作,在保持高速多Gb/s 操作的同時(shí)可編程.他們提出了一個(gè)特定領(lǐng)域的NP 架構(gòu),稱為包操作處理器(PMP),能夠有效地支持微程序?qū)崿F(xiàn)隧道、NAT(network address translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)和ARP(address resolution protocol,地址解析協(xié)議)應(yīng)答生成等相關(guān)操作.上述方法由于需要離線學(xué)習(xí),對(duì)數(shù)據(jù)要求嚴(yán)格,準(zhǔn)確性過度依賴先驗(yàn)處理知識(shí).

3 面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)的下一代網(wǎng)絡(luò)處理器

近年來(lái),網(wǎng)絡(luò)的應(yīng)用場(chǎng)景變化復(fù)雜,傳統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu)在時(shí)延、傳輸性能上的弊端逐漸顯現(xiàn)[43].新型的網(wǎng)絡(luò)體系結(jié)構(gòu)成為了學(xué)者們從根本上解決各種網(wǎng)絡(luò)問題的研究熱點(diǎn),這種學(xué)術(shù)潮流也影響了學(xué)者們對(duì)網(wǎng)絡(luò)處理器的設(shè)計(jì)模式.數(shù)據(jù)平面與控制平面分離原本就符合網(wǎng)絡(luò)處理器的設(shè)計(jì)思想,面向軟件定義網(wǎng)絡(luò)這一新型網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行NP 設(shè)計(jì),可以增強(qiáng)網(wǎng)絡(luò)各節(jié)點(diǎn)處理性能,靈活開展各項(xiàng)業(yè)務(wù).去中心化的下一代網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)思潮體現(xiàn)在了邊緣計(jì)算中的網(wǎng)絡(luò)應(yīng)用.邊緣計(jì)算節(jié)點(diǎn)對(duì)計(jì)算能力要求高,其功耗和成本必須維持在普通環(huán)境下的可接受的程度[44].所以在邊緣計(jì)算以及云計(jì)算、甚至霧計(jì)算的節(jié)點(diǎn)上,NP 可以成為一種專用的預(yù)處理器,在海量級(jí)的數(shù)據(jù)報(bào)文流量下,利用高效的包處理能力提煉出相關(guān)有效載荷,轉(zhuǎn)發(fā)至計(jì)算節(jié)點(diǎn)的不同核心計(jì)算處理器進(jìn)行數(shù)據(jù)計(jì)算或者相關(guān)處理.NP 作為一種功能芯片,實(shí)現(xiàn)非核心業(yè)務(wù)向智能網(wǎng)卡(smart network interface controller,簡(jiǎn)稱SmartNIC)的功能推拉與卸載,可以幫助NP 提高利用率,增強(qiáng)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)與處理性能.

3.1 服務(wù)SDN的NGNP

SDN 的設(shè)計(jì)雖然從控制層面進(jìn)行了邏輯上的簡(jiǎn)化,但是實(shí)現(xiàn)這種下一代架構(gòu)需要各個(gè)交換機(jī)擁有足夠的計(jì)算與處理甚至是存儲(chǔ)資源[45].使用下一代網(wǎng)絡(luò)處理器應(yīng)用在交換設(shè)備上能夠加速SDN 體系結(jié)構(gòu)的流表下發(fā)、帶內(nèi)遙測(cè)以及網(wǎng)絡(luò)監(jiān)管的性能.

NGNP 在SDN 的數(shù)據(jù)中心建設(shè)上有得天獨(dú)厚的優(yōu)勢(shì).Brebner 等人[46]探討了利用FPGA 實(shí)現(xiàn)的NP 原型作為光網(wǎng)絡(luò)和數(shù)據(jù)中心服務(wù)器之間的一種經(jīng)濟(jì)高效的中介,以滿足下一代數(shù)據(jù)中心的需求.在數(shù)據(jù)中心本地或是在載波網(wǎng)絡(luò)中,配備了這種NP 的主要作用有3 個(gè):首先是從服務(wù)器上卸載網(wǎng)絡(luò)處理功能,以便在較低的延遲下實(shí)現(xiàn)更高的吞吐量,同時(shí)釋放服務(wù)器資源以集中于數(shù)據(jù)處理;第2 個(gè)是為不同的通信協(xié)議和標(biāo)準(zhǔn)提供靈活的硬件支持;第3 個(gè)是作為一種可管理的資源,它可以提供支持SDN 和網(wǎng)絡(luò)功能虛擬化(NFV)的軟件控制器和管理程序所需的數(shù)據(jù)平面功能.該方法沒有考慮突發(fā)流量情況下或者是網(wǎng)絡(luò)攻擊時(shí)的NP 性能表現(xiàn).為了破除兼容性帶來(lái)的OpenFlow 控制平面在許多網(wǎng)絡(luò)平臺(tái)上的部署障礙,Su?é 等人[47]描述了xDPd 和OpenFlow 的網(wǎng)絡(luò)處理器.硬件無(wú)關(guān)部分主要是使用修訂的OpenFLASH 庫(kù)(RoFL),它為OpenFLASH 控制器和數(shù)據(jù)通路元件的開發(fā)提供了基礎(chǔ),并允許為各種設(shè)備開發(fā)特定平臺(tái)的驅(qū)動(dòng)程序.Belter 等人[48]描述了一種在軟件定義的網(wǎng)絡(luò)體系結(jié)構(gòu)中實(shí)現(xiàn)NP 的支持發(fā)現(xiàn)和HSL 翻譯功能,它將基于OpenFlow 的AFA 消息轉(zhuǎn)換為NP-3 網(wǎng)絡(luò)處理器中的內(nèi)存結(jié)構(gòu).NP-3 存儲(chǔ)器結(jié)構(gòu)通過EZchip 提供的EZdriver 訪問,其內(nèi)存包含一個(gè)帶有流條目的結(jié)構(gòu)、包匹配和操作的專有二進(jìn)制編碼.這兩種方法在提供控制器命令編譯支持時(shí)沒有考慮SDN 架構(gòu)下流量的特征與分組處理特點(diǎn),導(dǎo)致過多指令集翻譯帶來(lái)的性能下降.

將輸入業(yè)務(wù)流與控制器發(fā)送的規(guī)則相匹配,是SDN 業(yè)務(wù)轉(zhuǎn)發(fā)的一個(gè)重要組成部分,其執(zhí)行效率對(duì)網(wǎng)絡(luò)性能有很大影響.Wijekoon 等人[49]提出了一種高性能、低成本的SDN 交換機(jī)流匹配體系結(jié)構(gòu),通過定制NP 處理特定于SDN 的業(yè)務(wù).該NP 由一個(gè)用于流匹配的專用單元和一個(gè)自定義處理器組成,這個(gè)處理器的ISA 被設(shè)計(jì)用來(lái)加速OpenFlow 和SDN 相關(guān)的任務(wù),比如向流表添加條目、處理相關(guān)報(bào)文等.其使用32 位長(zhǎng)指令,操作碼保留6 位,能夠保持最大頻率150MHz,其流量匹配單元也可保證250MHz 工作.但是該NP 的功耗很高,設(shè)計(jì)相對(duì)復(fù)雜,很難大規(guī)模地在SDN 網(wǎng)絡(luò)中部署.Blaiech 等人[50]提出了一種基于網(wǎng)絡(luò)演算模型和博弈論算法的公平共享網(wǎng)絡(luò)處理器資源分配策略,該策略根據(jù)虛擬節(jié)點(diǎn)的處理,動(dòng)態(tài)地映射合適的資源.在NP 的實(shí)現(xiàn)中,他們專注于在多個(gè)協(xié)處理器中根據(jù)OpenFlow 轉(zhuǎn)發(fā)模型來(lái)重新分配資源的包處理任務(wù).

隨著業(yè)務(wù)的不斷更新,SDN 仍然尋求靈活的方式定義網(wǎng)絡(luò)設(shè)備的行為,控制平面需要能夠充分利用現(xiàn)代網(wǎng)絡(luò)硬件不斷增長(zhǎng)的能力及其多樣性,使得控制平面加快對(duì)網(wǎng)絡(luò)變化的探測(cè)和響應(yīng)[51].Belter 等人[52]提出了一種新的NP 硬件抽象,其首要目標(biāo)是公開NP 和軟件交換機(jī)的高級(jí)可編程能力;第2 個(gè)目標(biāo)是通過提供動(dòng)態(tài)檢查特定網(wǎng)絡(luò)設(shè)備支持的功能的可能性,來(lái)擴(kuò)展網(wǎng)絡(luò)節(jié)點(diǎn)可編程性的概念;第 3 個(gè)目標(biāo)是將使用新定義的 API(application programming interface,應(yīng)用程序接口)的編程語(yǔ)言引入到不同類型網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)路徑的可編程抽象中.Kaljic 等人[53]提出了一種基于現(xiàn)CPU+FPGA 技術(shù)的深度可編程N(yùn)P 混合結(jié)構(gòu),以克服OpenFlow 在實(shí)現(xiàn)新協(xié)議和高級(jí)分組處理功能方面的局限性.通過對(duì)實(shí)現(xiàn)和實(shí)驗(yàn)評(píng)估,該NP 將交換任務(wù)減少到簡(jiǎn)單的包流表查找,證明了采用混合的FPGA/CPU 結(jié)構(gòu)是可行的.這種方法的不足是在CPU 和FPGA 混合編排時(shí)忽略了緩存架構(gòu)的設(shè)計(jì),導(dǎo)致性能較差

在SDN 中,OpenFlow 表查找可能需要檢查15 個(gè)包頭字段.為了針對(duì)SDN 這種下一代網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行優(yōu)化加速,Qu 等人[54]提出了利用NP 的包分類實(shí)現(xiàn)與有效的優(yōu)化技術(shù).在多核GPP 上,他們使用并行程序線程并行化搜索和合并階段.該方法強(qiáng)調(diào)性能,可能會(huì)加大NP 中Cache 的資源占用,反而導(dǎo)致Cache 失效.Sun、Bi 等人[55]針對(duì)SDN 數(shù)據(jù)平面提出了一種新的狀態(tài)數(shù)據(jù)平面體系結(jié)構(gòu)SDPA.為SDN 交換機(jī)設(shè)計(jì)了一個(gè)專用NP,通過新的指令和狀態(tài)表來(lái)管理狀態(tài)信息,進(jìn)而實(shí)現(xiàn)擴(kuò)展的開放流協(xié)議來(lái)支持平面間通信.Wu 等人[56]提出了一種支持Openflow 協(xié)議的高擴(kuò)展性SDN 交換機(jī)的NP 軟硬件協(xié)同設(shè)計(jì),為了在靈活性、能量效率和性能之間取得平衡,NP 核心是基于集成了ARM 處理器和FPGA 的嵌入式片上系統(tǒng)(SOC)平臺(tái)來(lái)實(shí)現(xiàn)的.特別地,在所提出的交換架構(gòu)中設(shè)計(jì)了專用高速信道,使得多個(gè)交換機(jī)可以互連在一起,成為一個(gè)堆疊的交換機(jī).Li 等人[57]提出了一種基于Cavium 的開放式vSwitch 實(shí)現(xiàn),Cavium 平臺(tái)就是一種多核NP,它支持包的零拷貝,處理包的速度更快.這兩種方法在高速通道的使用上容易引發(fā)堵塞和不一致性,風(fēng)險(xiǎn)系數(shù)較高.

安全性是SDN 中最具挑戰(zhàn)性的問題之一,網(wǎng)絡(luò)安全應(yīng)用程序通常需要以比SDN 數(shù)據(jù)平面實(shí)現(xiàn)允許的更高級(jí)的方式分析和處理流量[58].NP 可以在SDN 數(shù)據(jù)平面(即交換機(jī))上對(duì)分組進(jìn)行預(yù)處理,以初步確定其在網(wǎng)絡(luò)中的行為.近期,區(qū)塊鏈被用于安全傳輸網(wǎng)絡(luò)中的交易和文件傳遞.Yazdinejad 等人[59]根據(jù)區(qū)塊鏈的安全特性和對(duì)數(shù)據(jù)處理功能的支持,提出了一種新的SDN 分組解析器體系結(jié)構(gòu),稱為區(qū)塊鏈啟用分組解析器(blockchainenabled packet parser,簡(jiǎn)稱BPP),并進(jìn)行了利用FPGA 的NP 原型實(shí)現(xiàn).在他們提出的架構(gòu)中,NP 利用一個(gè)基于多元相關(guān)方法的數(shù)學(xué)模型,用于從觀察到的數(shù)據(jù)包流量中檢測(cè)攻擊,能夠做到處理速度快、靈活性強(qiáng)、消耗資源較低.但是該方法沒有對(duì)NP 本身的架構(gòu)加以解析和更改,沒有突破原有NP 架構(gòu)在使能安全業(yè)務(wù)時(shí)的限制.

3.2 邊緣計(jì)算與云計(jì)算中的NGNP

邊緣計(jì)算、云計(jì)算節(jié)點(diǎn)最注重節(jié)點(diǎn)的數(shù)據(jù)處理能力[44].作為分導(dǎo)網(wǎng)絡(luò)數(shù)據(jù)的重要“關(guān)卡”,網(wǎng)絡(luò)處理器對(duì)網(wǎng)絡(luò)數(shù)據(jù)的預(yù)先處理可以倍速增加計(jì)算節(jié)點(diǎn)的處理效能,甚至可以緩解整體網(wǎng)絡(luò)的壓力.

在邊緣計(jì)算節(jié)點(diǎn)中,領(lǐng)域特定的局域網(wǎng)語(yǔ)言(如Click)是捕獲應(yīng)用程序一致性的好方法,但網(wǎng)絡(luò)處理器仍有許多其他機(jī)會(huì)來(lái)提供更符合應(yīng)用程序需求的功能.Mihal、Andrew 等人[60]提出了一個(gè)處理元素,它在實(shí)現(xiàn)Click應(yīng)用程序任務(wù)時(shí)非常有效.其使用Click 作為高級(jí)輸入語(yǔ)言編程PE 提供了一種高效的方法,并利用FPGA 實(shí)現(xiàn)了為IPv4 轉(zhuǎn)發(fā)應(yīng)用處理超過8Gb/s 流量的NP.Nayaka 等人[61]介紹了一種用于片上系統(tǒng)(SoC)的以太網(wǎng)NP 設(shè)計(jì),該處理器實(shí)現(xiàn)了所有核心的分組處理功能,包括分組和重組、分組分類、路由和隊(duì)列管理,提高了交換/路由性能,使其更適合下一代網(wǎng)絡(luò)(next generation network,簡(jiǎn)稱NGN)的各項(xiàng)節(jié)點(diǎn).該NP 可支持1/10/20/40/100 千兆鏈路,具有速度和性能優(yōu)勢(shì).當(dāng)然,其也具有片上系統(tǒng)的共同弱點(diǎn),靈活性受限于定制流程.

加速 NP 中的數(shù)據(jù)處理流程、增強(qiáng)節(jié)點(diǎn)性能、減少?gòu)?fù)雜度,是面向計(jì)算節(jié)點(diǎn)的 NP 設(shè)計(jì)重點(diǎn).Ihor,Tchaikovsky[62]成體系地介紹了面向邊緣計(jì)算的網(wǎng)絡(luò)處理器的體系結(jié)構(gòu)和服務(wù),描述了網(wǎng)絡(luò)處理器在設(shè)備流量處理和形成中的應(yīng)用.他指出:在滿足這些要求時(shí),重點(diǎn)是包的處理速度.但是該文章沒有討論NP 在遭遇計(jì)算節(jié)點(diǎn)流量突發(fā)時(shí)的情況.Kanada 等人[63]提出了一種利用多個(gè)包處理器控制(packet-processing cores,簡(jiǎn)稱PPC)NP中的分組處理的方法.通過這種方法,NP 芯片外的CPU 對(duì)復(fù)雜的控制信息進(jìn)行部分處理,并將其分為簡(jiǎn)化的控制包,這些控制包被發(fā)送到控制處理PPC.利用PPC 的數(shù)據(jù)交換機(jī)制(例如共享存儲(chǔ)器或片上網(wǎng)絡(luò))來(lái)控制數(shù)據(jù)處理,這些機(jī)制比原有機(jī)制更加統(tǒng)一和簡(jiǎn)單.處理器關(guān)聯(lián)性是提高NP 性能的有效途徑之一.He 等人[64]詳細(xì)分析了網(wǎng)絡(luò)處理器的緩存特性,提出了一種兼顧負(fù)載均衡和數(shù)據(jù)包相關(guān)性的多核網(wǎng)絡(luò)處理器調(diào)度算法BLA.該方法嘗試將同一個(gè)流的數(shù)據(jù)包調(diào)度到同一個(gè)NP 核心,同時(shí)保持核心之間的工作負(fù)載平衡.但是增加核間調(diào)度,使得該方法犧牲了一定的性能

鏈路速度的顯著和連續(xù)增加以及應(yīng)用的多樣性,要求新的云計(jì)算節(jié)點(diǎn)服務(wù)高效又靈活.Niu 等人[65]提出一種基于NP 的高效流量管理QoS 調(diào)度機(jī)制,詳細(xì)討論了利用數(shù)據(jù)平面軟件體系結(jié)構(gòu)的操作過程.他們將NP 的一些協(xié)處理器設(shè)計(jì)得更加親和計(jì)算節(jié)點(diǎn)業(yè)務(wù),如準(zhǔn)確的流量分類、靈活的訪問控制和三步調(diào)度等.針對(duì)網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)量大、實(shí)時(shí)性要求高的問題,Wu 等人[66]通過優(yōu)化配置NP 控制和數(shù)據(jù)平面,提出一種基于核心處理器的快速數(shù)據(jù)包處理的NP 體系結(jié)構(gòu).它減少了CPU 的調(diào)度,與平均分配CPU 內(nèi)核資源相比,提高了30%的包轉(zhuǎn)發(fā)率.上述方法的缺點(diǎn)是沒有引入負(fù)載均衡考慮,準(zhǔn)確的流量分類帶來(lái)的高功耗,加大了計(jì)算節(jié)點(diǎn)的環(huán)境、能動(dòng)壓力.

與DPDK(data plane development kit,數(shù)據(jù)平面開發(fā)套件)的設(shè)計(jì)模式類似,很多云計(jì)算或邊緣計(jì)算節(jié)點(diǎn)不希望所有的數(shù)據(jù)通過之前搭載的網(wǎng)絡(luò)協(xié)議棧進(jìn)行處理,為NP 專門實(shí)現(xiàn)一種協(xié)議棧,成為了計(jì)算節(jié)點(diǎn)的加速方式.Tang 等人[67]提出一種實(shí)時(shí)操作系統(tǒng)中的多徑可靠數(shù)據(jù)傳輸(multi-path reliable data transfer,簡(jiǎn)稱MPRDT)系統(tǒng),該系統(tǒng)在多核NP 的實(shí)時(shí)操作系統(tǒng)(real time operating system,簡(jiǎn)稱RTOS)中實(shí)現(xiàn)了一個(gè)基于UDP 的可靠數(shù)據(jù)傳輸棧,以加速網(wǎng)絡(luò)處理器的可靠數(shù)據(jù)傳輸.該系統(tǒng)由兩部分組成:基于UDP 的可靠棧(URS)和連接管理模塊.系統(tǒng)采用多徑方法,使系統(tǒng)能夠通過不同的接口管理到不同接收端的多徑連接,充分利用網(wǎng)絡(luò)接口和帶寬資源.

隨著服務(wù)器的虛擬化的發(fā)展趨勢(shì),出現(xiàn)了一種新的網(wǎng)絡(luò)訪問層,它由運(yùn)行在服務(wù)器平臺(tái)上的虛擬交換機(jī)組成,為同一物理服務(wù)器上的虛擬機(jī)(VM)提供連接.Blaiech 等人[68]提出了一種策略,旨在通過將包處理任務(wù)擴(kuò)展到NP,以提高虛擬交換機(jī)的性能.該策略基于處理器資源的自適應(yīng)動(dòng)態(tài)分配,分配機(jī)制包括將虛擬交換機(jī)任務(wù)映射到足夠的資源集,即多核數(shù)據(jù)路徑或硬件加速器數(shù)據(jù)路徑.傳統(tǒng)的NP 不能處理7 層包,給計(jì)算節(jié)點(diǎn)帶來(lái)了很大困擾,Bae 等人[69]提出了一種新的NP 互通結(jié)構(gòu),該結(jié)構(gòu)通過將傳統(tǒng)NP 與通用處理器(GP)相結(jié)合,能夠處理OSI 第2 層(L2)~第7 層(L7)的數(shù)據(jù)包,并在不增加硬件開銷的情況下提高NP 中數(shù)據(jù)包處理的吞吐量和負(fù)載平衡.實(shí)現(xiàn)上述方法并不簡(jiǎn)單,兼容性是搭載新協(xié)議NP 的重要問題,無(wú)法識(shí)別分組頭部或者協(xié)議偏差導(dǎo)致識(shí)別錯(cuò)誤時(shí),NP 的后續(xù)處理不僅消耗CPU 資源,而且導(dǎo)致下發(fā)的轉(zhuǎn)發(fā)和處理任務(wù)全部失敗.

隨著云計(jì)算中網(wǎng)絡(luò)即服務(wù)(network-as-as-a-service,簡(jiǎn)稱 NaaS)的發(fā)展趨勢(shì),加速租戶 NFs(network file system,網(wǎng)絡(luò)文件系統(tǒng))以滿足性能要求也具有重要意義.然而,為了追求高性能,現(xiàn)有的工作如AccelNet 被精心設(shè)計(jì),以加速數(shù)據(jù)中心提供者的特定NFS,這犧牲了快速部署新NFs 的靈活性.Li 等人[70]提出了一種可重構(gòu)的NP 流水線DrawerPipe,它將數(shù)據(jù)包處理抽象為多個(gè)由同一接口連接的drawer.開發(fā)人員可以輕松地將現(xiàn)有模塊與其他NFs 共享,只需在適當(dāng)?shù)摹俺閷稀敝屑虞d核心應(yīng)用程序邏輯,即可實(shí)現(xiàn)新的NFs.此外,他們還提出了一個(gè)可編程模塊索引機(jī)制,即PMI,它可以以任何邏輯順序連接“抽屜”,從而為不同的租戶或流執(zhí)行不同的NFs.這種NP設(shè)計(jì)方案暫時(shí)無(wú)法大規(guī)模投入生產(chǎn).Li 等人[71]提出了一個(gè)并行包處理運(yùn)行系統(tǒng),并探討了一種基于關(guān)聯(lián)度的包調(diào)度算法,以提高NP 負(fù)載平衡度并減少緩存丟失為.在并行數(shù)據(jù)包處理系統(tǒng)中,由于犧牲了部分緩存,NP 任務(wù)分發(fā)器和調(diào)度器能夠在負(fù)載均衡和緩存關(guān)聯(lián)性之間達(dá)到較好的折衷.方法缺陷是租戶單點(diǎn)故障時(shí)容易使得全部服務(wù)器NP 性能宕機(jī),在高并發(fā)情況下其效率有限,安全性也一般.

3.3 NGNP與SmartNIC的功能推拉

NP 的設(shè)計(jì)原型一般以板卡的形式實(shí)現(xiàn),所以NP 的設(shè)計(jì)階段與SmartNIC 的設(shè)計(jì)方法類似,呈現(xiàn)形式也相似.可以預(yù)見的是:面向復(fù)雜網(wǎng)絡(luò)應(yīng)用和對(duì)網(wǎng)絡(luò)壓力不同的各項(xiàng)應(yīng)用,實(shí)現(xiàn)NP 和smartNIC 的功能推拉是必備的節(jié)點(diǎn)能力,很多研究者也在開始尋找兩者的平衡點(diǎn).

NP 的使用受到不斷提高的靈活性和高性能的分組處理的需求的鼓舞.此外,適應(yīng)性要求、產(chǎn)品差異化和縮短上市時(shí)間鼓勵(lì)在網(wǎng)卡中使用網(wǎng)絡(luò)處理器,而不是包括特定用途的硬件.Cascón 等人[72]提出了一種利用NP 的并行性來(lái)提高通信性能的網(wǎng)卡,遺憾的是,他們沒有提出特有的框架,而是基于包括16 個(gè)多線程處理內(nèi)核和包處理的優(yōu)化設(shè)計(jì)Intel IXP28xx 網(wǎng)絡(luò)處理器.通過使用NIC 卸載和/或加載策略,利用不同的選項(xiàng)來(lái)優(yōu)化主機(jī)中的通信路徑.Sabin 等人[73]提出的SmartNIC 是一種用戶可編程的10GE NIC,可以滿足HPC(high performance computing,高性能計(jì)算機(jī)群)和數(shù)據(jù)中心社區(qū)的高性能網(wǎng)絡(luò)需求.這種SmartNIC 支持開發(fā)特定于應(yīng)用程序的卸載引擎,以實(shí)現(xiàn)與NP 的功能推拉.應(yīng)用程序開發(fā)人員可以實(shí)現(xiàn)應(yīng)用程序感知的卸載引擎,網(wǎng)絡(luò)開發(fā)人員可以測(cè)試和開發(fā)網(wǎng)絡(luò)協(xié)議卸載引擎,研究人員可以測(cè)試和開發(fā)新的卸載協(xié)議和中間件.但該方法沒有明確卸載協(xié)議類型,適用范圍有限.

從增加包處理性能的角度看,SmartNIC 從主機(jī)處理器上卸載網(wǎng)絡(luò)功能,使其部分功能通過板卡或者是NP進(jìn)行實(shí)現(xiàn),是一個(gè)較優(yōu)策略.Le 等人[74]提出了一種廣義的SDN 控制的NF 卸載結(jié)構(gòu)(uniflying host and smart NIC offload,簡(jiǎn)稱UNO).通過在主機(jī)中使用多個(gè)交換機(jī),它可以透明地將動(dòng)態(tài)選擇的主機(jī)處理器的數(shù)據(jù)包處理功能卸載到SmartNIC,同時(shí)保持?jǐn)?shù)據(jù)中心范圍的網(wǎng)絡(luò)控制和管理平面不變.UNO 向SDN 控制器公開單個(gè)虛擬控制平面,并在統(tǒng)一的虛擬管理平面后面隱藏動(dòng)態(tài)NF 卸載.這使得UNO 能夠最佳地利用主機(jī)和SmartNIC 的組合包處理能力,并根據(jù)本地觀察到的通信模式和資源消耗進(jìn)行NP 參與轉(zhuǎn)發(fā)的本地優(yōu)化,而無(wú)需中央控制器的參與.這種方法依賴于板卡CPU 的計(jì)算性能,可能會(huì)無(wú)法正確地判斷本地網(wǎng)絡(luò)狀態(tài).Cornevaux-Juignet 等人[75]考慮了采用嵌入式現(xiàn)場(chǎng)FPGA 的SmartNIC 輔助NP 進(jìn)行處理的新解決方案,提出了一種混合體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)靈活的高性能流量取證.這項(xiàng)工作結(jié)合了硬件性能、高吞吐量和軟件高靈活性,以實(shí)現(xiàn)超過40Gb/s 的數(shù)據(jù)速率,同時(shí)可以通過參數(shù)在運(yùn)行時(shí)熱配置.Cerovi? 等人[76]提出了一種將數(shù)據(jù)平面包處理卸載到具有并行處理能力的可編程硬件上的體系結(jié)構(gòu),因此,他們使用MPPA 這種大規(guī)模并行NP 陣列組建的SmartNIC,它提供可用于數(shù)據(jù)包處理的ODP(open distributed processing,開放式分布處理)API,并且可以建立一個(gè)全網(wǎng)格無(wú)阻塞的第2 層網(wǎng)絡(luò).當(dāng)然,這兩種方法注重轉(zhuǎn)發(fā)性能,包處理性能考慮不周.

實(shí)現(xiàn)與SmartNIC 功能推拉的NP 可以擴(kuò)大自身的網(wǎng)絡(luò)監(jiān)控能力.Huang 等人[77]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于多隊(duì)列網(wǎng)卡和多核NP 的數(shù)據(jù)流捕獲系統(tǒng),該系統(tǒng)充分利用了輪詢技術(shù)、多隊(duì)列技術(shù)和原始設(shè)備技術(shù),大大提高了系統(tǒng)性能.2019 年的SIGCOMM 上,Li 等人[78]提出了一種新的高速擁塞控制機(jī)制HPCC(high-precision clusion control),HPCC 利用網(wǎng)絡(luò)遙測(cè)技術(shù)(INT)獲得精確的鏈路負(fù)載信息,并精確控制通信量.他們用可編程的網(wǎng)卡(NICs)模仿NP 來(lái)實(shí)現(xiàn)HPCC.這種方法能夠在避免擁塞的同時(shí)快速收斂,以利用空閑帶寬,并能在網(wǎng)絡(luò)隊(duì)列中保持接近零的超低延遲.這種定制板卡的擁塞控制方法部署環(huán)境受限于大規(guī)模數(shù)據(jù)中心.在網(wǎng)絡(luò)安全問題上,S.Miano 的文章[79]旨在利用SmartNICs 構(gòu)建一個(gè)更高效的處理管道,并為特定用例(即減輕分布式拒絕服務(wù)(DDoS)攻擊)的使用提供具體的方案.他們通過透明地卸載SmartNIC 與NP 中的DDoS 緩解規(guī)則的一部分,實(shí)現(xiàn)了XDP 靈活性在操作內(nèi)核中的流量采樣和聚合時(shí)的平衡組合,并具有基于硬件的過濾流量性能.由于依賴DDoS 配置規(guī)則,缺乏在線流量學(xué)習(xí)功能,在真實(shí)網(wǎng)絡(luò)環(huán)境中預(yù)計(jì)無(wú)法有效清洗DDoS 流量.

SmartNIC 不僅可以包含NP,還可以利用多項(xiàng)元器件加強(qiáng)網(wǎng)絡(luò)包的轉(zhuǎn)發(fā)或者處理性能.與此同時(shí),學(xué)者將眼光轉(zhuǎn)向保證SmartNIC 與NP 功能推拉結(jié)構(gòu)的靈活性[80].在Caulfield 等人[81]的文章中,他們重點(diǎn)討論了基于FPGA 的智能網(wǎng)卡(sNICs)和可編程交換機(jī)實(shí)現(xiàn)這一愿景的潛力.NP 和SmartNIC 涵蓋了從完全基于CPU 的設(shè)計(jì)到完全定制的硬件的范圍.基于CPU 的可編程N(yùn)IC 提供一個(gè)或多個(gè)通用處理器,算法可以在這些處理器上運(yùn)行.這種設(shè)計(jì)可以映射到FPGA 上.這樣可以保證推拉架構(gòu)的可編程的能力,并且擁有完全定制硬件的效率和吞吐量特性.Microsoft 公司的Firestone 和Greenberg 等人[82]提供了Azure 加速網(wǎng)絡(luò)(AccelNet)解決方案,其使用基于FPGA 的自定義Azure 智能網(wǎng)卡將主機(jī)網(wǎng)絡(luò)卸載到硬件.利用NP 的性能和FPGA 的可編程性,為客戶提供小于15ms 的TCP 延遲和32Gb/s 吞吐量.這種方案在運(yùn)行正常時(shí)缺乏日志記錄,在業(yè)務(wù)演進(jìn)過程中必須重新匹配軟件定制方案,增加了運(yùn)維成本.

4 針對(duì)新型高性能業(yè)務(wù)的下一代網(wǎng)絡(luò)處理器

下一代高性能業(yè)務(wù)是指隨著平臺(tái)軟硬件的迅速升級(jí),在網(wǎng)絡(luò)監(jiān)測(cè)、網(wǎng)絡(luò)傳輸、服務(wù)質(zhì)量保證、VR(virtual reality,虛擬現(xiàn)實(shí))以及高帶寬低時(shí)延終端應(yīng)用、網(wǎng)絡(luò)安全以及物聯(lián)網(wǎng)等方面新興的復(fù)雜業(yè)務(wù).這些業(yè)務(wù)一般需求更改時(shí)間快、性能要求高、針對(duì)性強(qiáng),部署在當(dāng)前的網(wǎng)絡(luò)處理器中難度很高.針對(duì)下一代高性能業(yè)務(wù),業(yè)界希望能夠設(shè)計(jì)出符合要求的專用網(wǎng)絡(luò)處理器滿足相關(guān)需求.網(wǎng)絡(luò)監(jiān)測(cè)和網(wǎng)絡(luò)傳輸?shù)幕疽笫?網(wǎng)絡(luò)處理器具備精確網(wǎng)絡(luò)測(cè)量能力[83],測(cè)量過程的自適應(yīng)性和精確性直接影響了監(jiān)測(cè)結(jié)果和傳輸效率.利用網(wǎng)絡(luò)處理器獲得的數(shù)據(jù)包元數(shù)據(jù)(metadata)能夠定制化地完成不同的服務(wù)質(zhì)量保障.在性能方面,具備多核的網(wǎng)絡(luò)處理器的核間調(diào)度、提高Cache 親和性以及分組向量化處理是當(dāng)前研究的熱點(diǎn).

4.1 精確網(wǎng)絡(luò)測(cè)量

網(wǎng)絡(luò)測(cè)量作為眾多網(wǎng)絡(luò)管理應(yīng)用的基礎(chǔ),其一直作為眾多學(xué)術(shù)研究者的重要研究領(lǐng)域.網(wǎng)絡(luò)處理器具有計(jì)算和存儲(chǔ)能力后,借助報(bào)文的往返所攜帶的各項(xiàng)遙測(cè)數(shù)據(jù)進(jìn)行非全域視角下的網(wǎng)絡(luò)資源視圖繪制,可以成為網(wǎng)絡(luò)測(cè)量方向的發(fā)展重點(diǎn).面向這一熱點(diǎn),NGNP 的設(shè)計(jì)對(duì)精確的網(wǎng)絡(luò)測(cè)量進(jìn)行了偏移.

高速捕獲和處理流量中的數(shù)據(jù)包,是NP 在精確網(wǎng)絡(luò)測(cè)量中的重要應(yīng)用.Ficara、Lu 以及Li[84-86]都利用了已有的網(wǎng)絡(luò)處理器實(shí)現(xiàn)架構(gòu),如Intel IXP2400 網(wǎng)絡(luò)處理器PCI-X 卡實(shí)現(xiàn)網(wǎng)絡(luò)流量測(cè)量,并在在此基礎(chǔ)上實(shí)現(xiàn)了二維矩陣測(cè)量器和入侵監(jiān)測(cè)系統(tǒng)等.這幾種方法在思想上貼近下一代網(wǎng)絡(luò)處理器架構(gòu)設(shè)計(jì),但是由于受限于已有架構(gòu),簡(jiǎn)單地通過下發(fā)基本測(cè)量任務(wù)使得其性能較差.Yang 等人[87]提出了一種被動(dòng)HTTP 流量性能測(cè)量的NP架構(gòu),將對(duì)象分為不同的源/目的IP 地址對(duì),并使用對(duì)象間請(qǐng)求時(shí)間間隔來(lái)判斷這些對(duì)象是否屬于同一頁(yè)面,從流量中實(shí)時(shí)地測(cè)量HTTP 性能.該系統(tǒng)可以在高速網(wǎng)絡(luò)中工作,可以部署在ISP 上.Yuan 等人[88]提出了用FPGA作為專用NP 原型平臺(tái)的ProgME 的方法.ProgME 可以整合應(yīng)用程序要求,調(diào)整自身緩存,以規(guī)避大量流帶來(lái)的可擴(kuò)展性挑戰(zhàn),并實(shí)現(xiàn)更好的應(yīng)用程序感知準(zhǔn)確性.其核心是基于流集的查詢答案引擎協(xié)處理器,它可以由用戶和應(yīng)用程序通過提議的流集組成語(yǔ)言進(jìn)行編程.上述文章基本實(shí)現(xiàn)的是NP 中的協(xié)處理器,所以存在適用場(chǎng)景小、性能以及可靠性差的缺陷.

依靠NP 的存儲(chǔ)實(shí)現(xiàn)NP 的智能測(cè)量任務(wù)下發(fā)以及測(cè)度值反饋分析,能極大地提高測(cè)量精度.Xie 等人[89]提出了一種在NP 上實(shí)現(xiàn)的新的動(dòng)態(tài)測(cè)量方法(dynamic measurement method,簡(jiǎn)稱DMM),它通過記錄在NP 存儲(chǔ)里的運(yùn)行時(shí)計(jì)劃操作和相應(yīng)時(shí)間戳來(lái)導(dǎo)出測(cè)量路徑;通過判斷派生路徑能否通過任務(wù)調(diào)度IMC 模型接收;通過判斷實(shí)際值是否滿足初始狀態(tài)的標(biāo)簽函數(shù)進(jìn)行可靠性驗(yàn)證.當(dāng)然,多核處理器進(jìn)行測(cè)量值的傳遞一定是具有一定開銷的,這種方法還是有優(yōu)化空間.Ferkouss 等人[90]提出了在100Gb/s 混合NP 上的Openflow 多表流水線的記錄及測(cè)量方案,該方案描述了幾種將這些流水線查找表鏈接起來(lái)并將它們映射到不同類型的NP 存儲(chǔ)器設(shè)計(jì)方案.SDN 網(wǎng)絡(luò)應(yīng)用程序的要求可以在這種NP 上靈活地實(shí)現(xiàn),以便實(shí)現(xiàn)智能測(cè)量.但是,該方法沒有使用IXIA硬件流量生成器以線速進(jìn)行詳盡的性能評(píng)估,這種NP 的性能暫時(shí)未知.

平衡測(cè)量和轉(zhuǎn)發(fā)的CPU 負(fù)載以及Cache、存儲(chǔ)的利用率是針對(duì)下一代高性能測(cè)量任務(wù)的NP 需要關(guān)注的重點(diǎn).華盛頓大學(xué)的Liu 等人[91]研究如何使用NP 的加速服務(wù)器在數(shù)據(jù)中心執(zhí)行基于微服務(wù)的應(yīng)用程序.文章提出了通過適當(dāng)?shù)貙y(cè)量微服務(wù)卸載到SmartNIC 的低功耗處理器上而不會(huì)造成延遲損失的負(fù)載均衡方法,這種方法依然面臨網(wǎng)絡(luò)流量路由和負(fù)載平衡、異構(gòu)硬件上的微服務(wù)布局以及共享智能網(wǎng)卡資源的爭(zhēng)奪等嚴(yán)重挑戰(zhàn).在利用測(cè)量結(jié)果進(jìn)行擁塞控制方面,Narayan 等人[92]提出將擁塞控制從數(shù)據(jù)路徑轉(zhuǎn)移到一個(gè)獨(dú)立的NP 代理中.這個(gè)必須同時(shí)提供一個(gè)表達(dá)性的擁塞控制API 和一個(gè)規(guī)范,供數(shù)據(jù)路徑設(shè)計(jì)者實(shí)現(xiàn)和部署.他們提出了一個(gè)用于擁塞控制的API、數(shù)據(jù)路徑原語(yǔ)和一個(gè)用戶空間代理設(shè)計(jì),該設(shè)計(jì)使用批處理方法與數(shù)據(jù)路徑通信.但是這種方法的NP 設(shè)計(jì)復(fù)雜,無(wú)論部署在端節(jié)點(diǎn)還是重要的中間路由設(shè)備上都不適合,定位不清晰.

4.2 基于metadata的QoS保障

服務(wù)質(zhì)量保障在硬件上的實(shí)現(xiàn)一直是學(xué)術(shù)屆的研究熱點(diǎn).在數(shù)據(jù)平面上獲取分組的元數(shù)據(jù)后,對(duì)數(shù)據(jù)傳輸鏈路以及流量進(jìn)行簡(jiǎn)單的閾值分析,對(duì)相關(guān)服務(wù)質(zhì)量進(jìn)行保障在網(wǎng)絡(luò)處理器變得可行.

有效進(jìn)行分組分類、保障特定業(yè)務(wù)的分組延遲和丟失,是 NGNP 在 QoS 保障上的重點(diǎn)研究方向.Avudaiammal 等人[93]在基于通用NP 架構(gòu)上實(shí)現(xiàn)并驗(yàn)證了高速、低復(fù)雜度的基于啟發(fā)式的專用分組分類(high speed packet classifier,簡(jiǎn)稱HASPC)機(jī)制可以執(zhí)行多維分組分類.通過多位的Trie 數(shù)據(jù)結(jié)構(gòu)用于對(duì)地址前綴對(duì)的搜索,從而有效地聚合了協(xié)議和端口字段的搜索結(jié)果,并將該方法應(yīng)用到IXP 2400 上.但是他們沒有提出通用分組分類高效方法,只對(duì)多媒體分組進(jìn)行QoS 保障.Park 和Lee 等人[94]提出了基于流的動(dòng)態(tài)帶寬控制方法的網(wǎng)絡(luò)處理器體系結(jié)構(gòu).他們提出的FDBC(flow-based dynamic bandwidth control,基于流的動(dòng)態(tài)帶寬控制)通過使用流分類、識(shí)別活動(dòng)流并重新計(jì)算活動(dòng)帶寬,通過流量工程的方法屏蔽網(wǎng)絡(luò)拓?fù)渑渲?以便在以太網(wǎng)上提供有效的QoS.該方法的缺點(diǎn)是:當(dāng)傳入流量的總大小超過最大上游帶寬時(shí),無(wú)論服務(wù)類型或流的屬性如何,HLS 都會(huì)丟棄流量.

面向IP 網(wǎng)的傳統(tǒng)服務(wù),Li 等人[95]在IXP2400 架構(gòu)上改進(jìn)了一種傳統(tǒng)的ACL 算法,將TCP 的ASK 和RST添加到1 級(jí)表分類索引中,減少了規(guī)則冗余.通過微碼實(shí)現(xiàn)的IP QoS 體系結(jié)構(gòu),利用CAR 處理器實(shí)現(xiàn)了帶寬限制功能,滿足數(shù)據(jù)線速轉(zhuǎn)發(fā),有效地保證多媒體服務(wù)的低延時(shí)需求.同樣地,Saleem 等人[96]利用DiffServ 架構(gòu)對(duì)IXP2400 編程,添加緩存單元,以便在查找操作期間減少對(duì)SRAM(static random access memory,靜態(tài)隨機(jī)存取存儲(chǔ)器)的訪問,使得總體速度提高并減少延遲.當(dāng)然,兩種方法基于SDK3.1 開發(fā),沒有成體系結(jié)構(gòu)地更改核心NP的架構(gòu).Nguyen 等人[97]提出了一種針對(duì)NP 的多模式完全可重新配置路由器.設(shè)計(jì)NP 支持混合式分組交換體系結(jié)構(gòu),該體系結(jié)構(gòu)可以在運(yùn)行時(shí)進(jìn)行動(dòng)態(tài)重新配置,以在蟲洞和虛擬直通交換方案之間進(jìn)行交換.配備了QoS驅(qū)動(dòng)的仲裁器保證了無(wú)需預(yù)留資源的吞吐量保證服務(wù),基于優(yōu)先級(jí)繼承仲裁機(jī)制有效地利用了網(wǎng)絡(luò)資源,具有動(dòng)態(tài)的期限可感知的重新路由機(jī)制.但是該方案成本較高,沒有進(jìn)行負(fù)載均衡,等待CMOS 技術(shù)對(duì)其進(jìn)行綜合評(píng)估.

在擁塞控制的流量管理架構(gòu)方面,Benacer 等人[98]提出了一種支持5G 傳輸?shù)牧髁抗芾砥骷軜?gòu).他們?cè)O(shè)計(jì)了基于FPGA 的NP 原型對(duì)傳入流量(數(shù)據(jù)包)進(jìn)行管制、調(diào)度、整形和排隊(duì)的模型.流量管理以要滿足每個(gè)流所允許的帶寬配額并強(qiáng)制執(zhí)行所需的QoS 目標(biāo)的方式,對(duì)要發(fā)送的數(shù)據(jù)包施加約束.方法實(shí)現(xiàn)在Xilinx 板卡上,注重可編程性,通過流量發(fā)生器進(jìn)行測(cè)試,其真實(shí)效果未知.Iqbal 等人[99]重新設(shè)計(jì)了NP 中的數(shù)據(jù)包調(diào)度方案,以在最小化亂序數(shù)據(jù)包的同時(shí),提高網(wǎng)絡(luò)處理器的吞吐量.其調(diào)度策略試圖通過保持流局部性來(lái)維護(hù)數(shù)據(jù)包順序,通過識(shí)別激進(jìn)流來(lái)最大程度地減少流從一個(gè)核心到另一個(gè)核心的遷移,并在多個(gè)服務(wù)之間劃分核心,以獲得指令緩存局部性.此外,調(diào)度程序?qū)⒒诠5脑O(shè)計(jì)擴(kuò)展到了多服務(wù)路由器,其中,內(nèi)核被動(dòng)態(tài)分配給服務(wù),以改善I-Cache 局部性.該方案通過減少亂序包來(lái)獲得吞吐的QoS 性能,過多的調(diào)度設(shè)計(jì)增加了數(shù)據(jù)平面和控制平面的耦合.

NP 中,QoS 調(diào)度器的性能直接影響新QoS 需求層出不窮背景下的NP 性能和部分靈活性.Yu 等人[100]在線卡中利用NP 提出了基于DVFS(dynamic voltage and frequency scaling,動(dòng)態(tài)電壓頻率調(diào)整)的數(shù)據(jù)包QoS 調(diào)度器設(shè)計(jì)方法,該方法使用隊(duì)列長(zhǎng)度(QL)和鏈接利用率來(lái)控制線卡中的執(zhí)行速率.通過不同的頻率縮放策略,保障了節(jié)省能源時(shí)的處理器性能下降,在一定意義上解決了功耗和QoS 調(diào)度器的性能均衡.該方法基于預(yù)測(cè)隊(duì)列長(zhǎng)度,但在預(yù)測(cè)時(shí)只是根據(jù)階段時(shí)間內(nèi)的隊(duì)列長(zhǎng)度均值,很難應(yīng)對(duì)bufferbloat 情況,容易導(dǎo)致全方案失效.Paul 等人[101]使用機(jī)器(深度)學(xué)習(xí)技術(shù)為智能IP 路由器中的多核NP 開發(fā)了QoS 增強(qiáng)型智能調(diào)度程序,他們將NP 每個(gè)內(nèi)核都以利用率驅(qū)動(dòng)的期限感知模式處理傳入流量,并且使用學(xué)習(xí)算法,在運(yùn)行時(shí)以智能方式動(dòng)態(tài)地最小化負(fù)載不平衡,保持內(nèi)核之間的穩(wěn)態(tài)負(fù)載分配.該方法最大程度地減少每個(gè)內(nèi)核的計(jì)算開銷,獲得更高的吞吐量、更低的平均等待時(shí)間值和PLR(packet loss rate,丟包率).但是機(jī)器學(xué)習(xí)本身就有極大的開銷,計(jì)算和存儲(chǔ)資源在學(xué)習(xí)方法加載過程中會(huì)造成轉(zhuǎn)發(fā)能力下降.由于NP 本身架構(gòu)受限,該方法與真正做到在線學(xué)習(xí)調(diào)度還有差距.

4.3 NP的處理優(yōu)化以及應(yīng)用加速

針對(duì)眾多的高性能業(yè)務(wù),網(wǎng)絡(luò)處理器在設(shè)計(jì)架構(gòu)上需要進(jìn)行改進(jìn),加速分組的處理能力以及針對(duì)特定應(yīng)用進(jìn)行包分類后的處理優(yōu)化.

提高Cache 親和性能夠提高NP 多核處理器的處理性能,許多多核處理器實(shí)時(shí)操作系統(tǒng)提供了通過設(shè)置相似性掩碼來(lái)提高任務(wù)遷移到處理器指定子集的可能性.Bonifaci 等人[102]提出了強(qiáng)任意處理器相似性調(diào)度的概念,利用層次(層流)親和力掩碼的系統(tǒng)硬件拓?fù)浣Y(jié)構(gòu),在最早截至優(yōu)先(EDF)調(diào)度策略上實(shí)現(xiàn)對(duì)強(qiáng)大的分層處理器相似性的支持.該方法強(qiáng)調(diào)降低處理任務(wù)的時(shí)間復(fù)雜度,將性能提高到O(m2)左右.但是親和性實(shí)現(xiàn)原理復(fù)雜,可調(diào)度性損失過大.Jang 等人[103]提出了多核NP 的新穎網(wǎng)絡(luò)過程調(diào)度方案MiAMI,其根據(jù)處理器緩存布局、通信強(qiáng)度和處理器負(fù)載來(lái)確定最佳處理器親和力.該方法可以適應(yīng)網(wǎng)絡(luò)和處理器的動(dòng)態(tài)負(fù)載,同時(shí)以最少的處理器資源需求充分利用網(wǎng)絡(luò)帶寬.在Intel SMP Symmetrical Multi-Processing,對(duì)稱多處理和AMD NUMA(non uniform memory access architecture,非統(tǒng)一內(nèi)存訪問)服務(wù)器上,處理器利用率的有效性改善率分別達(dá)到65%和63%.但是,該方法的缺陷是沒有考慮存儲(chǔ)資源的I/O 性能,擴(kuò)展到外圍設(shè)備的流程相對(duì)復(fù)雜.

在NP 處理多媒體流服務(wù)、實(shí)時(shí)或者是高性能計(jì)算應(yīng)用服務(wù)時(shí),需要處理器周期多、提高時(shí)鐘頻率和微體系結(jié)構(gòu)效率的困難.Ortiz 等人[104]提出并分析了幾種配置,以在NP 可用的不同處理器核之間分配網(wǎng)絡(luò)接口.該方法根據(jù)相應(yīng)的通信任務(wù)與處理位置,優(yōu)化存儲(chǔ)不同數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)器的接近程度以及處理核特性之間的相關(guān)性.該方法使用多個(gè)內(nèi)核加速給定連接的通信路徑,利用多個(gè)內(nèi)核同時(shí)處理屬于相同或不同連接的數(shù)據(jù)包的補(bǔ)充.Hanforda 等人[105]基于追蹤高速TCP 流網(wǎng)絡(luò)設(shè)備瓶頸的方法,將協(xié)議處理效率定義為系統(tǒng)資源(例如CPU 和緩存)計(jì)算量.在多核NP 終端系統(tǒng)中,將網(wǎng)絡(luò)中斷,傳輸和應(yīng)用程序處理接收過程分配、甚至綁定給相關(guān)親和的特定處理器內(nèi)核.但是這兩種方法同樣實(shí)現(xiàn)困難,算法復(fù)雜度過高.

NP 使用多個(gè)數(shù)據(jù)包處理元素提高數(shù)據(jù)包處理的并行性,是處理優(yōu)化的重要研究點(diǎn).OK 等人[106]提出了一種用于具有多個(gè)分組PE 的NP 新序列保留分組調(diào)度器,使相同流的數(shù)據(jù)包由不同的PE 并行處理,調(diào)度程序通過利用預(yù)先估計(jì)的數(shù)據(jù)包來(lái)保留每個(gè)流的輸出數(shù)據(jù)包的序列處理時(shí)間.該方法的缺陷是沒有關(guān)注成本效益以及分組處理的準(zhǔn)確性.Roy 等人[107]提出了16 核的類NP 多核加速計(jì)算體系架構(gòu),其中的每個(gè)核均配備有專用硬件,可在每次硬件加速器調(diào)用時(shí)快速切換任務(wù).控制器偵聽到重點(diǎn)任務(wù)時(shí),將任務(wù)搶占請(qǐng)求發(fā)送到內(nèi)核,減少了實(shí)時(shí)任務(wù)的延遲.該方法利用優(yōu)先級(jí)閾值化技術(shù),避免了低級(jí)的任務(wù)和行頭阻塞的延遲不確定性.遺憾的是,該方法芯片化過程較慢,僅僅用28nm 技術(shù)制作,但是正在研發(fā)最新版本,市場(chǎng)前景光明.

減少NP 內(nèi)的隊(duì)列長(zhǎng)度,可以提高多數(shù)應(yīng)用相應(yīng)速度.Satheesh 等人[108]提出了一個(gè)新的動(dòng)態(tài)重新配置NP 的波動(dòng)流量排隊(duì)系統(tǒng),該方法使用Kolmogorov 微分方程分析了NP 中的動(dòng)態(tài)可重配置排隊(duì)模型,并獲得了PE 數(shù)量、隊(duì)列長(zhǎng)度、平均等待時(shí)間和重配置時(shí)間的上限.該方法能夠動(dòng)態(tài)地調(diào)節(jié)被使用的處理器數(shù)量,當(dāng)隊(duì)列增大到指定閾值時(shí)投入備用處理器,并在隊(duì)列減小時(shí)動(dòng)態(tài)減小.Avudaiammal[93]的文章里也有這種設(shè)計(jì)思想,有效地聚合了協(xié)議和端口字段的搜索結(jié)果,以分配不同的處理器核.兩個(gè)方法也是基于原有NP 架構(gòu)IXP2400,很難大幅度提高性能.Steven 等人[109]提出了一種基于數(shù)據(jù)流微體系結(jié)構(gòu)的NP 設(shè)計(jì)方法,能夠解決資源虛擬化和數(shù)據(jù)包處理的并行性問題.當(dāng)然,這項(xiàng)研究仍在進(jìn)行中,如何將塊級(jí)數(shù)據(jù)流、連接性和運(yùn)算符涵蓋進(jìn)入這種NP 體系結(jié)構(gòu)是一個(gè)難點(diǎn).表2 是文中提到的不同NGNP 設(shè)計(jì)方案優(yōu)勢(shì)及不足對(duì)比.

Table 2 Summary of designs of next generation network processor in existing study表2 現(xiàn)有下一代網(wǎng)絡(luò)處理器設(shè)計(jì)方案總結(jié)

Table 2 Summary of designs of next generation network processor in existing study (Continued 1)表2 現(xiàn)有下一代網(wǎng)絡(luò)處理器設(shè)計(jì)方案總結(jié)(續(xù)1)

Table 2 Summary of designs of next generation network processor in existing study (Continued 2)表2 現(xiàn)有下一代網(wǎng)絡(luò)處理器設(shè)計(jì)方案總結(jié)(續(xù)2)

5 下一代網(wǎng)絡(luò)處理器的工業(yè)化及評(píng)測(cè)

5.1 網(wǎng)絡(luò)處理器的工業(yè)化

國(guó)際上,作為最早的網(wǎng)絡(luò)處理器生產(chǎn)廠家之一,Motorola 于2000 年生產(chǎn)了面向中低端應(yīng)用的網(wǎng)絡(luò)處理器C5,其只能執(zhí)行第7 層以下的分組分類作業(yè).雖然能力較弱,但作為一種獨(dú)立網(wǎng)絡(luò)轉(zhuǎn)發(fā)處理芯片,其出現(xiàn)代表著NP 開始了工業(yè)化之路.IBM 于2002 年生產(chǎn)了PowerNP NP4GS3,其擁有16 個(gè)協(xié)議處理器、7 個(gè)專業(yè)協(xié)處理器和一個(gè)PowerPC 核心處理器,具有2.5Gb/s 的報(bào)文處理能力.同樣作為一款廉價(jià)處理器,其占據(jù)了國(guó)際國(guó)內(nèi)大部分市場(chǎng),但處理性能依舊不佳.2005 年,Intel 推出了IXP42X,其逐漸開始爭(zhēng)奪業(yè)界主流位置,這款產(chǎn)品的處理單元內(nèi)繼承了數(shù)十個(gè)以太網(wǎng)口,內(nèi)置了加速功能降低系統(tǒng)成本.這幾款產(chǎn)品出現(xiàn)的年代網(wǎng)絡(luò)業(yè)務(wù)簡(jiǎn)單,智能終端尚未普及,所以其靈活性重視不夠,性能上差強(qiáng)人意.

隨著網(wǎng)絡(luò)技術(shù)創(chuàng)新浪潮出現(xiàn),傳統(tǒng)網(wǎng)絡(luò)處理器開始顧此失彼,逐漸被市場(chǎng)淘汰[110].2013 年,Cisco 推出了nPower X1,其具備高可擴(kuò)展性,也是首款支持400Gb/s 吞吐率的單芯片,引領(lǐng)了利用新型可編程技術(shù)的網(wǎng)絡(luò)處理器產(chǎn)業(yè)化趨勢(shì).創(chuàng)新性地,其為軟件定義網(wǎng)絡(luò)構(gòu)建,支持在運(yùn)行中重新編程,大幅簡(jiǎn)化了網(wǎng)絡(luò)運(yùn)營(yíng).2015 年,Mellanox 公司發(fā)布了NP-5 網(wǎng)絡(luò)處理器,作為一款240Gb/s 線速網(wǎng)絡(luò)處理器,其峰值處理數(shù)據(jù)路徑和CoS 分類高達(dá) 480Gb/s.同年,ExpressPlus 推出了 Juniper 處理器,每秒可執(zhí)行超過 15 億次過濾操作,并可擴(kuò)展到500Gb/s(1Tb/s 半雙工).作為一款面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)的下一代網(wǎng)絡(luò)處理器,其利用3D 內(nèi)存的多級(jí)緩存架構(gòu),與以前的解決方案相比,物理占用空間減少了20 倍,優(yōu)化了功耗和空間要求.Nokia 在2017 年推出了世界首款可支持3.0Tbit/s 轉(zhuǎn)發(fā)的網(wǎng)絡(luò)處理器,利用網(wǎng)絡(luò)元數(shù)據(jù)作為安全解決方案的一部分,是針對(duì)新型高性能業(yè)務(wù)網(wǎng)絡(luò)處理的產(chǎn)品代表之一;同年,Cisco 設(shè)計(jì)了可支持400Gb/s 轉(zhuǎn)發(fā)的多核網(wǎng)絡(luò)處理器,它包含672 個(gè)處理器核心,擁有著大于6.5Tb/s 的核心I/O 帶寬,外部DRAM(dynamic random access memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)用于大型數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)包緩沖.2020 年初,收購(gòu)了Freescale 的NXP 公司推出了S32G,該設(shè)備是第一款將具有ASILD 安全性和網(wǎng)絡(luò)加速功能(micro control unit,簡(jiǎn)稱MCU)集成車載網(wǎng)絡(luò)處理器,并且具有分組轉(zhuǎn)發(fā)引擎用于以太網(wǎng)加速功能.當(dāng)然,這幾款產(chǎn)品設(shè)計(jì)與生產(chǎn)成本較高,市場(chǎng)化進(jìn)程緩慢,大多在自家高端路由器或者交換機(jī)產(chǎn)品中應(yīng)用.

中國(guó)的網(wǎng)絡(luò)通信設(shè)備制造商在2016 年以前以采購(gòu)國(guó)外網(wǎng)絡(luò)處理器芯片為主,以便獲得硬件發(fā)展紅利,將創(chuàng)新與產(chǎn)能焦點(diǎn)集中在網(wǎng)絡(luò)業(yè)務(wù)出新和5G 通信網(wǎng)絡(luò)研究與建設(shè)上.然而隨著中美貿(mào)易爭(zhēng)端開始,2018 年4 月16日,美國(guó)商務(wù)部法部發(fā)布公告,聲稱未來(lái)7 年內(nèi)禁止中興向美國(guó)企業(yè)購(gòu)買包含網(wǎng)絡(luò)處理器芯片在內(nèi)的“敏感”設(shè)備,該事件直至同年7 月12 日才以中興向美國(guó)支付近10 億美元告一段落.然而一年后,2019 年5 月15 日,美國(guó)商務(wù)部將華為和其下屬子公司列入出口管制名單,華為產(chǎn)業(yè)下的多款中高端路由器產(chǎn)品網(wǎng)絡(luò)處理器芯片斷供.中國(guó)業(yè)界及學(xué)術(shù)界逐漸認(rèn)識(shí)到網(wǎng)絡(luò)處理器芯片作為一種重要網(wǎng)絡(luò)設(shè)備元器件,其設(shè)計(jì)與生產(chǎn)應(yīng)當(dāng)至少具備自主可控能力,在特殊時(shí)期保證網(wǎng)絡(luò)處理器芯片的供應(yīng).

2019 年,華為和中興都開始進(jìn)行自主可控的下一代網(wǎng)絡(luò)處理器研發(fā)工作,設(shè)計(jì)方案的基本要求是,使得網(wǎng)絡(luò)處理器具備高性能、低時(shí)延、可編程甚至是全流可視化.華為于2019 年初推出了Solar S 下一代網(wǎng)絡(luò)處理器設(shè)計(jì),其可以靈活地利用高級(jí)編程語(yǔ)言下發(fā)業(yè)務(wù),保障低時(shí)延的同時(shí),利用特有的存儲(chǔ)結(jié)構(gòu),將流量的特征信息在時(shí)間域內(nèi)存儲(chǔ),以便實(shí)時(shí)網(wǎng)絡(luò)管理和精確測(cè)量,并且大多數(shù)開始應(yīng)用于華為的高端路由器產(chǎn)品.同年,中興發(fā)布了一款擁有先進(jìn)內(nèi)核互聯(lián)結(jié)構(gòu)、大容量微碼指令空間、層次化的流量管理的100Gb/s 網(wǎng)絡(luò)處理器.在此基礎(chǔ)上,設(shè)計(jì)了這款處理器的迭代更新版本原型系統(tǒng),升級(jí)內(nèi)部體系架構(gòu),利用多核的性能提升轉(zhuǎn)發(fā)速度.這兩款國(guó)產(chǎn)化網(wǎng)絡(luò)處理器與國(guó)際市場(chǎng)主流處理器相比在性能上相差無(wú)異,但是在芯片工藝、產(chǎn)品能耗上還有差距,亟待彌補(bǔ).

5.2 部分主流網(wǎng)絡(luò)處理器的性能評(píng)測(cè)

一般地,對(duì)網(wǎng)絡(luò)處理器分為4 個(gè)層次,即硬件指令層、模塊任務(wù)層、應(yīng)用功能層和系統(tǒng)平臺(tái)層來(lái)進(jìn)行性能評(píng)估.通過在每一個(gè)層次上逐步分析,可將多級(jí)并行的系統(tǒng)性能評(píng)估問題轉(zhuǎn)化為簡(jiǎn)單的串行程序性能分析,或者是簡(jiǎn)單的并行程序性能分析[111].在這種評(píng)估模型的基礎(chǔ)上,利用網(wǎng)絡(luò)測(cè)試設(shè)備搭建相關(guān)拓?fù)?連接測(cè)評(píng)儀器、控制器以及NP 芯片(原型系統(tǒng))開始測(cè)評(píng)被測(cè)設(shè)計(jì)性能.對(duì)于芯片數(shù)據(jù)包的處理能力的評(píng)測(cè),一般采用M/M/1 排隊(duì)模型進(jìn)行評(píng)估,利用流量生成器完成流量生成.接口驅(qū)動(dòng)模塊負(fù)責(zé)將數(shù)據(jù)流發(fā)送給被測(cè)NP.NP 將處理后的數(shù)據(jù)發(fā)送給平臺(tái)的接口響應(yīng)模塊.最后,接口響應(yīng)模塊將數(shù)據(jù)發(fā)送給相應(yīng)評(píng)測(cè)模塊,模塊內(nèi)置了相關(guān)算法對(duì)正確性和性能進(jìn)行統(tǒng)計(jì)評(píng)測(cè).

現(xiàn)有的網(wǎng)絡(luò)測(cè)試設(shè)備廠商一般有思博倫、安捷倫、IXIa 等.一般地,NP 芯片的性能測(cè)試組網(wǎng)方式如圖3 所示.圖3 中,PC 機(jī)通過串行COM 接口對(duì)網(wǎng)絡(luò)處理器進(jìn)行配置和管理.其硬件編譯環(huán)境通過JTAG(joint test action group,聯(lián)合測(cè)試工作組)接口與網(wǎng)絡(luò)處理器相連進(jìn)行調(diào)試診斷.測(cè)試儀產(chǎn)生、發(fā)出以及接收流量也由PC 機(jī)進(jìn)行控制,測(cè)試儀與網(wǎng)絡(luò)處理器原型之間通過萬(wàn)兆Ethernet 接口進(jìn)行流量傳輸、測(cè)試.針對(duì)上述產(chǎn)品,本文搭建了相關(guān)測(cè)試平臺(tái),購(gòu)買并測(cè)試了C5,NP4GS3 和IXP42X 這3 款NP 的吞吐率以及處理時(shí)延.吞吐率為測(cè)試儀線速發(fā)送測(cè)試報(bào)文得到的速率統(tǒng)計(jì)信息,時(shí)延為利用測(cè)試儀時(shí)間統(tǒng)計(jì)功能得到的報(bào)文從發(fā)送到返回所消耗時(shí)間的一半.對(duì)于剛剛上市、價(jià)格昂貴無(wú)法購(gòu)買的下一代網(wǎng)絡(luò)處理器,本文通過查詢企業(yè)產(chǎn)品手冊(cè)、相關(guān)文獻(xiàn)等對(duì)結(jié)果進(jìn)行了統(tǒng)計(jì).測(cè)試與統(tǒng)計(jì)結(jié)果展示于表3.

Fig.3 NP testbed圖3 NP 性能測(cè)試床

Table 3 Performance of some network processor products表3 部分網(wǎng)絡(luò)處理器產(chǎn)品性能

表3 部分網(wǎng)絡(luò)處理器產(chǎn)品性能(續(xù))Table 3 Performance of some network processor products (Continued)

6 未來(lái)發(fā)展趨勢(shì)

盡管目前的網(wǎng)絡(luò)處理器都考慮了可編程性和處理轉(zhuǎn)發(fā)速度,但是沒有在頂層設(shè)計(jì)上兼顧靈活和性能[112].網(wǎng)絡(luò)處理器可編程性多是借助開發(fā)平臺(tái)或者是使用語(yǔ)言的先天屬性,在此基礎(chǔ)上調(diào)整相關(guān)數(shù)據(jù)平面控制平面的處理架構(gòu)、元器件編排方式以及業(yè)務(wù)處理流水等,導(dǎo)致靈活和性能總是無(wú)法收斂到最優(yōu)程度[113].

6.1 高性能可演進(jìn)下一代網(wǎng)絡(luò)處理器架構(gòu)

為了解決上述問題,下一代網(wǎng)絡(luò)處理器應(yīng)當(dāng)朝著高性能、可演進(jìn)的融合架構(gòu)方向發(fā)展.針對(duì)處理優(yōu)化和應(yīng)用加速等高性能要求,融合架構(gòu)的研究應(yīng)當(dāng)包括多級(jí)分組緩存管理框架、CPU 分組調(diào)度方法、可動(dòng)態(tài)重構(gòu)的應(yīng)用加速等方面.一方面優(yōu)化改進(jìn)網(wǎng)絡(luò)處理器基礎(chǔ)設(shè)計(jì)架構(gòu);另一方面,則面向業(yè)務(wù)應(yīng)用的加速進(jìn)行實(shí)現(xiàn)[114],并為上層提供相應(yīng)的基礎(chǔ)開發(fā)接口.在這種架構(gòu)下,網(wǎng)絡(luò)處理器的接口線速和轉(zhuǎn)發(fā)能力都被良好地設(shè)計(jì)和實(shí)現(xiàn).融合架構(gòu)的可編程性、可演進(jìn)性主要體現(xiàn)在硬件資源管理和可擴(kuò)展API 編程接口的研究.基于上述優(yōu)化加速的平臺(tái)架構(gòu),下一代網(wǎng)絡(luò)處理器應(yīng)當(dāng)為用戶提供高效、良定義、可擴(kuò)展的API 接口和開發(fā)模型,支撐上層業(yè)務(wù)應(yīng)用的開發(fā).提供平臺(tái)無(wú)關(guān)的API 接口、支持高級(jí)語(yǔ)言編程不僅方便了業(yè)務(wù)應(yīng)用開發(fā)周期,也使得所設(shè)計(jì)的網(wǎng)絡(luò)處理器的場(chǎng)景適應(yīng)能力增強(qiáng).在當(dāng)前網(wǎng)絡(luò)技術(shù)和人工智能結(jié)合的發(fā)展熱點(diǎn)下,融合架構(gòu)能夠擁有足夠的資源將部分學(xué)習(xí)方法卸載進(jìn)入網(wǎng)絡(luò)處理器,細(xì)粒度、高效率地實(shí)現(xiàn)包轉(zhuǎn)發(fā)處理.

現(xiàn)有的網(wǎng)絡(luò)處理器通?;诙郈PU 核加硬件協(xié)處理器陣列架構(gòu)實(shí)現(xiàn),加解密、查表等協(xié)處理器以ASIC 電路形式實(shí)現(xiàn),可以有效提升網(wǎng)絡(luò)處理器進(jìn)行分組轉(zhuǎn)發(fā)處理的性能.然而隨著硬件協(xié)處理器開發(fā)周期長(zhǎng)[115],且功能固定,難以滿足網(wǎng)絡(luò)處理可演化性需求以及面向多業(yè)務(wù)場(chǎng)景的應(yīng)用需求.綜上,本文提出了基于通用多核CPU加FPGA 的高性能可演進(jìn)下一代網(wǎng)絡(luò)處理器(high performance evolvable network processor,簡(jiǎn)稱HPENP)架構(gòu).HPENP 設(shè)計(jì)的軟硬件協(xié)同可擴(kuò)展分組處理架構(gòu)一方面利用通用多核CPU 的可編程靈活性和并發(fā)處理能力,支撐網(wǎng)絡(luò)分組深度處理[116];另一方面,利用FPGA 具有的硬件可重構(gòu)特性,支持?jǐn)?shù)據(jù)平面處理及加速模塊的按需部署[117].HPENP 具有轉(zhuǎn)發(fā)模塊與硬件加速模塊的混合編排架構(gòu),可在此基礎(chǔ)上實(shí)現(xiàn)基于模塊ID 映射表的流水線功能動(dòng)態(tài)擴(kuò)展方法,有效支持軟硬件功能的動(dòng)態(tài)加載,提升網(wǎng)絡(luò)處理器面向多場(chǎng)景的應(yīng)用能力和未來(lái)新型業(yè)務(wù)協(xié)議的演化能力.

6.2 軟硬件協(xié)同分組處理流水線

高性能可演進(jìn)的下一代網(wǎng)絡(luò)處理器體系結(jié)構(gòu)基于通用多核處理器及可重構(gòu)FPGA 硬件構(gòu)建,其中的設(shè)計(jì)重點(diǎn)是實(shí)現(xiàn)軟硬件協(xié)同的分組處理流水線.HPENP 支持CPU+FPGA 平臺(tái)軟硬件高效數(shù)據(jù)通信,并且利用轉(zhuǎn)發(fā)模塊與硬件加速模塊的混合編排方法.設(shè)計(jì)采用可編程硬件流水線、硬件流水線擴(kuò)展、軟件模塊擴(kuò)展以及軟硬件協(xié)同擴(kuò)展這4 種方式提升網(wǎng)絡(luò)處理器可編程及可演進(jìn)能力,滿足網(wǎng)絡(luò)設(shè)備功能擴(kuò)展的性能和靈活性要求.

如圖4 所示,軟硬件流水線均包含多個(gè)在CPU 上可按需動(dòng)態(tài)加載的擴(kuò)展模塊,實(shí)現(xiàn)對(duì)不同處理功能的擴(kuò)展.動(dòng)態(tài)擴(kuò)展模塊一方面可以實(shí)現(xiàn)通用路由交換處理的“慢速路徑”功能(如分片重組),也可擴(kuò)展實(shí)現(xiàn)一些新的如按需部署的安全防護(hù)網(wǎng)絡(luò)功能.可定制處理模塊還可將目的IP 地址是本地的分組發(fā)送到控制平面處理.動(dòng)態(tài)擴(kuò)展模塊和控制平面軟件通過網(wǎng)絡(luò)接口發(fā)送分組時(shí),該分組首先會(huì)送給FPGA 中由可定制處理模塊組成的硬件流水線處理.軟件發(fā)出的分組可以對(duì)硬件流水線進(jìn)行重入,進(jìn)一步增加了下一代網(wǎng)絡(luò)處理器處理的靈活性.由國(guó)產(chǎn)CPU 內(nèi)搭載的協(xié)議棧、驅(qū)動(dòng)以及內(nèi)核等通過良定義接口實(shí)現(xiàn)用戶空間的交互,完成擴(kuò)展性能.

Fig.4 HPENP’s architecture圖4 HPENP 體系架構(gòu)

6.3 多級(jí)緩存與分組調(diào)度

HPENP 架構(gòu)實(shí)現(xiàn)Cache、內(nèi)存和外存相結(jié)合的多層次分組緩存管理,以打破“存儲(chǔ)墻”問題對(duì)網(wǎng)絡(luò)處理器系統(tǒng)性能瓶頸的影響.網(wǎng)絡(luò)流量到緩存的調(diào)度與映射優(yōu)化算法、多層次分組緩存動(dòng)態(tài)管理與調(diào)度機(jī)制融入到了本架構(gòu)設(shè)計(jì)中.借鑒計(jì)算機(jī)體系架構(gòu)的多級(jí)緩存設(shè)計(jì)模型[118],基于CPU Cache、內(nèi)存、FPGA 內(nèi)部RAM 和DDR外存設(shè)計(jì)多層次存儲(chǔ)框架實(shí)現(xiàn)多級(jí)緩存的分組統(tǒng)一管理與調(diào)度.針對(duì)突發(fā)數(shù)據(jù)流的可導(dǎo)致?lián)砣麪顩r,HPENP 具備動(dòng)態(tài)緩存分配方案,引用大容量DRAM 作為備用隊(duì)列緩存存儲(chǔ)溢出流量.

HPENP 支持基于多核分組路徑感知的分組調(diào)度技術(shù),如圖5 所示.

Fig.5 HPENP’s packet scheduling model圖5 HPENP 分組調(diào)度模型

分組調(diào)度感知器按分組特征預(yù)先分類進(jìn)入CPU 的分組,生成無(wú)處理分支的報(bào)文向量,以減少CPU TLB(translation lookaside buffer,轉(zhuǎn)譯后備緩沖器)和cache 失效.輸入隊(duì)列經(jīng)過解析器、匹配器以及分配器進(jìn)行分組的路徑處理,以生成輸出隊(duì)列.各個(gè)硬件處理單元通過多項(xiàng)用戶定義處理功能,降低分組IO 過程中的性能損失,提升并行化處理性能.

6.4 編程接口及進(jìn)程實(shí)現(xiàn)

HPENP 將CPU 核、FPGA 邏輯資源、內(nèi)外部存儲(chǔ)資源進(jìn)行統(tǒng)一抽象,并支持按需配置和動(dòng)態(tài)分配,完成分組業(yè)務(wù)應(yīng)用到系統(tǒng)各類資源的重構(gòu)、映射與調(diào)度.HPENP 資源管理與編程接口主要研究層次化的資源管理和可擴(kuò)展API 編程接口,基于優(yōu)化的網(wǎng)絡(luò)處理器平臺(tái)架構(gòu),為用戶提供可擴(kuò)展API 接口和開發(fā)模型,支撐上層業(yè)務(wù)應(yīng)用的開發(fā).分層處理結(jié)構(gòu)分為內(nèi)核態(tài)與用戶態(tài)兩個(gè)部分,每一部分都是一個(gè)完整的開發(fā)環(huán)境,分別包含內(nèi)核態(tài)開發(fā)環(huán)境庫(kù)和用戶定義開發(fā)環(huán)境庫(kù).在每一個(gè)開發(fā)環(huán)境中都分為3 層:底層通信模塊、中間適配模塊和上層應(yīng)用模塊.由于提供多層次封裝編程接口,高層接口可以最大限度屏蔽底層硬件資源的感知[119],完善底層接口支持對(duì)系統(tǒng)的深度調(diào)優(yōu).

一般地,NP 進(jìn)程包括ACL(advanced C library,跨平臺(tái)C 語(yǔ)言庫(kù))線程、路由線程、編排調(diào)度、數(shù)據(jù)響應(yīng)/請(qǐng)求、協(xié)議棧響應(yīng)/請(qǐng)求以及控制響應(yīng)/請(qǐng)求線程.HPENP 進(jìn)程中,線程間通信使用自定義msg 消息,由編排調(diào)度負(fù)責(zé)具體搬運(yùn).每個(gè)NP 平臺(tái)服務(wù)線程都有兩個(gè)隊(duì)列,分別是rxq 輸入隊(duì)列和txq 輸出隊(duì)列.所有線程的服務(wù)擁有唯一標(biāo)識(shí)號(hào)用以認(rèn)證該線程的身份.具體如圖6 所示.

Fig.6 NP process implementation architecture圖6 NP 進(jìn)程實(shí)現(xiàn)架構(gòu)

6.5 基于HPENP的在線智能測(cè)量及應(yīng)用

基于HPENP 架構(gòu),在線智能測(cè)量業(yè)務(wù)能夠完備地滿足當(dāng)前智能網(wǎng)絡(luò)管理、網(wǎng)絡(luò)監(jiān)控以及網(wǎng)絡(luò)安全等多方面業(yè)務(wù)的基礎(chǔ)處理需求[120].用戶可以在路由器上利用自定義功能(測(cè)量、審計(jì)、加解密等),使用HPENP 中擴(kuò)展的API,直接在NP 上開發(fā)相關(guān)的加速邏輯,實(shí)現(xiàn)基于測(cè)量的在線統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)功能.

在線智能測(cè)量作為各項(xiàng)網(wǎng)絡(luò)業(yè)務(wù)的基礎(chǔ),需要滿足自適應(yīng)粒度的調(diào)控.在搭載下一代網(wǎng)絡(luò)處理器的路由器上加載自適應(yīng)測(cè)量調(diào)度控制器,其根據(jù)所在網(wǎng)絡(luò)環(huán)境中網(wǎng)絡(luò)狀態(tài)和測(cè)量任務(wù)自適應(yīng)的調(diào)整測(cè)量粒度,結(jié)合主動(dòng)與被動(dòng)測(cè)量,對(duì)鏈路時(shí)延、網(wǎng)絡(luò)帶寬、丟包率、網(wǎng)絡(luò)拓?fù)涞冗M(jìn)行探測(cè)以及結(jié)構(gòu)化的描述.HPENP 可以加速面向多測(cè)量任務(wù)的動(dòng)態(tài)調(diào)控,將測(cè)量的數(shù)據(jù)層和控制層功能進(jìn)行分離.控制器通過了解各個(gè)節(jié)點(diǎn)的當(dāng)前流量狀況,全局編程調(diào)配網(wǎng)絡(luò)測(cè)量體系結(jié)構(gòu),以進(jìn)行測(cè)量任務(wù)的優(yōu)化調(diào)度.通過擴(kuò)展的API 實(shí)現(xiàn)被動(dòng)輪詢和主動(dòng)探測(cè)的結(jié)合,審計(jì)動(dòng)態(tài)網(wǎng)絡(luò)的視圖狀態(tài).通過各項(xiàng)軟硬件資源,建立網(wǎng)絡(luò)環(huán)境中地址資源、流量資源表示模型,建立網(wǎng)絡(luò)拓?fù)浔硎玖髁烤仃嚨亩嗑S動(dòng)態(tài)資源視圖,完成流量統(tǒng)計(jì)分析.通過統(tǒng)計(jì)分析提取網(wǎng)絡(luò)狀態(tài)特征,利用機(jī)器學(xué)習(xí)功能彈性智能的判斷網(wǎng)絡(luò)狀態(tài),完成尋路應(yīng)用等場(chǎng)景.

6.6 HPENP原型系統(tǒng)構(gòu)建與測(cè)試

針對(duì)上述HPENP 的架構(gòu)設(shè)計(jì),本文將FPGA 和CPU 等按照設(shè)計(jì)在PCB 板上編排,采用國(guó)產(chǎn)麒麟操作系統(tǒng),利用標(biāo)準(zhǔn)的19 英寸的機(jī)箱構(gòu)構(gòu)建了HPENP 的初步原型系統(tǒng).原型系統(tǒng)如圖7 所示.

Fig.7 HPENP prototype system圖7 HPENP 原型系統(tǒng)

圖7 中,FPGA 模塊主要用于流量輸入解析處理和流量輸出整形調(diào)度,可擴(kuò)展流水線與存儲(chǔ)模塊相關(guān)聯(lián).CPU 為4 核處理器,處理器陣列利用分組感知調(diào)度模塊提高整體核間親和性,盡量減少處理分支,保證整體性能.

為了測(cè)試上述原型系統(tǒng)性能,本文利用IXIa perfectstorm one 測(cè)試儀,按照如圖8 所示的拓?fù)浞绞酱罱藢?shí)驗(yàn)環(huán)境,對(duì)HPENP 原型系統(tǒng)相關(guān)性能進(jìn)行測(cè)試.實(shí)體測(cè)試環(huán)境如下.

原型系統(tǒng)測(cè)試主要是網(wǎng)絡(luò)交換基礎(chǔ)能力測(cè)試,其包括接口指標(biāo)、轉(zhuǎn)發(fā)性能指標(biāo)等等.針對(duì)原型系統(tǒng)的千兆和萬(wàn)兆的接口測(cè)試,本文使用了網(wǎng)絡(luò)測(cè)試儀對(duì)千兆一套網(wǎng)口進(jìn)行性能測(cè)試,設(shè)置使用千兆速率發(fā)送隨機(jī)長(zhǎng)度報(bào)文1 億個(gè),設(shè)備開啟網(wǎng)口回環(huán)功能后,網(wǎng)絡(luò)測(cè)試儀的收發(fā)報(bào)文數(shù)量一致.針對(duì)原型系統(tǒng)的共計(jì)10 個(gè)千兆網(wǎng)口用于測(cè)試交換能力,通過主機(jī)管理系統(tǒng),將千兆接口的轉(zhuǎn)發(fā)設(shè)置為相鄰端口轉(zhuǎn)發(fā).為了驗(yàn)證每秒最大bit 傳輸率,在網(wǎng)絡(luò)測(cè)試儀中,將與設(shè)備相連的2 路萬(wàn)兆和2 路千兆配置了每個(gè)網(wǎng)口的測(cè)試報(bào)文長(zhǎng)度為1 518 字節(jié),設(shè)置報(bào)文數(shù)量為1 億個(gè).通過長(zhǎng)時(shí)間測(cè)試統(tǒng)計(jì),確定其交換穩(wěn)定不丟包,從而可得所有網(wǎng)口都是線速轉(zhuǎn)發(fā).針對(duì)分組轉(zhuǎn)發(fā)率指標(biāo),測(cè)試在網(wǎng)絡(luò)測(cè)試儀中將與設(shè)備相連的2 路萬(wàn)兆和2 路千兆配置每個(gè)網(wǎng)口發(fā)送報(bào)文長(zhǎng)度為64 字節(jié)的1 億個(gè)報(bào)文.啟動(dòng)網(wǎng)絡(luò)測(cè)試儀后,線速發(fā)送測(cè)試報(bào)文,觀察并統(tǒng)計(jì)測(cè)試儀各網(wǎng)口的速率統(tǒng)計(jì)信息,匯總統(tǒng)計(jì)結(jié)果,并計(jì)算轉(zhuǎn)發(fā)能力,得到原型系統(tǒng)擁有30Mpacket/s 的分組轉(zhuǎn)發(fā)率.針對(duì)流水線時(shí)延,利用網(wǎng)絡(luò)測(cè)試儀的報(bào)文時(shí)間統(tǒng)計(jì)功能,用測(cè)試儀的一個(gè)網(wǎng)口發(fā)送報(bào)文,中間經(jīng)過測(cè)試設(shè)備轉(zhuǎn)發(fā),然后在另一個(gè)網(wǎng)口回環(huán),得到了一個(gè)報(bào)文從發(fā)送到返回經(jīng)歷路徑的延遲,從而設(shè)備端到端的延遲為28μs.具體結(jié)果見表4.

Fig.8 HPENP prototype system performance test environment圖8 HPENP 原型系統(tǒng)性能測(cè)試環(huán)境

Table 4 Basic performance test results of prototype system表4 原型系統(tǒng)基礎(chǔ)性能測(cè)試結(jié)果

為了驗(yàn)證原型系統(tǒng)的可編程性,本文利用原型系統(tǒng)的用戶態(tài)編程,通過定義軟件模塊的流表,對(duì)不可信的外部網(wǎng)絡(luò)進(jìn)行了規(guī)則約束,搭建了簡(jiǎn)易的網(wǎng)絡(luò)安全防火墻,并建立了測(cè)試拓?fù)鋵?duì)相關(guān)功能進(jìn)行驗(yàn)證.測(cè)試實(shí)驗(yàn)拓?fù)淙鐖D9 所示.

在HPENP 原型系統(tǒng)上,本文設(shè)置了一條包過濾的防火墻安全策略,并在內(nèi)部主機(jī)C 上啟動(dòng)抓包工具,配置抓取本機(jī)接收的所有報(bào)文.原型系統(tǒng)啟動(dòng)后,初始狀態(tài)下,其包過濾防火墻功能默認(rèn)不允許報(bào)文通過,此時(shí),外部主機(jī)D構(gòu)造的報(bào)文無(wú)法發(fā)送到內(nèi)部主機(jī)C,抓包工具無(wú)法抓取到外部主機(jī)D發(fā)送的報(bào)文;通過用戶態(tài)控制器,向原型系統(tǒng)下發(fā)一條源MAC 地址為主機(jī)D、目的MAC 為主機(jī)C、源IP 為主機(jī)D、目的IP 為主機(jī)C、協(xié)議為UDP、動(dòng)作為“允許”的五元組包過濾防火墻規(guī)則.繼續(xù)發(fā)包后發(fā)現(xiàn),外部主機(jī)D構(gòu)造的報(bào)文成功發(fā)送到內(nèi)部主機(jī)C,抓包工具也成功抓取到外部主機(jī)D發(fā)送的UDP 報(bào)文.說(shuō)明原型系統(tǒng)被成功部署防火墻,能夠按需進(jìn)行相關(guān)業(yè)務(wù)的邏輯編程.

Fig.9 HPENP programmable function test圖9 HPENP 可編程性功能測(cè)試

上述結(jié)果表明:HPENP 的設(shè)計(jì)理念合理,具備高性能、可演進(jìn)的優(yōu)勢(shì),能夠較好地兼顧靈活性和處理轉(zhuǎn)發(fā)性能.相信經(jīng)過進(jìn)一步的研究和學(xué)習(xí),能夠完善原型系統(tǒng)的各項(xiàng)功能,升級(jí)相關(guān)架構(gòu),為下一步的處理器芯片化做好充足的準(zhǔn)備.

7 總結(jié)

網(wǎng)絡(luò)處理器的設(shè)計(jì)與研究,一直是通信、網(wǎng)絡(luò)傳輸領(lǐng)域的重點(diǎn)問題.硬件協(xié)處理器開發(fā)周期長(zhǎng)、功能調(diào)整不靈活的特點(diǎn),導(dǎo)致多樣分組處理可演進(jìn)化需求在網(wǎng)絡(luò)處理器中無(wú)法滿足.所以,下一代網(wǎng)絡(luò)處理器體系架構(gòu)一直受到研究人員的廣泛關(guān)注.針對(duì)這一背景,本文首先梳理了網(wǎng)絡(luò)處理器的基本架構(gòu)及其在當(dāng)前網(wǎng)絡(luò)環(huán)境下的發(fā)展挑戰(zhàn),其次介紹了利用新型可編程技術(shù)、面向新型網(wǎng)絡(luò)體系結(jié)構(gòu)、針對(duì)新型高性能業(yè)務(wù)這3 個(gè)層面的業(yè)界學(xué)術(shù)界主流NGNP 設(shè)計(jì)模式,并對(duì)不同的架構(gòu)方案進(jìn)行了分析和比較,指出它們的優(yōu)點(diǎn)及不足,結(jié)合網(wǎng)絡(luò)處理器的工業(yè)化進(jìn)程,得到了相應(yīng)的結(jié)論.

我們認(rèn)為,下一代網(wǎng)絡(luò)處理器研究及設(shè)計(jì)方案應(yīng)當(dāng)遵從以下幾點(diǎn)意見.

(1) 體系架構(gòu)高性能可演進(jìn).當(dāng)前網(wǎng)絡(luò)由超高帶寬反哺出對(duì)網(wǎng)絡(luò)處理器的多樣化分組處理需求.網(wǎng)絡(luò)處理器體系架構(gòu)設(shè)計(jì)首先考慮高性能的處理分組,進(jìn)行包解析、包分類以及元數(shù)據(jù)提取存儲(chǔ)等操作的同時(shí)完成高速轉(zhuǎn)發(fā),實(shí)現(xiàn)通信轉(zhuǎn)發(fā).同時(shí),架構(gòu)應(yīng)當(dāng)包含可動(dòng)態(tài)重構(gòu)硬件完成業(yè)務(wù)靈活配置,利用軟硬件協(xié)同擴(kuò)展的編程方式實(shí)現(xiàn)網(wǎng)絡(luò)處理器的可演進(jìn)性.

(2) 分組處理可加速可優(yōu)化.體系架構(gòu)給予支撐,技術(shù)細(xì)節(jié)完善性能.下一代網(wǎng)絡(luò)處理器設(shè)計(jì)應(yīng)當(dāng)在核間調(diào)度、多級(jí)緩存、并行處理等關(guān)鍵技術(shù)上有所突破,規(guī)避處理器核內(nèi)大量路徑分支處理開銷和核間負(fù)載不均衡帶來(lái)的性能損失問題.在突發(fā)流量到來(lái)時(shí)能夠?qū)Я饕绯隽髁?減少擁塞時(shí)間,高效轉(zhuǎn)換地址映射,及時(shí)轉(zhuǎn)發(fā)處理分組.

(3) 硬件資源按需配置.抽象硬件資源,精準(zhǔn)動(dòng)態(tài)分配.CPU 核、FPGA 或者其他可重構(gòu)邏輯資源、緩存資源應(yīng)當(dāng)進(jìn)行統(tǒng)一管理,抽象成表按需、動(dòng)態(tài)配置相關(guān)業(yè)務(wù).利用業(yè)務(wù)應(yīng)用到系統(tǒng)各類資源的重構(gòu)、映射與調(diào)度算法,提高下一代網(wǎng)絡(luò)處理器處理性能,擴(kuò)展應(yīng)用場(chǎng)景.

(4) 編程接口底層無(wú)關(guān).開發(fā)環(huán)境決定使用效率.下一代網(wǎng)絡(luò)處理器借助關(guān)系明了的開發(fā)編程接口、清晰劃分的功能模塊和流程規(guī)范的數(shù)據(jù)處理,完成可視、透明以及簡(jiǎn)單的業(yè)務(wù)邏輯開發(fā)與調(diào)試.軟硬件通信的底層模塊提供相應(yīng)的API 接口,幫助內(nèi)核態(tài)分組轉(zhuǎn)發(fā)設(shè)備驅(qū)動(dòng)進(jìn)行應(yīng)用適配.向下使用底層API實(shí)現(xiàn)控制,向上豐富通信開發(fā)接口對(duì)應(yīng)應(yīng)用需求.

(5) 搭載應(yīng)用智能高效.高效精準(zhǔn)的各項(xiàng)網(wǎng)絡(luò)應(yīng)用需要分組處理與轉(zhuǎn)發(fā)的智能化.利用下一代網(wǎng)絡(luò)處理器的硬件資源,全局編程調(diào)配各項(xiàng)業(yè)務(wù).通過存儲(chǔ)的動(dòng)態(tài)多維資源視圖,完成搭載應(yīng)用的學(xué)習(xí)功能,實(shí)現(xiàn)自適應(yīng)高性能的流量轉(zhuǎn)發(fā)、視域測(cè)量、網(wǎng)絡(luò)安全、QoS 保障等業(yè)務(wù).

針對(duì)這些特點(diǎn),我們提出了高性能可演進(jìn)的下一代網(wǎng)絡(luò)處理器體系結(jié)構(gòu)HPENP,介紹了軟硬件協(xié)同分組處理流水線、多級(jí)緩存與分組調(diào)度、資源管理及編程接口的相關(guān)設(shè)計(jì)方案,提出了基于下一代NP 的在線智能測(cè)量及應(yīng)用,并搭建測(cè)試了HPENP 原型系統(tǒng).目前,國(guó)內(nèi)外有關(guān)網(wǎng)絡(luò)處理器的研究與設(shè)計(jì)處于快速發(fā)展階段,雖然早期已有許多設(shè)計(jì)被產(chǎn)業(yè)化并大量應(yīng)用,但當(dāng)前也存在一些初步涉及的重要研究點(diǎn).本文希望通過大量研究工作的討論比較以及新型體系架構(gòu)的設(shè)計(jì),為下一代網(wǎng)絡(luò)處理器的未來(lái)工作提供參考與建議.

致謝本文的匿名評(píng)閱者對(duì)文章內(nèi)容,特別是對(duì)下一代網(wǎng)絡(luò)處理器中高性能可演進(jìn)方面的完善提出了許多建設(shè)性的意見和建議,在此表示感謝.

猜你喜歡
處理器分組架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
汽車工程(2021年12期)2021-03-08 02:34:30
分組搭配
怎么分組
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
分組
一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
汽車零部件(2014年1期)2014-09-21 11:41:11
呼嚕處理器
谢通门县| 博乐市| 平乡县| 乌海市| 互助| 施甸县| 临潭县| 景东| 华容县| 于都县| 石门县| 晴隆县| 松桃| 朝阳县| 远安县| 丰台区| 新建县| 新余市| 梓潼县| 会宁县| 宝应县| 泰和县| 吉林市| 两当县| 西昌市| 博白县| 云和县| 都兰县| 自治县| 淮南市| 南华县| 灵丘县| 疏附县| 新泰市| 东莞市| 永福县| 德钦县| 八宿县| 淳化县| 佛山市| 新民市|