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