多核網(wǎng)絡(luò)處理器及其開發(fā)考慮成為關(guān)注焦點
網(wǎng)絡(luò)全光化進(jìn)程的加速以及網(wǎng)絡(luò)技術(shù)的演進(jìn)擴(kuò)展了傳統(tǒng)數(shù)據(jù)業(yè)務(wù)以外的多業(yè)務(wù)模式,諸如音視頻下載、P2P流媒體等業(yè)務(wù)對網(wǎng)絡(luò)的業(yè)務(wù)承載能力提出了新的挑戰(zhàn)。隨之而來的線速處理和可管理需求已使傳統(tǒng)網(wǎng)絡(luò)設(shè)備不堪重荷,因此新型網(wǎng)絡(luò)設(shè)備需要具備快速的業(yè)務(wù)升級能力和高性能的處理能力以提高網(wǎng)絡(luò)容量。目前,采用多內(nèi)核和并行處理結(jié)構(gòu)的網(wǎng)絡(luò)處理器(Network Processor)在中高端網(wǎng)絡(luò)設(shè)備中的使用已逐漸成為趨勢。但與計算和消費市場一樣,通信網(wǎng)絡(luò)市場的多核并行處理的開發(fā)也面臨著前所未有的挑戰(zhàn),因此如何突破NP多核架構(gòu)的開發(fā)瓶頸已成為業(yè)界關(guān)注的焦點。
多業(yè)務(wù)流催生新型多核網(wǎng)絡(luò)處理器
NP融合了CPU的靈活性和ASIC的高性能特點。NP擁有很強(qiáng)的硬件并行處理能力,其可通過多內(nèi)核實現(xiàn)處理器級的并行處理,因此使用多核NP實現(xiàn)并行交換(PPS)能很好地提升網(wǎng)絡(luò)容量。高性能系統(tǒng)需求可以說是驅(qū)動多內(nèi)核和快速處理技術(shù)需求的動力。新型多核NP被應(yīng)用在控制平面、數(shù)據(jù)平面以及兩者結(jié)合的處理。目前主要的多核NP半導(dǎo)體廠商有MIPS架構(gòu)陣營的Cavium、RMI、博通,以及PowerPC架構(gòu)陣營飛思卡爾。
很多應(yīng)用具有寬廣的性能范圍和能根據(jù)內(nèi)核性能和數(shù)量進(jìn)行縮放的解決方案。這些能力可以使系統(tǒng)廠商很容易實行跨平臺保存和重新利用遺留代碼并移植到未來的應(yīng)用,因此增加性能和添加增值功能對網(wǎng)絡(luò)設(shè)備而言十分有必要。多核NP主要通過可縮放的方式卸載TCP性能,而新型多核NP的片上內(nèi)容處理卸載可以對L4層以上的分組提供處理并能夠?qū)崿F(xiàn)片上壓縮/解壓。為了幫助內(nèi)核卸載,多數(shù)多核處理器的廠商都集成了特殊的硬件加速器進(jìn)行那些可用硬件更高效實現(xiàn)的處理。由于新的多核處理器結(jié)合了硬件加速技術(shù),多內(nèi)核與多I/O可以共享同一數(shù)據(jù)報內(nèi)的分組的所有部分,來自這些模塊的關(guān)于位置和數(shù)據(jù)可追蹤與可接入的信息實質(zhì)上可以用來調(diào)試軟件。而通過平臺利用這些信息優(yōu)化性能同樣變得重要。可視化是驅(qū)動多核處理器的管理程序功能支持的另一個趨勢。
面對日益增長的P2P業(yè)務(wù)流,深層包檢測(DPI)技術(shù)被認(rèn)為是對付網(wǎng)絡(luò)多業(yè)務(wù)所帶來的管理/控制挑戰(zhàn)的有效方法。模式匹配是實現(xiàn)DPI的基礎(chǔ),而多核 NP能對DPI的模式匹配提供有力的支持。實現(xiàn)DPI的模式匹配主要有TCAM(三態(tài)內(nèi)容可訪問存儲器)模式匹配以及正則表示模式匹配。其中,TCAM是一種用于硬件加速查找的外接式存儲器,廣泛用于早期的高端路由器上。但其靈活性較差、功耗大。面對下一代網(wǎng)絡(luò)的高吞吐量需求LA-1接口已經(jīng)逐漸不能滿足,目前主要TCAM生產(chǎn)廠商正為下一代TCAM制定新接口。正則表示式(regular expression)模式匹配由于具備高性能和高靈活性特點正逐漸成為DPI模式匹配的主流。
由于在DPI下交換協(xié)議、病毒定義和頻繁的更新需要模式數(shù)據(jù)庫,而為實現(xiàn)DPI性能需求,也對存儲器帶寬提出了需求。飛思卡爾半導(dǎo)體通過模式匹配引擎(PME)提供快速編譯和提升了模式更新,因為可以使用廉價的DDR2存儲模式使PME的吞吐量無需依賴于外部存儲器。PME使用NFA(非確定性無限自動機(jī))解決DPI中的模式剖析問題。另外,在分組的狀態(tài)檢測過程中也可以使用狀態(tài)規(guī)則引擎(stateful rule engine)卸載更多的CPU帶寬。多核處理器不但需要低延時存儲器訪問以進(jìn)行高性能的L2和L3路由判決,而且需要具有高性能正則表示式的查找加速以允許分組能夠被安全應(yīng)用搜查到,也同樣需要安全加速以處理分組的壓縮/解壓。所有這些加速器和多個內(nèi)核共享數(shù)據(jù)和狀態(tài)使得高帶寬互連變得尤其重要。而這個互連必須是完全緩存一致性的。據(jù)飛思卡爾半導(dǎo)體網(wǎng)絡(luò)和多媒體應(yīng)用處理器部門的Jeffrey Ho介紹,飛思卡爾即將推出的多核平臺將會支持三級緩存體系以滿足那些同時需要共享前端緩存和本地后端緩存的應(yīng)用。另外,由于用于L4層及以上的應(yīng)用的模式匹配卸載需要靈活性和易于編程,在那些快速的業(yè)務(wù)更新里就無需外接昂貴的TCAM和RLDRAM了,PME引擎能圍繞匹配的狀態(tài)操作也無需進(jìn)行軟件的交互。
總的來看,新型多核NP相對于傳統(tǒng)的微引擎/微碼NP有很多優(yōu)勢。首先具有更好的編程性,例如能使用Linux、VxWorks或者BSD這些基于C /C++語言的標(biāo)準(zhǔn)嵌入式操作系統(tǒng),以及多種標(biāo)準(zhǔn)開發(fā)環(huán)境;并能夠?qū)⒖刂?、管理和?shù)據(jù)平面軟件集成到單芯片里面。但高應(yīng)用吞吐量才是高端NP首要關(guān)注的,低端NP提高集成度是為了達(dá)到降低成本的目的。而在應(yīng)用中是否采用NP和ASIC/FPGA結(jié)合的方式則要視乎具體情況而定。目前,有廠商把控制和數(shù)據(jù)平面集成到單顆NP里面,但高端應(yīng)用仍將它們進(jìn)行分離處理。因為這更多的是取決于遺留代碼、軟件及具體方法而不是由NP的功能集成的支持度所決定的,所以在未來的高端設(shè)備設(shè)計當(dāng)中NP和ASIC/FPGA將長期共存,這樣才能夠進(jìn)行諸如背板事務(wù)的處理以及能為產(chǎn)品提供區(qū)別于競爭對手產(chǎn)品的附加值。
圖1:飛思卡爾即將推出的多核通信平臺將支持三級緩存。
多核NP在高層應(yīng)用中面臨挑戰(zhàn)
傳統(tǒng)NP不支持標(biāo)準(zhǔn)操作系統(tǒng)和C/C++代碼。新型多核NP已經(jīng)發(fā)展成為可以支持標(biāo)準(zhǔn)編程設(shè)計模塊、C/C++和Linux、VxWorks和BSD等操作系統(tǒng)的NP。多核架構(gòu)因為可以通過不同的處理單元并行處理任務(wù),因此可以為整個系統(tǒng)帶來好處。根據(jù)阿姆達(dá)爾定律,多核軟件性能將很大程度上依賴于順序執(zhí)行的代碼數(shù)量。嵌入式系統(tǒng)復(fù)用了舊系統(tǒng)大量的遺留代碼,而其中大部分的代碼庫是為單核處理而編寫的。通常這些已寫好的軟件是單線程的,必須依賴代碼的順序執(zhí)行。因此需要把代碼分割成很多小片,同時減少順序執(zhí)行代碼的數(shù)量。在利用多核NP進(jìn)行設(shè)計的時候,開發(fā)人員必須時刻提醒自己是在使用多核與硬件加速。
單處理核心的負(fù)載平衡可以由OS很容易的完成。但是對于多核來說,要視乎是不對稱多重處理(AMP)還是對稱多重處理(SMP)操作系統(tǒng)。AMP OS的負(fù)載平衡是靜止的并依賴于程序員來分割代碼。因此當(dāng)工作量不一致時問題就出現(xiàn)了,而靜態(tài)平衡則意味著他們需要對代碼進(jìn)行重分割以適應(yīng)不同的環(huán)境。其他的問題還包括并行處理時內(nèi)核間的優(yōu)化、處理器的共享數(shù)據(jù)的優(yōu)化、在多核環(huán)境下尋找重部署代碼庫的方法以及用軟件包集成通用產(chǎn)品和性能。[!--empirenews.page--]
如何在多核之間分割代碼變成一項極為艱難的決定,無論是使用SMP、AMP還是兩者的結(jié)合形式。很多的單核應(yīng)用必須將數(shù)據(jù)平面和/或控制平面功能從單核處理器分離到多核方案里。而了解分布軟件的選擇則變得重要。
一些工程師覺得多核NP在做交換時效果很好,但其在更高層應(yīng)用的效果并不理想。對此,飛思卡爾的Jeffrey Ho認(rèn)為當(dāng)多核處理器超過4個內(nèi)核的時候,互連性能的瓶頸必須得到優(yōu)化,這樣才允許架構(gòu)可以擴(kuò)展到8內(nèi)核甚至是16內(nèi)核以上;同時,Jeffrey Ho指出多核NP現(xiàn)在的確是出現(xiàn)了編程問題的瓶頸,傳統(tǒng)NP和嵌入多核產(chǎn)品由于缺少編程能力以及基礎(chǔ)工具和驅(qū)動,因此源代碼庫對于L1和L2功能非常高效,但對于多核NP的高層應(yīng)用則無法得到優(yōu)化。此外,AMCC集成通信產(chǎn)品業(yè)務(wù)部副總裁兼總經(jīng)理Daryn Lau則認(rèn)為4個內(nèi)核以上的NP是無法達(dá)到平衡的,而使用雙核NP則可分別對數(shù)據(jù)平面和控制平面進(jìn)行高效的管理,因此雙核NP有望成為未來的主流。
為多核NP選擇合適的開發(fā)平臺和工具
具體說到嵌入式操作系統(tǒng)對于多核NP軟件的開發(fā),常常是把Linux與風(fēng)河的VxWorks相提并論。這兩種操作系統(tǒng)各有其適應(yīng)性,在不同的情況下都會發(fā)揮各自的優(yōu)勢。Linux的優(yōu)勢之一是這種操作系統(tǒng)不僅在設(shè)備軟件領(lǐng)域得到應(yīng)用,而且在許多服務(wù)器環(huán)境中得到大量應(yīng)用,而網(wǎng)絡(luò)設(shè)備常常需要與高層管理軟件配合使用,因此在某些情況下,如果網(wǎng)絡(luò)設(shè)備本身和其上層的管理軟件都是由Linux編寫的,在集成性方面有可能會有一些便利性。
Linux的應(yīng)用范圍將會很廣,但設(shè)備嵌入式軟件開發(fā)與PC或服務(wù)器軟件開發(fā)最大的不同之處之一就是與硬件的相關(guān)性,PC或者服務(wù)器基本上是在一個標(biāo)準(zhǔn)的硬件環(huán)境中運行,而設(shè)備軟件的運行環(huán)境有很大的差異,所以應(yīng)該從產(chǎn)品研發(fā)和適用的環(huán)境去分析和判斷一個產(chǎn)品應(yīng)該采用Linux還是VxWorks來作為開發(fā)和運行平臺。選擇了Linux的開發(fā)人員應(yīng)該非常注意:到底要用多長的時間、人力和資源來維護(hù)和集成Linux平臺和工具,又可以用多長的時間、人力和資源來開發(fā)屬于自己的產(chǎn)品?因為Linux是開發(fā)源代碼的,可以自行從源代碼社區(qū)獲得所有的操作系統(tǒng)、開發(fā)工具和中間件,然后自己再把這些不同的部分集成起來,但這些工作一定會消耗大量的人力、時間和其他資源。從目前的狀況來看,大多數(shù)公司為了集中開發(fā)自身產(chǎn)品的獨特功能,目前還是選擇從開發(fā)工具提供商那里直接獲得集成、測試、驗證好的集成化Linux開發(fā)平臺套件。
風(fēng)河中國區(qū)總經(jīng)理韓青指出,在多核處理器開發(fā)中選擇什么樣的OS雖然重要,但是選擇什么樣的開發(fā)與調(diào)試工具更重要。多核開發(fā)人員總是都期望有一種工具,能夠把已經(jīng)為單核處理器開發(fā)的軟件直接轉(zhuǎn)換成可以在多核環(huán)境中運行的軟件。雖然有些廠商也宣稱,只要把用戶原有的單核處理軟件直接運行在自己的多核處理器上就可以大幅度提升性能,但到目前為止,甚至在今后一段時期內(nèi),這種期望都是不現(xiàn)實的。從目前的技術(shù)手段來看,要充分利用多核處理技術(shù)帶來的好處,例如獲得更高的處理性能、更有效的電源利用率,或者縮小裝置的體積,最有效的方法仍然是“調(diào)試”,也就是通過不斷的試驗來“發(fā)現(xiàn)”和“優(yōu)化”自己的算法。因此,擁有高效率的調(diào)試工具,是目前充分利用多核處理技術(shù)的最佳捷徑。
風(fēng)河的Workbench是目前唯一能夠同時支持VxWorks、Linux和其他專用操作系統(tǒng)的跨平臺IDE,其可同時支持多任務(wù)、多線程、多進(jìn)程、多 CPU、多板調(diào)試等。而風(fēng)河的JTAG解決方案使開發(fā)人員能夠同時停止或者啟動任何內(nèi)核,在一個或者多個內(nèi)核上設(shè)置斷點(包括條件斷點)。開發(fā)人員可以在諸如硬件Bring-Up、內(nèi)核、中間件和其他應(yīng)用功能調(diào)試的時候采用JTAG連接。另外,Workbench Eclipse還支持基于代理的調(diào)試方式幫助開發(fā)人員在適當(dāng)?shù)臅r機(jī)平滑地轉(zhuǎn)移到基于代理的調(diào)試,而這些調(diào)試工作都是圍繞著同一個應(yīng)用進(jìn)行的。
本文小結(jié)
數(shù)據(jù)、語音和視頻以及多功能的融合將驅(qū)動基礎(chǔ)設(shè)施市場,高網(wǎng)絡(luò)帶寬和更高業(yè)務(wù)質(zhì)量需求最終也將推動網(wǎng)絡(luò)處理器的發(fā)展及其市場,但基于多核NP的開發(fā)面臨挑戰(zhàn)。本文介紹了網(wǎng)絡(luò)處理器是如何幫助滿足網(wǎng)絡(luò)業(yè)務(wù)的爆炸性需求,另外還闡述了有助于采用多核NP進(jìn)行開發(fā)的觀點并介紹了相應(yīng)的開發(fā)工具。