(中國(guó)移動(dòng)研究院,北京,100053)
(China Mobile Research Institute, Beijing 100053)
如同經(jīng)濟(jì)學(xué)領(lǐng)域有蒙代爾的不可能三角、分布式計(jì)算有CAP(指一致性、可用性、分區(qū)容忍性)公理一樣,網(wǎng)絡(luò)功能虛擬化(NFV)也存在不匹配三角:計(jì)算、帶寬和存儲(chǔ)三者中總會(huì)有一方發(fā)展較慢。木桶理論中提到,最短木板決定了系統(tǒng)性能,因此,解決NFV不匹配三角問題,是硬件加速在NFV領(lǐng)域存在的基石。
隨著虛擬化和微服務(wù)架構(gòu)的興起,完成一個(gè)業(yè)務(wù)所需的東西向流量急劇增加。伴隨眾多網(wǎng)絡(luò)業(yè)務(wù)發(fā)展、4G不限量套餐普及及5G的興起,南北向業(yè)務(wù)流量也在急速增長(zhǎng)。這是近兩三年來,數(shù)據(jù)中心機(jī)房迅速?gòu)?0 G網(wǎng)卡提升到25 G光纖網(wǎng)卡并向100 G網(wǎng)卡演進(jìn)的深層次原因。隨著網(wǎng)絡(luò)帶寬增長(zhǎng)勢(shì)頭加劇,計(jì)算處理能力的短板逐漸凸顯;因此,人們急需一種技術(shù)方案來彌補(bǔ)這個(gè)短板。
硬件加速即利用中央處理器(CPU)、片上系統(tǒng)(SoC)、圖形處理器(GPU)、數(shù)字信號(hào)處理器(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)等使用不同類型指令集和不同體系架構(gòu)的計(jì)算單元,組成一個(gè)混合的計(jì)算系統(tǒng),通過將處理工作分配給加速硬件以減輕CPU負(fù)荷的技術(shù),從而實(shí)現(xiàn)性能提升、成本優(yōu)化的目標(biāo)。當(dāng)前,業(yè)界為了解決算力短板、滿足業(yè)務(wù)密集計(jì)算需求、提升業(yè)務(wù)處理性價(jià)比,廣泛使用各種加速硬件。例如,Azure、AWS等公有云推出的FPGA、GPU實(shí)例,Google推出全新架構(gòu)的張量處理器(TPU)芯片,京東云、阿里云為提升網(wǎng)絡(luò)性能使用的開放虛擬交換(OvS)卸載智能網(wǎng)卡等。
技術(shù)的發(fā)展如同歷史的發(fā)展一樣,總是螺旋式上升的。在CT領(lǐng)域,NFV通過使用X86等通用性商用貨架產(chǎn)品(COTS)硬件以及虛擬化技術(shù)來承載網(wǎng)絡(luò)功能的軟件處理,使網(wǎng)絡(luò)設(shè)備功能不再依賴于專用硬件、資源可以充分靈活共享,實(shí)現(xiàn)新業(yè)務(wù)的快速開發(fā)和上線,并基于實(shí)際業(yè)務(wù)例如,需求進(jìn)行自動(dòng)部署、彈性伸縮、故障隔離和自愈等;然而,面向5G、邊緣云移動(dòng)邊緣計(jì)算(MEC)新興業(yè)務(wù)如增強(qiáng)現(xiàn)實(shí)(AR)/虛擬現(xiàn)實(shí)(VR)、云游戲、人工智能(AI)等計(jì)算、輸入/輸出(I/O)、網(wǎng)絡(luò)密集型應(yīng)用時(shí),單純使用COTS硬件并不能滿足這些應(yīng)用對(duì)低時(shí)延、高可靠的網(wǎng)絡(luò)要求與并行計(jì)算的算力要求。如果采用服務(wù)器堆疊方式解決以上問題,總體上將增加資本支出(CAPEX)和運(yùn)營(yíng)成本(OPEX)壓力。在一些邊緣計(jì)算場(chǎng)景,機(jī)房有限的空間、承重、電力、散熱條件制約著可承載服務(wù)器的數(shù)量。本文中,我們的研究重點(diǎn)是針對(duì)負(fù)責(zé)網(wǎng)絡(luò)轉(zhuǎn)發(fā)的用戶面功能(UPF),提升其單位空間、能耗下的轉(zhuǎn)發(fā)性能,打破計(jì)算與帶寬的不匹配三角,實(shí)現(xiàn)通用X86服務(wù)器架構(gòu)下的更高轉(zhuǎn)發(fā)性能。
隨著后摩爾定律時(shí)代到來,CPU制程迭代變緩,主頻和單位面積芯片中可容納的核/緩存數(shù)量提升變得困難。目前,CPU三級(jí)緩存的存取效率已經(jīng)從30 ns提升到10 ns左右,將共享三級(jí)緩存近核本地化和按需分配僅可以有限地提升緩存利用效率,性能進(jìn)一步提升難度較大。
在核心網(wǎng)網(wǎng)關(guān)UPF中,對(duì)一個(gè)報(bào)文的處理至少需要讀(查找轉(zhuǎn)發(fā)表)、寫(計(jì)費(fèi))緩存各一次。CPU緩存是最大的I/O瓶頸,過多緩存丟失引起的讀寫內(nèi)存會(huì)引發(fā)轉(zhuǎn)發(fā)能力螺旋式下降[1]。I/O效率在100 G線速下幾乎是不可逾越的瓶頸,因此,如何減少業(yè)務(wù)處理邏輯對(duì)CPU緩存的訪問、將流表卸載至加速硬件中,是產(chǎn)業(yè)界嘗試打破轉(zhuǎn)發(fā)瓶頸的一個(gè)方向。
在提速降費(fèi)、不限量套餐普及以及5G業(yè)務(wù)發(fā)展的大背景下,核心網(wǎng)中數(shù)據(jù)流量劇增。在4G話務(wù)模型下,虛擬化核心網(wǎng)網(wǎng)關(guān)用戶面(GW-U)部署的普通雙路服務(wù)器,一般會(huì)配置兩塊25 G網(wǎng)卡——不跨非統(tǒng)一內(nèi)存訪問架構(gòu)(NUMA)節(jié)點(diǎn)。在實(shí)際商用部署中考慮到CPU毛刺等因素,理想狀態(tài)下一臺(tái)服務(wù)器的最大安全吞吐量約40 G。5G增強(qiáng)移動(dòng)寬帶(eMBB)場(chǎng)景下,單局容量遠(yuǎn)超4G。提高單服務(wù)器轉(zhuǎn)發(fā)能力,降低服務(wù)器總量從而降低能耗和管理成本是當(dāng)務(wù)之急;因此,網(wǎng)卡向100 G發(fā)展是必然趨勢(shì)。若使用100 G智能網(wǎng)卡,由于轉(zhuǎn)發(fā)流量卸載到智能網(wǎng)卡,CPU沖高影響降低,在確定的話務(wù)模型下,理想最大安全吞吐量可達(dá)95 G,折扣大大降低,使總體轉(zhuǎn)發(fā)能力提升約4~5倍。同時(shí),針對(duì)5G的超可靠低時(shí)延通信(URLLC)場(chǎng)景,智能網(wǎng)卡轉(zhuǎn)發(fā)處理的平均時(shí)延約為10 us,較之NFV軟件處理的平均時(shí)延100~200 us,可降低一個(gè)量級(jí)。100 G智能網(wǎng)卡在4G核心網(wǎng)(EPC)、5G eMBB和5G URLLC場(chǎng)景下,成本和時(shí)延優(yōu)勢(shì)明顯。
如圖1所示,5G采用控制面與用戶面(C-U)分離架構(gòu),UPF作為U面對(duì)外接口是無線側(cè)N3和互聯(lián)網(wǎng)側(cè)N6,其中N3接口采用GPRS隧道協(xié)議(GTP)協(xié)議封裝。
業(yè)界一度對(duì)核心網(wǎng)NFV的U面是否需要加速持懷疑態(tài)度[2],認(rèn)為:
1)通用硬件平臺(tái)虛擬化是大勢(shì)所趨,運(yùn)營(yíng)商剛從專用設(shè)備中轉(zhuǎn)型脫身,智能網(wǎng)卡似乎又回到了熟悉的專用硬件,這是倒退;
2)硬件加速效能比達(dá)不到預(yù)期。
專用設(shè)備被詬病的主要原因在于設(shè)備商壟斷造成了高昂成本。當(dāng)前,核心網(wǎng)硬件加速的成熟應(yīng)用主要聚焦在加解密、編解碼等領(lǐng)域。性能提升和成本下降有限,同時(shí)引入加速硬件可能帶來的硬件綁定問題,使運(yùn)營(yíng)商難以下定決心;因此,在加速硬件技術(shù)方案的選擇上,需要平衡當(dāng)前通用與專用之間的矛盾。業(yè)界常見的加速硬件主要有5類,表1在成本、功耗、開發(fā)難度和重用性以及適合的數(shù)據(jù)處理類型等方面對(duì)這5類加速硬件進(jìn)行了對(duì)比。
在成本、功耗和開發(fā)難度上,數(shù)字信號(hào)處理器(ASIC)方案具有絕對(duì)優(yōu)勢(shì);但是其支持的加速功能固化,芯片不可重用,靈活性低,更適合成熟穩(wěn)定的算法類應(yīng)用。
GPU是面向視頻處理等大規(guī)模并行計(jì)算類型領(lǐng)域的成熟方案,軟件生態(tài)強(qiáng)大。邊緣云業(yè)務(wù)中涉及到視頻數(shù)據(jù)處理(渲染、轉(zhuǎn)碼)以及AI的推理、訓(xùn)練處理都采用GPU實(shí)現(xiàn)。
NPU提供一定的轉(zhuǎn)發(fā)規(guī)則可配置能力,通過對(duì)數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)處理主要過程的固化,實(shí)現(xiàn)高性能數(shù)據(jù)轉(zhuǎn)發(fā),是高性能路由平臺(tái)的主要方案。
SoC具有可編程、可升級(jí)、支持熱補(bǔ)丁特點(diǎn),多為進(jìn)階精簡(jiǎn)指令集機(jī)器(ARM)架構(gòu),一般配合ASIC定制化使用以保證性能,適合較成熟穩(wěn)定的算法類應(yīng)用。
FPGA性價(jià)比介于通用處理器和ASIC之間,同時(shí)處理時(shí)延低,契合5G URLLC場(chǎng)景。EPGA靈活性高,可在線重加載配置軟件以實(shí)現(xiàn)不同的功能特性,并且片上資源可靈活劃分。隨著FPGA處理能力的提升,F(xiàn)PGA的部分重配置(PR)技術(shù)可以將一塊FPGA配置為多塊功能單元,比如各單元分別支持流量卸載、視頻編解碼和機(jī)器學(xué)習(xí)。同時(shí)每一個(gè)功能單元,還可以通過單引導(dǎo)I/O虛擬化(SR-IOV)方式提供給多個(gè)上層業(yè)務(wù)來使用,以充分發(fā)揮FPGA設(shè)備性能。實(shí)現(xiàn)網(wǎng)絡(luò)加速的智能網(wǎng)卡是FPGA芯片的一種典型應(yīng)用,這也是數(shù)據(jù)轉(zhuǎn)發(fā)類加速硬件的一個(gè)重要形態(tài)。
UPF加速要想做到硬件資源池化,須面臨軟軟解耦(即網(wǎng)元通過應(yīng)用程序編程接口調(diào)用加速硬件的加速功能)或軟硬解耦(網(wǎng)元軟件在統(tǒng)一的加速硬件上進(jìn)行功能迭代)的選擇。目前UPF硬件加速產(chǎn)業(yè)并不成熟,各廠家網(wǎng)元處理流程設(shè)計(jì)不同,加速卸載方案多樣。在這一階段我們選擇軟軟解耦方案,需要統(tǒng)一卸載功能模塊及處理流程,打開業(yè)務(wù)接口。這樣的話,一方面難以發(fā)揮各種加速硬件優(yōu)勢(shì),另一方面當(dāng)軟件功能升級(jí)時(shí),拆分到硬件和上層軟件的功能協(xié)同升級(jí)也較為復(fù)雜,同時(shí)功能模塊的拆分也會(huì)為運(yùn)維、故障定位帶來困難;因此,軟軟解耦是未來產(chǎn)業(yè)成熟后的遠(yuǎn)期目標(biāo)。針對(duì)軟硬解耦方案,需要選擇一類加速硬件由UPF廠家適配開發(fā)。5G業(yè)務(wù)對(duì)高吞吐、低時(shí)延的需求分析,與卸載功能和流程需要不斷優(yōu)化演進(jìn)的需求,都要求加速芯片在保證并行處理能力和低時(shí)延性能的基礎(chǔ)上具備高度靈活性。綜上所述,F(xiàn)PGA芯片是一種更為靈活、成熟、可通用化部署的選擇。
在圖2所示的UPF業(yè)務(wù)處理模型中,GTP封裝/解封裝、規(guī)則查找、DPI、服務(wù)質(zhì)量(QoS)、計(jì)費(fèi)是關(guān)鍵業(yè)務(wù)處理路徑。如果加速硬件僅處理轉(zhuǎn)發(fā)動(dòng)作,所有報(bào)文仍需CPU處理GTP協(xié)議、QoS、計(jì)費(fèi)等業(yè)務(wù),這一加速應(yīng)用模型對(duì)于UPF性能的提升有限;因此,UPF加速模型須考慮盡可能實(shí)現(xiàn)報(bào)文的全業(yè)務(wù)處理卸載。

