日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > ZYNQ
		


智能服務(wù)器適配器或智能網(wǎng)卡(SmartNIC)通過從服務(wù)器的CPU上卸載網(wǎng)絡(luò)處理工作負(fù)載和任務(wù),提高云端和私有數(shù)據(jù)中心中的服務(wù)器性能。將網(wǎng)絡(luò)處理卸載到智能網(wǎng)卡并不是一個新的概念,例如有些網(wǎng)卡(NIC)可以卸載諸如校驗和計算與分段等一些網(wǎng)絡(luò)處理功能。


然而,由軟件定義網(wǎng)絡(luò)(SDN)、開放虛擬交換機(jī)(OVS)和網(wǎng)絡(luò)功能虛擬化(NFV)驅(qū)動的數(shù)據(jù)中心網(wǎng)絡(luò)通信的快速增長,需要一種具有更強(qiáng)卸載能力的新型網(wǎng)卡:智能網(wǎng)卡。
智能網(wǎng)卡為數(shù)據(jù)中心網(wǎng)絡(luò)提供了幾項重要優(yōu)勢,包括:
1. 通過直接在網(wǎng)絡(luò)接口卡上執(zhí)行任務(wù)來加速網(wǎng)絡(luò)、存儲和計算任務(wù),消除了在服務(wù)器上運(yùn)行這些工作負(fù)載的需要,并釋放了CPU周期,從而顯著提高服務(wù)器性能并降低總體功耗,進(jìn)而降低系統(tǒng)級的總體擁有成本。
2. 卸載日益復(fù)雜的網(wǎng)絡(luò)任務(wù),包括諸如VxLAN等覆蓋隧道協(xié)議和來自服務(wù)器處理器的復(fù)雜虛擬交換,使服務(wù)器處理器能夠執(zhí)行實際的創(chuàng)收性任務(wù)。
3. 通過在更快速的硬件而不是較慢的軟件中去執(zhí)行卸載功能,從而提高有效網(wǎng)絡(luò)帶寬和吞吐量。
提供附加的、靈活的功能,它們都易于適應(yīng)新的和不斷變化的網(wǎng)絡(luò)和存儲協(xié)議。
目前,智能網(wǎng)卡設(shè)計采用以下三種形式之一:

1. 多核智能網(wǎng)卡,基于包含多個CPU內(nèi)核的ASIC2. 基于現(xiàn)場可編程門陣列(FPGA)的智能網(wǎng)卡3. FPGA增強(qiáng)型智能網(wǎng)卡,它將硬件可編程FPGA與ASIC網(wǎng)絡(luò)控制器相結(jié)合
一個多核智能網(wǎng)卡設(shè)計可能包括一個集成了許多軟件可編程微處理器內(nèi)核的ASIC。這些內(nèi)核通常是性能更高的Arm處理器,它們處理數(shù)據(jù)包并從主服務(wù)器CPU(昂貴)上卸載任務(wù)。多核智能網(wǎng)卡ASIC還可以集成固定功能硬件引擎,它們可以卸載定義明確的任務(wù),如標(biāo)準(zhǔn)化的安全和存儲協(xié)議。
然而,多核智能網(wǎng)卡至少受到兩個制約因素的限制:
1. 這些智能網(wǎng)卡基于軟件可編程處理器,由于缺乏處理器并行性,它們在被用于網(wǎng)絡(luò)處理時速度較慢。
2. 這些多核ASIC中的固定功能硬件引擎缺乏智能網(wǎng)卡卸載功能越來越需要的數(shù)據(jù)平面可編程性和靈活性。
基于處理器的多核智能網(wǎng)卡設(shè)計在10G這一代網(wǎng)卡中得到了廣泛的應(yīng)用。然而,隨著數(shù)據(jù)中心中的以太網(wǎng)數(shù)據(jù)速率從10G上升到25G、40G、50G、100G甚至更高,這些以軟件為中心的多核智能網(wǎng)卡就已經(jīng)難以跟上了。這些多核智能網(wǎng)卡在這些較高的數(shù)據(jù)速率下無法達(dá)到所需的峰值帶寬。同時,多核智能網(wǎng)卡ASIC中的固定功能引擎無法擴(kuò)展去處理新的加密或安全算法,這是因為它們?nèi)狈ψ銐虻目删幊绦?,只能適應(yīng)算法的細(xì)微改變。

