下一代數(shù)據(jù)包處理技術(shù)架構(gòu)選擇
圖3:數(shù)據(jù)流架構(gòu)(圖3)擁有包含數(shù)百個(gè)PISC處理器內(nèi)核的單個(gè)流水線,以及嵌入式引擎接入點(diǎn)。
PISC是專為數(shù)據(jù)包處理設(shè)計(jì)的處理器核。流水線可以包含數(shù)百個(gè)(超過400)PISC。EAP是用于分類任務(wù)的專用I/O單元。EAP統(tǒng)一訪問存儲(chǔ)在嵌入式或外部存儲(chǔ)器(TCAM、SRAM、DRAM)中的存儲(chǔ)表,并包含用于計(jì)量、計(jì)數(shù)、散列、格式化、流量管理以及表搜索的資源引擎。
執(zhí)行語(yǔ)境是程序員可用的數(shù)據(jù)包內(nèi)的具體數(shù)據(jù)。它包括數(shù)據(jù)包最初的256個(gè)字節(jié)、通用寄存器、設(shè)備寄存器和狀態(tài)標(biāo)志。一個(gè)執(zhí)行語(yǔ)境唯一地對(duì)應(yīng)一個(gè)數(shù)據(jù)包并使該數(shù)據(jù)包在流水線內(nèi)傳送。
數(shù)據(jù)包在流水線中傳送就像在一個(gè)固定長(zhǎng)度的先入先出(FIFO)設(shè)備中行進(jìn)一樣。在每個(gè)時(shí)鐘周期,流水線內(nèi)的所有數(shù)據(jù)包都前移一級(jí)以便在下一個(gè)處理器或EAP內(nèi)執(zhí)行。
指令總是在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行完。每條指令都能以超長(zhǎng)指令字(VLIW)方式并行執(zhí)行多達(dá)5個(gè)操作。然后,數(shù)據(jù)包繼續(xù)前進(jìn)到下一個(gè)PISC或EAP。
數(shù)據(jù)平面程序經(jīng)編譯后存儲(chǔ)在位于處理器核內(nèi)的指令存儲(chǔ)器,從而無(wú)需在程序執(zhí)行期間從共享存儲(chǔ)器內(nèi)將指令發(fā)送到處理器內(nèi)核。另外,此舉還顯著提升了性能,降低了功耗。
編程模式反映出眾所周知的順序單處理器模式,其中,程序員可以編寫順序執(zhí)行的模塊以避免多個(gè)并行編程(即存儲(chǔ)器連貫性、一致性和同步)的麻煩。當(dāng)軟件被編譯后,程序代碼會(huì)自動(dòng)映射到由處理器內(nèi)核構(gòu)成的單一流水線。一個(gè)VLIW指令占用流水線中的一個(gè)處理器核。
這種架構(gòu)和編程模式的一個(gè)顯著好處是,它強(qiáng)制執(zhí)行線速運(yùn)作。每種數(shù)據(jù)包都有經(jīng)確保數(shù)量的操作和分類資源。
降低復(fù)雜度,提高性能
多核架構(gòu)無(wú)法保證某一水平的性能,而數(shù)據(jù)流架構(gòu)是完全確定性的(表2)。通過降低復(fù)雜度并面向2-4層包處理充分優(yōu)化架構(gòu),數(shù)據(jù)流架構(gòu)的設(shè)計(jì)可擴(kuò)展到數(shù)百個(gè)處理器核,從而能以強(qiáng)大的線速保證支持100Gbps的速率和每秒1.5億個(gè)數(shù)據(jù)包的操作。
雖然原始處理器的性能非常重要,但在數(shù)據(jù)流架構(gòu)中,程序員將處理器性能發(fā)揮到極致的能力是衡量架構(gòu)實(shí)際效用的另一關(guān)鍵因素。從原子操作到表存儲(chǔ)的一系列公共存儲(chǔ)器操作允許高效編碼和代碼復(fù)用,這些操作獨(dú)立于存儲(chǔ)器類型(片上或外部存儲(chǔ)器)和貫穿整個(gè)流水線的通用處理器核。
在多核架構(gòu)中,每一級(jí)都需要處理能力的冗余配置,在實(shí)踐中,這對(duì)于總是感到處理資源短缺的程序員來(lái)說是個(gè)重大挑戰(zhàn)。因此,為恢復(fù)丟失的時(shí)鐘周期,數(shù)據(jù)平面程序員會(huì)陷入“測(cè)試-性能優(yōu)化-再測(cè)試-再性能優(yōu)化”這樣一個(gè)無(wú)盡的循環(huán)中。
針對(duì)數(shù)據(jù)包處理比較數(shù)據(jù)流與多核架構(gòu),兩款架構(gòu)在效率上的差異顯而易見。下面讓我們借助兩款當(dāng)今最先進(jìn)的處理器來(lái)比較2-4層包處理的各項(xiàng)指標(biāo)。
第一款處理器是Xelerated基于數(shù)據(jù)流架構(gòu)的HX 330 NPU。它工作在300MHz,擁有448個(gè)處理器核,每個(gè)內(nèi)核可同時(shí)進(jìn)行5項(xiàng)操作。每?jī)蓚€(gè)時(shí)鐘周期就有一個(gè)新數(shù)據(jù)包可以進(jìn)入流水線。
這相當(dāng)于每秒可處理1.5億個(gè)數(shù)據(jù)包,也就是說即使是最小的64字節(jié)以太網(wǎng)數(shù)據(jù)包,也需要確保能提供100Gbps的線速操作支持。每個(gè)數(shù)據(jù)包可確保5×448 =2240個(gè)操作。
當(dāng)然,2240個(gè)操作是理論上的數(shù)值。真實(shí)的數(shù)據(jù)平面應(yīng)用并不會(huì)用到全部的潛能。經(jīng)優(yōu)化的數(shù)據(jù)平面代碼大約用到50%的資源,這允許很高的服務(wù)密度。
第二款處理器是市場(chǎng)上性能最高的多核處理器之一。它擁有64個(gè)處理器核、工作在700 MHz。將該處理器用于100Gbps的數(shù)據(jù)包處理應(yīng)用時(shí),需要每四個(gè)時(shí)鐘周期調(diào)度一個(gè)新的數(shù)據(jù)包。平均而言,每個(gè)數(shù)據(jù)包理論上將獲得256個(gè)時(shí)鐘周期的處理能力。
同步挑戰(zhàn)以及管理共享數(shù)據(jù)所耗費(fèi)的性能會(huì)將整體性能降低到利用率最多為50%。這相當(dāng)于每個(gè)數(shù)據(jù)包128個(gè)操作,或者HX NPU的13%處理資源。此外,這些操作的性能得不到保證。
如果再考慮功耗因素,則兩者的差異更為顯著。基于數(shù)據(jù)流架構(gòu)的NPU,其每瓦性能(在線速下)是多核處理器架構(gòu)NPU的15至20倍。
不同需求,不同架構(gòu)
對(duì)于2-4層數(shù)據(jù)包處理來(lái)說,數(shù)據(jù)流架構(gòu)具有明顯優(yōu)勢(shì)。但其它比較卻會(huì)產(chǎn)生不同結(jié)果。因此,起初看起來(lái)具有競(jìng)爭(zhēng)力的方法實(shí)際上也許要大打折扣。
對(duì)面向服務(wù)的應(yīng)用來(lái)說,由于多核架構(gòu)能很好地協(xié)調(diào)共同工作,因此它們能夠有效地?cái)U(kuò)展。在一個(gè)分離的架構(gòu)中,系統(tǒng)供應(yīng)商可以利用基于數(shù)據(jù)流的處理器執(zhí)行2-4層處理并通過運(yùn)行多核處理器完成內(nèi)容識(shí)別、加密和完成服務(wù)等操作。
本文小結(jié)
有關(guān)架構(gòu)的爭(zhēng)論在不斷循環(huán)往復(fù)。十年前,在10Gbps以上領(lǐng)域業(yè)內(nèi)有30多家NPU供應(yīng)商。這些公司的研發(fā)大多基于多核架構(gòu)。
而今天,我們知道這種架構(gòu)在進(jìn)行2-4層數(shù)據(jù)包處理時(shí),無(wú)法與專用數(shù)據(jù)流架構(gòu)媲美。數(shù)據(jù)流架構(gòu)的能效要比多核架構(gòu)高出15至20倍,且嚴(yán)格保證線速。
當(dāng)就網(wǎng)絡(luò)處理對(duì)架構(gòu)進(jìn)行比較時(shí),不要被其所支持的接口帶寬所誤導(dǎo),因?yàn)槿绻豢紤]服務(wù)密度,則這一指標(biāo)沒有意義。當(dāng)服務(wù)提供商評(píng)估網(wǎng)絡(luò)平臺(tái)時(shí),真正有價(jià)值的是在線速操作下同時(shí)支持的服務(wù)數(shù)量。系統(tǒng)供應(yīng)商需要在研發(fā)階段的早期就密切關(guān)注服務(wù)密度。
雖然在2-4層處理的服務(wù)密度上達(dá)不到要求,但新一代多核處理器仍可滿足巨大且不斷增長(zhǎng)的網(wǎng)絡(luò)市場(chǎng)的需求。這是對(duì)基于網(wǎng)絡(luò)的服務(wù)和安全處理應(yīng)用的大力推動(dòng),它為現(xiàn)代多核處理器和數(shù)據(jù)流架構(gòu)的結(jié)合創(chuàng)造了新的機(jī)會(huì)(表3)。
超級(jí)電容器相關(guān)文章:超級(jí)電容器原理
評(píng)論