表1 常見加速硬件對(duì)比
ETSI NFV001定義了硬件加速的3種主要模式[3],如圖3所示。
1)Look-Aside:旁路模式,類似協(xié)處理器的應(yīng)答模式,不改變現(xiàn)有軟件流程;
2)In-Line:隨路模式,嵌入到軟件的包處理過程中,是一種緊耦合模型;
3)Fast-Path:快路徑模式,報(bào)文不經(jīng)過主機(jī)處理。
對(duì)于UPF這類轉(zhuǎn)發(fā)面網(wǎng)元,Look-Aside模式中數(shù)據(jù)包要在加速卡和中央處理器之間多次傳遞,對(duì)總線帶寬和處理時(shí)延均有影響。In-Line模式和Fast-Path模式更適合業(yè)務(wù)功能的有效卸載。因此數(shù)據(jù)包由網(wǎng)卡接收后可以直接在本地處理的智能網(wǎng)卡比旁路外設(shè)部件互聯(lián)標(biāo)準(zhǔn)(PCIe)加速卡更適合用于UPF加速。
使用FPGA智能網(wǎng)卡對(duì)現(xiàn)有NFV架構(gòu)的主要影響包括網(wǎng)元適配開發(fā)和管理和編排(MANO)納管。FPGA開發(fā)基于硬件編程語言VHDL或Verilog,與硬件緊耦合。在NFV模式下,多UPF廠商多智能網(wǎng)卡配對(duì),UPF廠家適配開發(fā)工作量需要收斂。在OpenStack社區(qū),Cyborg組件可以實(shí)現(xiàn)FPGA智能網(wǎng)卡的發(fā)現(xiàn)、管理以及加速功能加載。FPGA智能網(wǎng)卡需要支持通過Cyborg實(shí)現(xiàn)自動(dòng)化在線重配置。基于降低適配開發(fā)工作量、UPF加速業(yè)務(wù)快速上線、滿足在線自動(dòng)重配的需求,F(xiàn)PGA智能網(wǎng)卡需要支持靜態(tài)-動(dòng)態(tài)區(qū)域模式,并需要運(yùn)營(yíng)商對(duì)智能網(wǎng)卡進(jìn)行統(tǒng)一定制化設(shè)計(jì)。
在FPGA智能網(wǎng)卡的靜態(tài)-動(dòng)態(tài)區(qū)域模式中,靜態(tài)區(qū)域需要封裝PCIe接口、雙倍數(shù)據(jù)傳輸速率(DDR)控制器等通用IP,面向動(dòng)態(tài)區(qū)域提供調(diào)用接口,由硬件廠家預(yù)先完成開發(fā)調(diào)試,UPF廠家在動(dòng)態(tài)區(qū)域進(jìn)行功能開發(fā)時(shí)可以直接獲得硬件平臺(tái)能力。由硬件廠家提供靜態(tài)區(qū)域,用戶則無法修改,這為設(shè)備穩(wěn)定、可靠提供保障,也可形成FPGA用戶到服務(wù)器的隔離,提供安全保證。動(dòng)態(tài)區(qū)域部分加載的UPF加速邏輯,由網(wǎng)元廠家開發(fā)設(shè)計(jì),可動(dòng)態(tài)更新,使網(wǎng)元加速功能開發(fā)更專注于業(yè)務(wù)邏輯,也便于后續(xù)網(wǎng)元的功能迭代。這一模式為FPGA的安全、可靠提供保證,同時(shí)使FPGA使用者專注于業(yè)務(wù)邏輯開發(fā),降低了FPGA開發(fā)難度。
考慮到智能網(wǎng)卡更適合處理邏輯簡(jiǎn)單的重復(fù)并行業(yè)務(wù),在進(jìn)行卸載功能選擇時(shí),原則上選擇穩(wěn)定且邏輯簡(jiǎn)單的功能卸載,卸載功能處理流程須符合In-Line或Fast-Path模式。使用In-Line模式時(shí),我們需要考慮哪些功能必須由CPU處理,哪些適合下沉到智能網(wǎng)卡。對(duì)于Fast-Path模式,我們需要考慮滿足了哪些條件后,報(bào)文可以不經(jīng)過CPU,完成正確的轉(zhuǎn)發(fā)和計(jì)費(fèi)。

