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