網(wǎng)絡(luò)虛擬化和網(wǎng)絡(luò)包處理
網(wǎng)絡(luò)虛擬化基于網(wǎng)絡(luò)包處理流水線實(shí)現(xiàn),常見的網(wǎng)絡(luò)包處理流水線有三種:定制的流水線、可軟件編程的流水線以及通過FPGA實(shí)現(xiàn)的硬件可編程流水線。
本文引用地址:http://m.butianyuan.cn/article/202402/455371.htm1 包處理用于網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)包處理機(jī)制可以用來處理各種不同的網(wǎng)絡(luò)協(xié)議,特別是一些可軟件編程的處理引擎的出現(xiàn),使得增加新的網(wǎng)絡(luò)協(xié)議處理更加的靈活簡單。通用的網(wǎng)絡(luò)包處理機(jī)制,也適用于網(wǎng)絡(luò)虛擬化VLAN/VxLAN的處理。
1.1 虛擬網(wǎng)絡(luò),狹義的網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化通常指通過VLAN、VxLAN、NVGRE等虛擬網(wǎng)絡(luò)相關(guān)的協(xié)議,在一個(gè)大的物理網(wǎng)絡(luò)的基礎(chǔ)上,靈活構(gòu)建不同的虛擬網(wǎng)絡(luò)域,也可以通過一定的機(jī)制,實(shí)現(xiàn)在不同虛擬網(wǎng)絡(luò)域間的跨域訪問。虛擬網(wǎng)絡(luò)不是在初始構(gòu)建的那一刻配置完成就結(jié)束,而是在網(wǎng)絡(luò)運(yùn)行過程中,每條流、每個(gè)包都需要經(jīng)過虛擬網(wǎng)絡(luò)協(xié)議的處理。隨著網(wǎng)絡(luò)帶寬的持續(xù)增加,為了優(yōu)化虛擬網(wǎng)絡(luò)的性能以及CPU資源消耗,勢(shì)必需要通過硬件加速的方式來實(shí)現(xiàn)更高性能的虛擬網(wǎng)絡(luò)處理。
虛擬網(wǎng)絡(luò)基于物理網(wǎng)絡(luò)實(shí)現(xiàn),如圖1,以VxLAN為例,最核心的處理是通過VNID和內(nèi)部目標(biāo)地址作為關(guān)鍵字,在查找表中查詢到對(duì)應(yīng)的外部目標(biāo)地址。而內(nèi)部目標(biāo)地址和外部目標(biāo)地址的映射關(guān)系處理則交給軟件去完成,可以實(shí)現(xiàn)跟現(xiàn)有的軟件虛擬網(wǎng)絡(luò)系統(tǒng)兼容,支持更加動(dòng)態(tài)且靈活的虛擬網(wǎng)絡(luò)設(shè)計(jì),實(shí)現(xiàn)硬件的高效和軟件的靈活兼顧。
圖1 VxLAN Tx項(xiàng)虛擬化映射
1.2 廣義的網(wǎng)絡(luò)虛擬化
除了虛擬網(wǎng)絡(luò)場(chǎng)景,還有一些網(wǎng)絡(luò)場(chǎng)景具有虛擬化的特征:比如負(fù)載均衡,通過把數(shù)量眾多的后端服務(wù)器虛擬成一臺(tái)強(qiáng)大的服務(wù)器來提供服務(wù);再比如NAT,內(nèi)網(wǎng)服務(wù)器可以通過一個(gè)公網(wǎng)IP訪問互聯(lián)網(wǎng),站在內(nèi)網(wǎng)服務(wù)器的角度,可以看作是把一個(gè)公網(wǎng)訪問IP虛擬化成多個(gè)公網(wǎng)訪問IP。
更廣泛的,網(wǎng)絡(luò)是分層的體系,每一層從下一層的接口獲取服務(wù)、然后實(shí)現(xiàn)本層的功能,再把本層的功能封裝成新的接口,通過接口提供服務(wù)給上一層。站在整個(gè)網(wǎng)絡(luò)系統(tǒng)的角度,網(wǎng)絡(luò)的每一層都可以看作是一層虛擬化封裝,為上一層提供新的服務(wù)接口。
硬件實(shí)現(xiàn)的網(wǎng)絡(luò)包處理架構(gòu),可以支持很多不同類型的網(wǎng)絡(luò)協(xié)議。特別是數(shù)據(jù)面可編程的網(wǎng)絡(luò)包處理架構(gòu),不需要預(yù)先把可能要支持的協(xié)議都實(shí)現(xiàn),只需要根據(jù)自己的場(chǎng)景需要,編程實(shí)現(xiàn)特定的若干個(gè)協(xié)議就好。數(shù)據(jù)面可編程的網(wǎng)絡(luò)包處理可以非常方便的支持特定場(chǎng)景應(yīng)用,實(shí)現(xiàn)高效的網(wǎng)絡(luò)虛擬化硬件加速處理。
2 定制的網(wǎng)絡(luò)包處理
傳統(tǒng)的ASIC實(shí)現(xiàn)的定制網(wǎng)絡(luò)協(xié)議處理流水線,在設(shè)計(jì)的開始,需要確定場(chǎng)景以及支持的協(xié)議,理論上可以實(shí)現(xiàn)最高的網(wǎng)絡(luò)包處理性能。
如圖2,是一個(gè)定制的網(wǎng)絡(luò)包處理流水線,每個(gè)階段都是固定的功能,支持的是特定協(xié)議的處理,想更新新的協(xié)議需要重新設(shè)計(jì)新的芯片,因此對(duì)新協(xié)議的支持非常困難。
圖2 定制協(xié)議網(wǎng)絡(luò)包處理流水線示例
如圖3,IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)的RFC(Request for Comments,請(qǐng)求意見稿,即網(wǎng)絡(luò)協(xié)議)數(shù)量一直在爆炸式的增長,應(yīng)用于各種新型網(wǎng)絡(luò)場(chǎng)景的新協(xié)議層出不窮。但是,傳統(tǒng)的網(wǎng)絡(luò)處理芯片都是封閉的、特定的設(shè)計(jì),用于特定協(xié)議處理。想要增加新的協(xié)議非常困難,并且對(duì)新協(xié)議的支持受到不同供應(yīng)商的約束。定制的網(wǎng)絡(luò)處理芯片,對(duì)新協(xié)議的支持不足以及缺乏有效的靈活性,這使得要想在網(wǎng)絡(luò)系統(tǒng)增加新的功能非常困難,限制了客戶的網(wǎng)絡(luò)創(chuàng)新能力。
圖3 IETF RFC的數(shù)量增長
3 ASIC軟件可編程包處理
本節(jié)通過數(shù)據(jù)面編程的背景知識(shí)、RMT模型以及流水線映射三個(gè)方面介紹可軟件編程的ASIC包處理流水線。
3.1 數(shù)據(jù)面編程的網(wǎng)絡(luò)包處理流水線
Nick McKeown 在 ONF Connect 2019演講中定義了SDN發(fā)展的三個(gè)階段:
第一階段(2010–2020年):通過Openflow將控制面和數(shù)據(jù)面分離,用戶可以通過集中的控制端去控制每個(gè)交換機(jī)的行為;
第二階段(2015–2025年):通過P4編程語言以及可編程FPGA或ASIC實(shí)現(xiàn)數(shù)據(jù)面可編程,這樣,在包處理流水線加入一個(gè)新協(xié)議的支持,開發(fā)周期從數(shù)年降低到數(shù)周;
第三階段(2020–2030年):展望未來,網(wǎng)卡、交換機(jī)以及協(xié)議棧均可編程,整個(gè)網(wǎng)絡(luò)成為一個(gè)可編程平臺(tái)。
這預(yù)示著,未來不管是交換機(jī)側(cè)還是網(wǎng)卡側(cè),均需要實(shí)現(xiàn)類似CPU于通用程序設(shè)計(jì)的完全可編程的網(wǎng)絡(luò)處理引擎,并且要基于此平臺(tái)實(shí)現(xiàn)一整套的軟件堆棧。把一個(gè)完全可編程的網(wǎng)絡(luò)交給用戶,支撐用戶更快速的網(wǎng)絡(luò)創(chuàng)新。
圖4中介紹的PISA(Protocol Independent Switch Architecture,協(xié)議無關(guān)的交換架構(gòu)),是一種支持P4數(shù)據(jù)面可編程包處理的流水線引擎架構(gòu),通過可編程的解析器、多階段的可編程的匹配動(dòng)作以及可編程的逆解析器組成的流水線,來實(shí)現(xiàn)數(shù)據(jù)面的編程。這樣可以通過編寫P4程序,下載到處理器流水線,可以非常方便的支持新協(xié)議的處理。
圖4 PISA的數(shù)據(jù)面可編程網(wǎng)絡(luò)包處理流水線
3.2 可重配置的匹配表模型
RMT(Re-Configurable Match-Action Tables,可重配置匹配表)模型,是一種基于RISC的用于網(wǎng)絡(luò)包處理的流水線架構(gòu)。RMT允許自定義數(shù)量的包頭和包頭序列,通過自定義大小的匹配表對(duì)字段進(jìn)行任意匹配,對(duì)數(shù)據(jù)包包頭字段進(jìn)行自定義的寫入,以及數(shù)據(jù)包的狀態(tài)更新。RMT允許在不更改硬件的情況下在現(xiàn)場(chǎng)更改網(wǎng)絡(luò)數(shù)據(jù)面, PISA架構(gòu)從RMT模型中獲得了很多的設(shè)計(jì)靈感。
如圖5所示,是包處理流水線核心處理“匹配動(dòng)作”階段的內(nèi)部架構(gòu)。每個(gè)匹配階段都允許配置匹配表的大小,例如,對(duì)于IP轉(zhuǎn)發(fā),可能需要一個(gè)256K 32位前綴的匹配表;輸入選擇器選擇要匹配的字段;數(shù)據(jù)包修改使用VLIW(Very Long Instruction Word,超長指令字,一種比較特殊的CPU架構(gòu)實(shí)現(xiàn))架構(gòu)的ALU動(dòng)作單元,該指令字可以同時(shí)對(duì)包頭向量中的所有字段進(jìn)行操作。
圖5 匹配動(dòng)作的架構(gòu)
如圖6,RMT定義了一個(gè)可編程的解析器。解析器輸入的是數(shù)據(jù)包數(shù)據(jù),輸出4K位的數(shù)據(jù)包頭向量。輸入的包頭數(shù)據(jù)和解析狀態(tài)信息不斷的送到TCAM去查詢,TCAM查詢會(huì)觸發(fā)動(dòng)作,這個(gè)動(dòng)作會(huì)更新狀態(tài)機(jī),并把結(jié)果送到字段提取處理,提取出的字段組成數(shù)據(jù)包字段向量輸出。
圖6 可編程的解析器模型
3.3 映射處理程序到包處理流水線
當(dāng)實(shí)現(xiàn)了完全可編程的流水線之后,在P4工具鏈的支持下,就可以通過P4編程的方式來實(shí)現(xiàn)自定義的流水線,來達(dá)到對(duì)自定義協(xié)議的支持。
如圖7所示,P4定義的Parser程序會(huì)被映射到可編程的解析器,數(shù)據(jù)、包頭定義、表以及控制流會(huì)被映射到多個(gè)匹配動(dòng)作階段。圖7中把L2處理、IPv4處理、IPv6處理以及訪問控制處理分別映射到不同的匹配動(dòng)作處理單元進(jìn)行串行或并行的處理,來實(shí)現(xiàn)完整的支持各種協(xié)議的網(wǎng)絡(luò)包處理。
圖7 基于PISA流水線的數(shù)據(jù)包處理示例
4 FPGA硬件可編程包處理
Xilinx在2014年推出SDNet(Software Defined Specification Environment for Networking,軟件定義網(wǎng)絡(luò)規(guī)范環(huán)境)解決方案,將可編程能力和智能化功能從控制面擴(kuò)展至數(shù)據(jù)面。SDNet支持可編程數(shù)據(jù)層功能設(shè)計(jì),其功能規(guī)范可自動(dòng)編譯到賽靈思的FPGA和SoC中。
如圖8, Xilinx的SDNet可以通過編程實(shí)現(xiàn)數(shù)據(jù)面代碼的自動(dòng)生成,可以支持從簡單的數(shù)據(jù)包分類到復(fù)雜的數(shù)據(jù)包編輯的各種數(shù)據(jù)包處理功能。SDNet支持P4編程,可以通過編寫標(biāo)準(zhǔn)的P4程序來實(shí)現(xiàn)SDNet的包處理。
圖8 Xilinx SDNet解決方案及開發(fā)環(huán)境
SDNet是充分利用FPGA器件的硬件可編程性來實(shí)現(xiàn)包處理的靈活性的,通過P4實(shí)現(xiàn)功能靈活且特定的包處理規(guī)則,通過SDNet的編譯器,把P4程序生成特定的RTL代碼,再經(jīng)過自動(dòng)化的FPGA流程處理,把生成的鏡像更新到FPGA中。而從設(shè)計(jì)架構(gòu)的角度,SDNet的實(shí)現(xiàn)機(jī)制仍屬于定制的網(wǎng)絡(luò)包處理流水線,其解析器、編輯器以及查找動(dòng)作等處理都是針對(duì)特定的包的處理,支持的是特定的(標(biāo)準(zhǔn)的或用戶自定義的)網(wǎng)絡(luò)協(xié)議。
SDNet基于模塊化設(shè)計(jì),包括各種不同類型引擎以及引擎之間的連接接口。這些引擎通過與數(shù)據(jù)包和元組通信,以實(shí)現(xiàn)更大的系統(tǒng)行為。執(zhí)行模型是被動(dòng)的,基于同步數(shù)據(jù)流模型,當(dāng)所有輸入到達(dá)時(shí)觸發(fā)引擎工作。輸入可以是數(shù)據(jù)包以及相應(yīng)的作為元組通信的元數(shù)據(jù)。
SDNet數(shù)據(jù)流模型的端口有:
數(shù)據(jù)包。數(shù)據(jù)包端口是SDNet主要的接口,負(fù)責(zé)在引擎之間以及外部環(huán)境傳遞數(shù)據(jù)包。
元組。元組端口是輔助的SDNet接口,負(fù)責(zé)引擎之間以及與外部環(huán)境傳遞與數(shù)據(jù)包相關(guān)的元數(shù)據(jù)。
訪問。SDNet中的訪問端口由編譯器在后臺(tái)連接,并在在數(shù)據(jù)流模型中進(jìn)行了說明。SDNet規(guī)范并未明確實(shí)例化或連接這些端口,它們由編譯器自動(dòng)連接。
自定義格式。SDNet中的自定義格式端口用于,上述三種類型無法涵蓋的,與用戶引擎之間的通信接口。
SDNet通過分層的系統(tǒng)構(gòu)建,包含各種不同類型引擎:
解析引擎。用于讀取和解碼數(shù)據(jù)包頭,并提取所需的信息用于分類或之后的數(shù)據(jù)包修改。解析引擎只能讀取數(shù)據(jù)包,而不能修改它們??梢詫?duì)從數(shù)據(jù)包提取的數(shù)據(jù)執(zhí)行計(jì)算,并將數(shù)據(jù)作為輸出元組傳輸。
編輯引擎。用于處理數(shù)據(jù)包。編輯引擎無法直接從總線讀取數(shù)據(jù)包,但可以寫入數(shù)據(jù)包路徑,用于插入、替換或移除數(shù)據(jù)包。以從分組中插入,替換或刪除數(shù)據(jù)。
元組引擎。主要用于處理元組并基于元組數(shù)據(jù)計(jì)算新的元組信息,這些元組數(shù)據(jù)可能由外部或其他引擎輸出的數(shù)據(jù)包或數(shù)據(jù)確定。
查找引擎。實(shí)現(xiàn)對(duì)各種不同類型表的搜索。SDNet包含一個(gè)具有不同查找引擎類型的小型庫,包含四種類型:EM(Exact Match,完全匹配)、LPM(Longest Prefix Match最長前綴匹配)、TCAM(Ternary Content Addressable Memory,三態(tài)按內(nèi)容尋址內(nèi)存)或直接地址查找(RAM)。
用戶引擎。允許用戶將自定義IP內(nèi)核導(dǎo)入SDNet規(guī)范,以利用SDNet框架進(jìn)行數(shù)據(jù)平面構(gòu)建和系統(tǒng)仿真。在SDNet中,用戶引擎只定義引擎的接口,但不定義引擎的行為。用戶引擎必須符合SDNet數(shù)據(jù)流模型的同步數(shù)據(jù)流行為。
系統(tǒng)。在SDNet模型中,系統(tǒng)被視為一種引擎。根據(jù)引擎的匹配端口類型,系統(tǒng)將引擎連接在一起。系統(tǒng)只能包含一個(gè)數(shù)據(jù)包輸入端口和一個(gè)數(shù)據(jù)包輸出端口。系統(tǒng)只允許元組輸出,不允許元組輸入。系統(tǒng)還可以具有用于連接子系統(tǒng)或用戶引擎的自定義端口。子系統(tǒng)是在父SDNet系統(tǒng)中例化的另一個(gè)SDNet系統(tǒng)。
5 案例:Mellanox FlexFlow
高性能的以太網(wǎng)交換機(jī)是現(xiàn)代數(shù)據(jù)中心的網(wǎng)絡(luò)核心,不斷變化的虛擬化和能自我修復(fù)的網(wǎng)絡(luò)架構(gòu),都要求交換機(jī)具有動(dòng)態(tài)的編程功能。Mellanox FlexFlow使得交換機(jī)支持用戶自定義功能,F(xiàn)lexFlow具有非常好的可編程能力以及靈活性,支持大規(guī)模并行數(shù)據(jù)包處理以及完全共享的有狀態(tài)的轉(zhuǎn)發(fā)數(shù)據(jù)庫。
如圖9,Mellanox FlexFlow的包處理流水線跟傳統(tǒng)交換機(jī)的包處理流水線相比:
傳統(tǒng)的包處理流水線具有嚴(yán)格的流水線功能約束;而FlexFlow具有可編程的解析器、編輯器以及可編程的流水線。
傳統(tǒng)包處理流水線所有的流量是串行的處理;而FlexFlow支持大量的并行以確保最大吞吐。
因?yàn)榇?,傳統(tǒng)的包處理流水線具有很高的延遲;而FlexFlow針對(duì)每個(gè)流進(jìn)行優(yōu)化,確保更低的延遲。
傳統(tǒng)的包處理流水線采用分散的查找表資源,更低的擴(kuò)展性但更高的功耗;而FlexFlow共享查找表資源,因此具有更高的擴(kuò)展性以及更低的功耗。
(a) 傳統(tǒng)交換機(jī)流水線
(b) Mellanox FlexFlow流水線
圖9 傳統(tǒng)的交換機(jī)流水線和FlexFlow比較
FlexFlow具有如下典型特征:
深度的包解析。解析器是數(shù)據(jù)包處理流水線的第一個(gè)階段。該階段負(fù)責(zé)將輸入的數(shù)據(jù)翻譯成有意義的數(shù)據(jù)包頭字段,這些字段會(huì)被用于轉(zhuǎn)發(fā)、策略實(shí)施和QoS。FlexFlow支持可編程的數(shù)據(jù)包處理,可以解析多達(dá)512B的數(shù)據(jù)包。更大的解析深度和自定義支持的數(shù)據(jù)包格式,數(shù)據(jù)包處理流水線可以支持更豐富的隧道傳輸、更先進(jìn)的遙測(cè),同時(shí)還可以支持新的網(wǎng)絡(luò)協(xié)議。
靈活的特定于流的查找表。FlexFlow可編程流水線可以定義查找表數(shù)量,可以以流為單位配置查找關(guān)鍵字。查找動(dòng)作包括標(biāo)準(zhǔn)的轉(zhuǎn)發(fā)、策略行為以及指向下一個(gè)查找表的指針??梢栽诿恳粭l流的粒度,定制表的數(shù)量、查找的序列、匹配關(guān)鍵字和動(dòng)作?;诹髁6鹊牟檎倚蛄?,數(shù)據(jù)包處理可以多次訪問同一張表?;诹髁6鹊牟檎倚蛄?,F(xiàn)lexFlow可以在固定的物理網(wǎng)絡(luò)拓?fù)渲袑?shí)現(xiàn)靈活多變的網(wǎng)絡(luò)抽象。
功能強(qiáng)大的隧道。靈活的數(shù)據(jù)包編輯引擎通過編程添加、修改和刪除多層數(shù)據(jù)包頭。FlexFlow支持可編程的封裝和解封裝、IPv4選項(xiàng)、IPv6擴(kuò)展以及多種Overlay協(xié)議。FlexFlow為未來的隧道和Overlay技術(shù)提供了很好的支持,這些技術(shù)是未來幾年網(wǎng)絡(luò)虛擬化的根本。
完全共享的查找表。傳統(tǒng)的交換機(jī)使用碎片化的轉(zhuǎn)發(fā)表,這些轉(zhuǎn)發(fā)表硬連線到特定的流水線階段。用于流水線階段的表的資源和查找表大小都是預(yù)先定義好的。在某個(gè)特定的流水線階段中的表資源可能存在浪費(fèi)。FlexFlow可以實(shí)現(xiàn)高效的表共享,可以提供幾乎無限的查找表大小的設(shè)定,這使得基于FlexFlow的交換機(jī)可以支持當(dāng)前的以及未來的網(wǎng)絡(luò)協(xié)議所需的所有數(shù)據(jù)包轉(zhuǎn)換。
綜合遙測(cè)。FlexFlow流水線使用靈活的有狀態(tài)的流水線階段,以編程的方式提取元數(shù)據(jù)并提供實(shí)時(shí)遙測(cè)。隨著數(shù)據(jù)中心網(wǎng)絡(luò)復(fù)雜性日益提升,F(xiàn)lexFlow提供了完全集成的遙測(cè)功能,減少了故障時(shí)間,增加正常運(yùn)行時(shí)間,更好的優(yōu)化了網(wǎng)絡(luò)架構(gòu)的利用率。
6 網(wǎng)絡(luò)包處理總結(jié)
網(wǎng)絡(luò)包處理是一個(gè)特定的領(lǐng)域,具有非常明顯的特征,通過ASIC實(shí)現(xiàn)效率最高。有利必有弊,ASIC實(shí)現(xiàn)極大的約束了網(wǎng)絡(luò)的靈活性。上層的網(wǎng)絡(luò)用戶只是一個(gè)使用者,只能使用ASIC提供的功能;而不是作為一個(gè)開發(fā)者,開發(fā)創(chuàng)新自己想要的功能。隨著這些年來互聯(lián)網(wǎng)的迅猛發(fā)展,新協(xié)議層出不窮,甚至有些網(wǎng)絡(luò)服務(wù)商會(huì)采用一些私有協(xié)議。用戶需要極大的網(wǎng)絡(luò)創(chuàng)新來支撐自己的業(yè)務(wù)發(fā)展,對(duì)網(wǎng)絡(luò)的可管理性、可編程性要求變得越來越高。硬件實(shí)現(xiàn)的網(wǎng)絡(luò)處理加速,勢(shì)必需要從專用向通用方向適當(dāng)?shù)幕卣{(diào)。
跟通常的硬件加速從通用到專用的趨勢(shì)不同,網(wǎng)絡(luò)包處理流水線的實(shí)現(xiàn)是反其道而行,走的是從定制到部分可編程的道路。PISA等具有數(shù)據(jù)面可編程能力的網(wǎng)絡(luò)包處理流水線很好的實(shí)現(xiàn)了通用和專用之間的平衡:
部分可編程性(而不是完全可編程),可以保證單個(gè)包處理引擎的性能和效率(跟完全定制的ASIC比較)不受太多影響。
通用的處理引擎降低了硬件的耦合性和復(fù)雜度,可以實(shí)現(xiàn)更大規(guī)模的并行度,反而可以更好的提升性能。
ASIC因?yàn)樵O(shè)計(jì)門檻的原因,希望盡可能覆蓋較多的應(yīng)用場(chǎng)景,在具體的某個(gè)場(chǎng)景中,必然存在無關(guān)協(xié)議所占用硬件資源所導(dǎo)致的資源浪費(fèi)的情況;而數(shù)據(jù)面可編程的設(shè)計(jì)具有的靈活性,可以更大限度的保證物盡其用,把所有硬件資源都用于場(chǎng)景相關(guān)的協(xié)議處理,在硬件資源利用率方面,反而高于ASIC。打個(gè)比方,某ASIC網(wǎng)絡(luò)芯片支持100種不同的網(wǎng)絡(luò)協(xié)議處理,但實(shí)際應(yīng)用場(chǎng)景只需要其中的10種協(xié)議;在同等晶體管資源占用下,假設(shè)數(shù)據(jù)面可編程的架構(gòu)只能支持50種網(wǎng)絡(luò)協(xié)議的處理,這樣當(dāng)我們處理10種協(xié)議的時(shí)候,可以編程實(shí)現(xiàn)并行的5路處理,性能反而高于純ASIC定制的流水線。
提供的軟件可編程性,用戶可以靈活快速的實(shí)現(xiàn)特定場(chǎng)景協(xié)議,而不需要關(guān)心場(chǎng)景無關(guān)的協(xié)議,反而降低了軟件編程的復(fù)雜度。
從整個(gè)流水線實(shí)現(xiàn)架構(gòu)來看,基于部分可編程能力的PISA等架構(gòu)實(shí)現(xiàn)的網(wǎng)絡(luò)包處理芯片是一種DSA架構(gòu)處理器。
評(píng)論