圖2 用戶面功能業(yè)務(wù)處理模型

圖3 硬件加速模式

圖4 UPF硬件加速參考設(shè)計(jì)
圖4給出了一種UPF業(yè)務(wù)卸載的參考設(shè)計(jì),其中配置下發(fā)和計(jì)費(fèi)等統(tǒng)計(jì)信息上送均通過流表完成。表2 給出了CPU下發(fā)的部分配置流表設(shè)計(jì)。
1)通過首包(一個(gè)或幾個(gè))上送CPU,CPU生成配置流表下發(fā)給智能網(wǎng)卡,流表中含路由、計(jì)費(fèi)策略等內(nèi)容;
2)后續(xù)報(bào)文到達(dá),智能網(wǎng)卡查找流表,命中則直接轉(zhuǎn)發(fā),不再經(jīng)過CPU處理,未命中上送CPU;
3)智能網(wǎng)卡實(shí)現(xiàn)GTP報(bào)文的封裝/解封裝等處理;
4)根據(jù)計(jì)費(fèi)等策略,智能網(wǎng)卡把計(jì)費(fèi)等信息上報(bào)CPU。
阿姆達(dá)定律定義了多核計(jì)算的加速比,其核心思想是可并行計(jì)算的模塊占比與核的數(shù)量之間的關(guān)系。類似地,衡量硬件加速的效能,也可采用加速比這個(gè)概念;但不同之處在于使用了“可卸載報(bào)文比例”作為關(guān)鍵因子。加速比的定義如公式(1)所示:

表2 流表參考設(shè)計(jì)

圖5 加速比變化趨勢(shì)

其中X為可卸載報(bào)文比例。
例如,卸載80%的報(bào)文時(shí),加速比為1/(1-80%),即5倍。這意味著一臺(tái)服務(wù)器可以處理原來5臺(tái)服務(wù)器處理的報(bào)文。
圖5展示了加速比的變化趨勢(shì):目前多數(shù)加速應(yīng)用卸載比例約為35%,效能比低于1.5。當(dāng)卸載50%的報(bào)文時(shí),加速比為2倍,這個(gè)數(shù)值是加速比的拐點(diǎn)。當(dāng)卸載比例超過50%,加速比將大幅提升。
在實(shí)際轉(zhuǎn)發(fā)流量中,我們把超文本傳輸協(xié)議(HTTP)訪問稱為“短流”,把視頻類流稱為“長(zhǎng)流”。“長(zhǎng)流”持續(xù)時(shí)間長(zhǎng)、報(bào)文數(shù)量多。顯而易見,“長(zhǎng)流”可以獲得更高的加速比。隨著5G和視頻應(yīng)用的普及,視頻流量的比例將大幅提升,并達(dá)到個(gè)人用戶上網(wǎng)流量的80%、行業(yè)流量的70%,同時(shí)智能網(wǎng)卡卸載加速的效果將會(huì)更加顯著。
硬件加速的加速比存在極限。以EPC話務(wù)模型為例,以業(yè)界通常評(píng)估的平均一個(gè)流20個(gè)報(bào)文計(jì)算,除去必須首包學(xué)習(xí)上送CPU的報(bào)文,理論上剩下19個(gè)報(bào)文都可以被卸載,此時(shí)加速比的極限為20倍,這是這一話務(wù)模型下硬件加速的理想目標(biāo)。
不匹配三角揭示的矛盾,在5G核心網(wǎng)U面UPF上體現(xiàn)為網(wǎng)卡帶寬需求遠(yuǎn)超過當(dāng)前主流雙路服務(wù)器的CPU計(jì)算能力。通過FPGA智能網(wǎng)卡實(shí)現(xiàn)報(bào)文卸載,可有效降低CPU負(fù)荷實(shí)現(xiàn)再平衡,由此降低了每吉比特流量的設(shè)備成本。同時(shí),F(xiàn)PGA智能網(wǎng)卡的靈活性也可保證加速硬件資源池的通用性。