新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 下一代數(shù)據(jù)包處理技術(shù)架構(gòu)選擇

下一代數(shù)據(jù)包處理技術(shù)架構(gòu)選擇

作者: 時(shí)間:2011-06-08 來(lái)源:網(wǎng)絡(luò) 收藏
系統(tǒng)廠商在為滿足未來(lái)的擴(kuò)展性和集成挑戰(zhàn)而研究下一代數(shù)據(jù)包處理技術(shù)時(shí),面臨著多種架構(gòu)選擇。目前有兩種常用架構(gòu):通用多核架構(gòu)和專用數(shù)據(jù)流架構(gòu)。

  每種架構(gòu)都有其長(zhǎng)處。通常情況是,每個(gè)系統(tǒng)供應(yīng)商的設(shè)計(jì)決策歸根到底都是平臺(tái)的預(yù)期任務(wù)。從本質(zhì)上講,決策過(guò)程就是根據(jù)應(yīng)用選擇架構(gòu)的過(guò)程。

  數(shù)據(jù)包處理背景

  數(shù)據(jù)包處理是數(shù)據(jù)密集型操作,需要優(yōu)化的硬件。在寬帶互聯(lián)網(wǎng)出現(xiàn)之前,通用處理器既被用于控制會(huì)話處理又肩負(fù)用戶流量的數(shù)據(jù)包處理。

  但是,由數(shù)據(jù)和控制平面共享中央處理單元(CPU)資源的作法已被證明難以滿足隨帶寬需求增長(zhǎng)帶來(lái)的更高要求。對(duì)于交換機(jī)和路由器來(lái)說(shuō),數(shù)據(jù)平面的數(shù)據(jù)包處理任務(wù)已轉(zhuǎn)交給定制的固定功能ASIC或可編程網(wǎng)絡(luò)處理器單元(NPU)。從而把通用CPU解放出來(lái)以專門應(yīng)對(duì)控制平面任務(wù)。

  有幾家NPU供應(yīng)商一直在試圖針對(duì)2-4層包處理任務(wù)優(yōu)化通用處理器,并提供集成了網(wǎng)絡(luò)硬件(即物理層、媒體存取控制器和表存儲(chǔ)器)以及用于特定任務(wù)(即散列)的硬件引擎的多核架構(gòu)。在20世紀(jì)末20世紀(jì)初,MMC、C-Port和英特爾的IXP部門等機(jī)構(gòu)開(kāi)發(fā)了這類器件。

  雖然這些產(chǎn)品各有不同,但它們的基本架構(gòu)是相同的。通過(guò)降低復(fù)雜性,處理器核能夠得到簡(jiǎn)化,從而使得器件內(nèi)可以集成數(shù)十個(gè)處理器核以滿足更高的并行要求。

  除了極少數(shù)例外,這些NPU供應(yīng)商在商業(yè)上都不成功。根本原因是這些NPU不能有效地滿足超過(guò)10Gbps的網(wǎng)絡(luò)應(yīng)用對(duì)處理能力和存儲(chǔ)器訪問(wèn)方面的要求。

  現(xiàn)在,當(dāng)我們邁進(jìn)2010年,我們看到了旨在應(yīng)對(duì)網(wǎng)絡(luò)處理市場(chǎng)的新一代多核供應(yīng)商的出現(xiàn)。雖然CMOS技術(shù)、存儲(chǔ)器帶寬和時(shí)鐘周期性能得到了提升,但它們?nèi)曰谕瑯拥幕炯軜?gòu)。因此,這些新興公司能期待獲得更大的成功嗎?

  這將取決于它們針對(duì)的是哪類應(yīng)用?,F(xiàn)在的網(wǎng)絡(luò)節(jié)點(diǎn)不僅處理2-4層的數(shù)據(jù)包,也需在更高層進(jìn)行處理以支持服務(wù)和增加安全性。我們將研究其中的差異,以及對(duì)任何給定應(yīng)用來(lái)說(shuō),為什么某些架構(gòu)比其它架構(gòu)效果更好。

  線速包處理

  2-4層數(shù)據(jù)包處理不同于其它網(wǎng)絡(luò)應(yīng)用(表1)。首先,能對(duì)所有大小的數(shù)據(jù)包進(jìn)行線速處理是一個(gè)關(guān)鍵目標(biāo)?,F(xiàn)代路由器和交換機(jī)被設(shè)計(jì)為擁有廣泛的網(wǎng)絡(luò)功能,服務(wù)提供商期望能同時(shí)獲得這些功能且不降低性能。

  


  第二,數(shù)據(jù)平面將數(shù)據(jù)包視為獨(dú)立個(gè)體,允許高度并行的處理。對(duì)一個(gè)100Gbps應(yīng)用來(lái)說(shuō),網(wǎng)絡(luò)處理器需要每秒處理1.5億個(gè)數(shù)據(jù)包以確保線速性能。處理器10μs的延時(shí)相當(dāng)于1,500個(gè)數(shù)據(jù)包的并行處理時(shí)間。

  第三,數(shù)據(jù)平面程序需要高I/O存儲(chǔ)器訪問(wèn)帶寬以完成表查詢轉(zhuǎn)發(fā)、狀態(tài)更新及其它處理。在高速平臺(tái)上,數(shù)據(jù)包到達(dá)間隔時(shí)間非常短,因而對(duì)存儲(chǔ)器延時(shí)提出了苛刻要求。對(duì)于小型數(shù)據(jù)包來(lái)說(shuō),執(zhí)行這些任務(wù)的存儲(chǔ)器帶寬是鏈路帶寬的數(shù)倍。

  最后,當(dāng)今網(wǎng)絡(luò)的功耗很高。出于運(yùn)營(yíng)成本和環(huán)保兩方面的考慮,服務(wù)提供商在煞費(fèi)苦心地追求最佳的每瓦性能??紤]到包處理的特點(diǎn),應(yīng)以線速性能條件下、每瓦功率可實(shí)現(xiàn)的最高性能來(lái)衡量最有效的架構(gòu)。

  服務(wù)和安全處理特征

  與數(shù)據(jù)包處理相近的市場(chǎng)是服務(wù)和安全處理。這些應(yīng)用具有與2-4層數(shù)據(jù)包處理不同的特點(diǎn)。因此,可實(shí)施其它的硬件設(shè)計(jì)優(yōu)化。

  在客戶機(jī)-服務(wù)器方式中,這些應(yīng)用終止和處理主機(jī)至主機(jī)協(xié)議,或在中間網(wǎng)絡(luò)節(jié)點(diǎn)(即防火墻、負(fù)載均衡器、入侵和防御系統(tǒng))上處理重組的凈載數(shù)據(jù)包數(shù)據(jù)。這些產(chǎn)品必須能夠跨數(shù)據(jù)包邊界工作,因?yàn)樗鼈兺ǔP枰诟蟮臄?shù)據(jù)量上進(jìn)行更大規(guī)模的操作,這將導(dǎo)致數(shù)據(jù)并行性較低。另一方面,相對(duì)所處理的數(shù)據(jù)而言,這類所需的I/O存儲(chǔ)器帶寬較低。

  架構(gòu)比較

  NPU承諾可提供定制ASIC的性能,且具有通用處理器的可編程能力。但是,比較處理器的性能較困難,因?yàn)槔碚撋系淖畲笾低ǔEc真實(shí)世界關(guān)聯(lián)不大。此外,有效利用可用處理性能的能力,以及與處理容量相關(guān)的I/O存儲(chǔ)器的利用情況也是影響處理器性能的因素。

  因此,這種比較必須從設(shè)計(jì)層面開(kāi)始。我們首先從一個(gè)通用多核NPU架構(gòu)開(kāi)始。多核NPU架構(gòu)衍生于通用處理器架構(gòu),該架構(gòu)希望通過(guò)增加處理器核來(lái)實(shí)現(xiàn)更高的并行處理能力。降低復(fù)雜性并移除當(dāng)今通用處理器架構(gòu)內(nèi)不必要的功能(即浮點(diǎn)指令)可實(shí)現(xiàn)這一目標(biāo)。

  多核NPU架構(gòu)對(duì)處理器核進(jìn)行了專門分組。這些內(nèi)核或被分組到各個(gè)并行池或以串行方式進(jìn)行流水線排列(圖1)。NPU供應(yīng)商在設(shè)計(jì)時(shí),允許架構(gòu)對(duì)這種分組實(shí)施嚴(yán)格控制以優(yōu)化性能。

  