基于FPGA的智能網(wǎng)卡


基于FPGA的智能網(wǎng)卡利用FPGA更大硬件可編程性來構(gòu)建卸載到智能網(wǎng)卡上的任務(wù)所需的任何數(shù)據(jù)平面功能。由于FPGA是可重編程的,利用FPGA實現(xiàn)的數(shù)據(jù)平面功能可以任意并且實時地去除和重新配置。所有這些卸載功能都以硬件而非軟件速度運(yùn)行。
與單純基于軟件的實現(xiàn)相比,基于FPGA的智能網(wǎng)卡設(shè)計可以將網(wǎng)絡(luò)功能提速幾個數(shù)量級。在智能網(wǎng)卡設(shè)計中使用FPGA可提供定制硬件的線速性能和功率效率,并能夠創(chuàng)建支持復(fù)雜卸載任務(wù)和提高單數(shù)據(jù)流網(wǎng)絡(luò)性能的深度數(shù)據(jù)包/網(wǎng)絡(luò)處理流水線。通過利用FPGA中固有的大量硬件并行性來復(fù)制這些流水線,可以提高巨大數(shù)據(jù)性能,足以滿足基于更快的以太網(wǎng)網(wǎng)絡(luò)的下一代數(shù)據(jù)中心架構(gòu)的高性能、高帶寬、高吞吐量需求。

FPGA增強(qiáng)型智能網(wǎng)卡