《電子系統(tǒng)設(shè)計(jì)》

  圖1:處理器核采用流水線或者并行池架構(gòu),混合模式也很常見(jiàn)。

  如果定義得較松散,這種分組就允許程序員更自由地在內(nèi)核間劃分任務(wù),最終結(jié)果是以性能控制為代價(jià)提供更大的靈活性。在許多情況下,多核網(wǎng)絡(luò)處理器最終會(huì)以流水線和并行池的混合架構(gòu)形態(tài)出現(xiàn)。

  處理器核的分組對(duì)編程模式有重要影響。并行池帶有相關(guān)的多線程編程模式,其中每個(gè)處理器核可運(yùn)行一個(gè)或多個(gè)線程。從本質(zhì)上講就是程序獲取一個(gè)數(shù)據(jù)包并對(duì)其執(zhí)行一系列操作。

  一旦處理完一個(gè)數(shù)據(jù)包,程序就準(zhǔn)備好按順序取用下一個(gè)數(shù)據(jù)包。程序員通過(guò)把數(shù)據(jù)包分配給不同的并行池來(lái)有效利用處理資源。線程之間的同步是程序員的另一個(gè)關(guān)鍵系統(tǒng)任務(wù)。

  流水線模式處理數(shù)據(jù)平面應(yīng)用,并將其劃分為不同的處理任務(wù)(即:分類、修改、隧道處理以及狀態(tài)更新)。然后,每個(gè)任務(wù)被映射到不同的處理器核,任務(wù)的執(zhí)行或由架構(gòu)強(qiáng)制完成,或交由程序員處理。由于吞吐量受限于速度最慢的部分,因此如何在各內(nèi)核間有效地劃分任務(wù)通常是個(gè)挑戰(zhàn)。

  通用多核架構(gòu)內(nèi)的數(shù)據(jù)包通常存儲(chǔ)在共享存儲(chǔ)器區(qū)域(圖2)。在這種情況下,程序員必須將分類和數(shù)據(jù)包修改任務(wù)分別分配給處理資源的并行池和流水線。

  