對向后兼容性的需求催生了另一種類型的智能網(wǎng)卡——即FPGA增強(qiáng)型智能網(wǎng)卡,它為網(wǎng)卡增加了FPGA功能。基于這種設(shè)計,網(wǎng)卡可以是現(xiàn)有的多核智能網(wǎng)卡,也可以只是一個簡單的網(wǎng)卡專用集成電路(NIC ASIC)。集成到這些設(shè)計中的網(wǎng)卡提供了向后兼容性,特別是對于超級管理程序的兼容性。因此,基于現(xiàn)有網(wǎng)卡的FPGA增強(qiáng)型智能網(wǎng)卡設(shè)計,加上用于擴(kuò)展功能的FPGA,可以立即實現(xiàn)其投資收益,因為它自動與現(xiàn)有網(wǎng)絡(luò)API和接口協(xié)議兼容,因此可以使用現(xiàn)有的API和驅(qū)動程序。一個FPGA增強(qiáng)型智能網(wǎng)卡設(shè)計中的板載FPGA能夠顯著提高性能和擴(kuò)展功能。
有三種方法可以開發(fā)FPGA增強(qiáng)型智能網(wǎng)卡設(shè)計。第一種方法是簡單地將FPGA連接到現(xiàn)有的網(wǎng)卡。另一種方法是設(shè)計下一代智能網(wǎng)卡ASIC,并在該芯片上集成了一個FPGA陣列。第三種方法是在智能網(wǎng)卡ASIC的設(shè)計中增加一個高速的芯片到芯片互連,并開發(fā)一個連接到智能網(wǎng)卡ASIC的FPGA chiplet合封芯片。這三種設(shè)計方法各有優(yōu)缺點。
在現(xiàn)有網(wǎng)卡上基于FPGA增強(qiáng)型智能網(wǎng)卡設(shè)計可帶來確保兼容性的優(yōu)勢?,F(xiàn)有驅(qū)動程序、API和接口協(xié)議對于現(xiàn)有功能將保持不變,因為它們是在現(xiàn)有網(wǎng)卡上實現(xiàn)的?,F(xiàn)有API和驅(qū)動程序的擴(kuò)展只需要在附加的FPGA中去實現(xiàn)功能擴(kuò)展而已。
這種方法的缺點來自一定程度的結(jié)構(gòu)性。首先,如果現(xiàn)有的設(shè)計缺少為包括FPGA在內(nèi)的擴(kuò)展芯片提供的任何接口,那么FPGA將需要直接連接到主機(jī)接口總線和與網(wǎng)卡并行的以太網(wǎng)端口。如果設(shè)計中確實具有一個用于外部加速器的接口,那么該接口可能會對FPGA必須處理的大量以太網(wǎng)數(shù)據(jù)包流量造成帶寬瓶頸。
為了獲得最佳性能,網(wǎng)卡組件和FPGA應(yīng)該位于同一塊芯片上。這種方法需要嵌入式FPGA(eFPGA)。將eFPGA集成到網(wǎng)卡中可以最大限度地提高FPGA功能域與網(wǎng)卡其余部分之間的可用帶寬,從而加快從直接的、芯片上的連接到eFPGA的傳輸速率。
一種中間設(shè)計方法涉及到對智能網(wǎng)卡ASIC的重新定義。在這種設(shè)計中,增加了一個高速的芯片到芯片接口,從而將ASIC連接到FPGA芯片上;然后將這種組合解決方案合并到多芯片合封模塊(MCM)中。這種方法的優(yōu)點是只需要對智能網(wǎng)卡ASIC進(jìn)行最小的更改,從而降低設(shè)計風(fēng)險。
這種基于多芯片合封組合的設(shè)計方法還為智能網(wǎng)卡的設(shè)計引入了刪除選項的可能性,該選項可以以芯片或電路板形態(tài)提供,也可以加上或者不加不同價位的FPGA。這種方法的缺點是MCM內(nèi)的芯片到芯片互連可能提供的帶寬比片上互連更少。
智能網(wǎng)卡被用于不同的部署中,包括存儲、安全和網(wǎng)絡(luò)處理。如下圖所示,最終目標(biāo)是實現(xiàn)消耗更少處理器內(nèi)核的解決方案,同時以更低的成本提供更高的性能。
圖1:智能網(wǎng)卡釋放處理器內(nèi)核
智能網(wǎng)卡的定義是廣泛的,包括一個大型的功能層級結(jié)構(gòu),所有這些功能都建立在一個基本的網(wǎng)卡基礎(chǔ)之上。示例1到13說明了可以添加到網(wǎng)卡的處理元素,以創(chuàng)建功能更加強(qiáng)大的智能網(wǎng)卡。當(dāng)使用某種形式的FPGA來實現(xiàn)智能網(wǎng)卡時,可以根據(jù)需要輕松添加或刪除這些功能?;贔PGA的智能網(wǎng)卡和FPGA增強(qiáng)型智能網(wǎng)卡的實現(xiàn)還允許對每種任務(wù)加速功能進(jìn)行簡便的遠(yuǎn)程修改或改進(jìn),即使智能網(wǎng)卡已經(jīng)安裝在數(shù)據(jù)中心服務(wù)器上之后也可以進(jìn)行。
示例1展示了一個基本型網(wǎng)卡的基礎(chǔ),它采用多個以太網(wǎng)MAC和一個用于主處理器接口的PCIe塊。主處理器隨后必須處理所有以太網(wǎng)通信。
圖2:示例1 –基本型網(wǎng)卡的基礎(chǔ)
示例2將DMA引擎添加到基本型網(wǎng)卡中,通過允許網(wǎng)卡在以太網(wǎng)MAC和服務(wù)器內(nèi)存之間移動以太網(wǎng)通信,而無需服務(wù)器CPU的大量干預(yù),從而減少了主處理器的工作負(fù)載。
圖3:示例2 –將DMA引擎添加到基本型網(wǎng)卡中
示例3添加一個過濾引擎,它通過阻止無需處理器注意的數(shù)據(jù)包,進(jìn)一步減少主處理器的任務(wù)負(fù)載。
圖4:示例3 –添加一個過濾引擎
示例4將外部DRAM添加到過濾引擎,這顯著增加了智能網(wǎng)卡上可用于過濾的規(guī)則數(shù)量。有了足夠的外部內(nèi)存,智能網(wǎng)卡可以管理數(shù)百萬條規(guī)則。
圖5:示例4 –將外部DRAM添加到過濾引擎
示例5添加了L2/L3卸載引擎,該引擎可以通過處理智能網(wǎng)卡的以太網(wǎng)端口之間的低層交換和路由,進(jìn)一步減少主處理器的工作負(fù)載。為了有效,L2/L3卸載引擎將需要大量外部DRAM來緩沖網(wǎng)絡(luò)數(shù)據(jù)包。
注意,智能網(wǎng)卡FPGA或ASIC與外部DRAM之間的接口必須滿足正被交換的以太網(wǎng)通信帶寬要求。
圖6:示例5 –添加一個L2/L3卸載引擎
示例6添加了一個隧道引擎,以允許智能網(wǎng)卡卸載各種隧道封包,并進(jìn)一步減輕處理器的周期密集型隧道性需求。
圖7:示例6 –添加一個隧道引擎
示例7添加快速外部存儲,以允許智能網(wǎng)卡對傳入的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行深度緩沖,從而實現(xiàn)了線速數(shù)據(jù)包交換和具有多個隊列的分層QoS調(diào)度。
圖8:示例7 –添加深度數(shù)據(jù)包緩沖
示例8添加一個具有自己的DRAM緩沖的流引擎,以使智能網(wǎng)卡的路由引擎能夠處理數(shù)百萬個路由表條目。流引擎有助于卸載網(wǎng)絡(luò)地址轉(zhuǎn)換/協(xié)議地址轉(zhuǎn)換(NAT / PAT)操作的負(fù)擔(dān)。
圖9:示例8 –帶有流引擎的智能網(wǎng)卡
示例9添加一個TCP卸載引擎來處理TCP堆棧的全部/部分工作,這樣可以在不消耗更多CPU周期的情況下提高智能網(wǎng)卡性能。
圖10:示例9 – TCP卸載引擎
示例10將部分/全部安全引擎添加到智能網(wǎng)卡中,以每個流為基礎(chǔ)從主處理器卸載加密和解密任務(wù)。
圖11:示例10 –添加安全引擎以卸載加密和解密任務(wù)
示例11添加了一個單獨(dú)的QoS引擎,以允許智能網(wǎng)卡管理服務(wù)等級協(xié)議(SLA),而無需服務(wù)器CPU的干預(yù)。
圖12:示例11 –添加單獨(dú)的QoS引擎以管理SLA
示例12添加一個可編程的數(shù)據(jù)包解碼器,該解碼器將類似P4的可編程性集成到智能網(wǎng)卡中。P4是一種標(biāo)準(zhǔn)的網(wǎng)絡(luò)編程語言,專門用于描述和編程分組數(shù)據(jù)包轉(zhuǎn)發(fā)面的操作。
圖13:例12 –添加可編程分組數(shù)據(jù)包解碼器
示例13添加一個或多個板載處理器,它們?yōu)橹悄芫W(wǎng)卡提供了完整的軟件可編程性(用于諸如OAM等任務(wù)),進(jìn)一步實現(xiàn)服務(wù)器處理器的任務(wù)卸載。
圖14:示例13 –帶有板載處理器的智能網(wǎng)卡
在數(shù)據(jù)中心引入帶有FPGA的智能網(wǎng)卡設(shè)計的最大障礙之一是基于軟件的多核智能網(wǎng)卡在10G時代獲得的巨大成功所帶來的工程慣性。網(wǎng)絡(luò)卸載和加速技術(shù)已經(jīng)在API和接口協(xié)議采用并標(biāo)準(zhǔn)化,這些API和接口協(xié)議允許服務(wù)器任務(wù)與某些多核智能網(wǎng)卡交互。
每個服務(wù)器軟件棧都以幾個特定的網(wǎng)卡和智能網(wǎng)卡為目標(biāo)。為現(xiàn)有網(wǎng)卡和智能網(wǎng)卡開發(fā)的API和驅(qū)動程序被硬編碼到在服務(wù)器CPU上運(yùn)行的軟件棧中。除非使用FPGA設(shè)計的智能網(wǎng)卡可以支持這些現(xiàn)有API并模擬現(xiàn)有接口協(xié)議,否則將這些智能網(wǎng)卡在投入使用時需要修改軟件棧。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