《電子系統(tǒng)設(shè)計(jì)》

  圖2:多核架構(gòu)共享資源,以及用于處理器核和資源互連的高速總線或crossbar總線。

  共享數(shù)據(jù)的復(fù)雜性

  在并行數(shù)據(jù)包處理過(guò)程中,多個(gè)線程可能需要訪問(wèn)和更新諸如狀態(tài)和ARP條目等共享數(shù)據(jù)。不同的線程需要進(jìn)行同步以強(qiáng)制互斥并實(shí)現(xiàn)通用共享模式。但眾所周知,同步并非易事而且會(huì)對(duì)性能造成影響。

  為提高性能,許多多核處理器采用硬件緩存。雖然這可以極大縮短平均存儲(chǔ)器訪問(wèn)延遲,但架構(gòu)會(huì)變得更難以預(yù)測(cè)。

  緩存一致性協(xié)議保證了采用緩存層次結(jié)構(gòu)的多核系統(tǒng)中數(shù)據(jù)的完整性。雖然這對(duì)于程序員是透明的,但為了調(diào)節(jié)性能,程序員需要了解緩存和一致性協(xié)議是如何運(yùn)作的。另一方面,存儲(chǔ)器一致性模型也對(duì)程序員開(kāi)放。因此,程序員需要了解存儲(chǔ)器一致性模型以編寫(xiě)正確的程序。

  保持?jǐn)?shù)據(jù)包順序

  并行數(shù)據(jù)包處理的另一個(gè)挑戰(zhàn)是保持?jǐn)?shù)據(jù)包的順序。所有節(jié)點(diǎn)都應(yīng)針對(duì)相關(guān)的數(shù)據(jù)包保持?jǐn)?shù)據(jù)包順序,因?yàn)樯蠈觽鬏攨f(xié)議的正常工作依賴這種順序。了解哪些類數(shù)據(jù)包需要保持包順序以及如何最有效地滿足這一需求通常是程序員的職責(zé)。

  為降低復(fù)雜度,NPU供應(yīng)商通常會(huì)提供硬件支持和軟件庫(kù)。添加更多的數(shù)據(jù)包緩沖器可有助于確保數(shù)據(jù)包順序,但這總是以增加延遲為代價(jià)。

  降低復(fù)雜性需求

  駕馭基于多核的NPU并非易事。英特爾公司的Larry Huston在第10屆高性能計(jì)算機(jī)體系結(jié)構(gòu)國(guó)際研討會(huì)上發(fā)表的論文中總結(jié)道:

  “理想的情況應(yīng)是,程序員將應(yīng)用寫(xiě)成一段軟件,而工具會(huì)自動(dòng)劃分應(yīng)用并將應(yīng)用映射到并行資源集。這也許是個(gè)難以實(shí)現(xiàn)的目標(biāo),但在該方向上的任一進(jìn)步都將升華開(kāi)發(fā)者的開(kāi)發(fā)生命?!?/P>

  數(shù)據(jù)流架構(gòu)正好滿足這一需求。雖然Larry Huston的上述見(jiàn)解發(fā)表在2004年,但它在今天的效用和意義與6年前一樣。

  確定性數(shù)據(jù)流架構(gòu)

  數(shù)據(jù)流架構(gòu)(圖3)采用了獨(dú)特的方法,且具有處理器內(nèi)核組成的單個(gè)流水線。該架構(gòu)已被設(shè)計(jì)成完全確定性和超高效的。除執(zhí)行語(yǔ)境外,它還包括一個(gè)數(shù)據(jù)包指令集計(jì)算機(jī)(PISC)和一個(gè)引擎接入點(diǎn)(EA

超級(jí)電容器相關(guān)文章:超級(jí)電容器原理



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