網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性_第1頁(yè)
網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性_第2頁(yè)
網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性_第3頁(yè)
網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性_第4頁(yè)
網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.1. - . 可修編.網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性華偉網(wǎng)絡(luò)處理器Network Processor,簡(jiǎn)稱NP是面向網(wǎng)絡(luò)應(yīng)用領(lǐng)域的專用指令處理器Application Specific Instruction Processor,是面向數(shù)據(jù)分組處理的、具有特定電路的軟件可編程器件。它將RISCReduced Instruction Set puter-精簡(jiǎn)指令集處理器的低本錢(qián)、靈活性與ASICApplication-Specific Integrated Circuits-專用集成電路專用網(wǎng)絡(luò)處理芯片的高性能、可擴(kuò)展性很好地結(jié)合在一起,提供了適應(yīng)網(wǎng)絡(luò)開(kāi)展新協(xié)議、新應(yīng)用的能力。NP的出現(xiàn),標(biāo)志著設(shè)備對(duì)

2、數(shù)據(jù)分組的處理能力從低層粗放式處理過(guò)渡到高層細(xì)化處理?;贜P開(kāi)發(fā)的網(wǎng)絡(luò)系統(tǒng)可以縮短進(jìn)入市場(chǎng)時(shí)間time-to-market,而且由于其可編程性使其具有較長(zhǎng)的市場(chǎng)壽命。本文將重點(diǎn)圍繞網(wǎng)絡(luò)處理器設(shè)計(jì)的復(fù)雜性、設(shè)計(jì)中所需要權(quán)衡的各種因素進(jìn)展分析。網(wǎng)絡(luò)處理器的功能網(wǎng)絡(luò)處理器的功能是由它所需要實(shí)施的操作以及它在目標(biāo)網(wǎng)絡(luò)系統(tǒng)中的任務(wù)決定的。一方面,NP需要有足夠的分組處理能力。另一方面,NP確切的功能依賴于使用它的系統(tǒng)的體系構(gòu)造。或者換句話說(shuō),目標(biāo)系統(tǒng)中NP與其他組成局部之間的分工方式?jīng)Q定了NP的功能。工業(yè)界對(duì)于協(xié)議棧中各層次協(xié)議功能及其特殊需求的實(shí)現(xiàn)已經(jīng)相當(dāng)有經(jīng)歷了。然而,NP不是為*個(gè)特定的協(xié)議而設(shè)

3、計(jì)的,它的指令集并不需要包含處理*個(gè)協(xié)議所需的所有指令。NP的目標(biāo)是具有足夠的功能來(lái)處理“任何協(xié)議,也就是具有網(wǎng)絡(luò)協(xié)議處理的通用性。NP的協(xié)議處理通用性不是通過(guò)設(shè)計(jì)的全面性來(lái)保障的。盡管設(shè)計(jì)人員可以針對(duì)需要處理的協(xié)議的每個(gè)特征,窮盡所需要的指令,但毫無(wú)疑問(wèn)這種方式將產(chǎn)生笨拙的設(shè)計(jì)并帶來(lái)芯片面積的浪費(fèi)。反過(guò)來(lái),抽取最小化的功能集能夠使設(shè)計(jì)精簡(jiǎn)并高效。為此,設(shè)計(jì)者必須分析不同協(xié)議的特征,識(shí)別它們的共性,推導(dǎo)出可以高效處理所有特征的最小指令集。因此,確定“最小化的功能集就成為NP設(shè)計(jì)的一大挑戰(zhàn)。1.1 分組處理功能設(shè)計(jì)一個(gè)通用的網(wǎng)絡(luò)處理器的第一步是識(shí)別多數(shù)協(xié)議所需要的功能。一般來(lái)說(shuō),完成分組處理任務(wù)

4、包括下面一些功能:檢錯(cuò)和糾錯(cuò)、流量測(cè)量和策略、幀和協(xié)議的分解、地址查找和包轉(zhuǎn)發(fā)、分段和重組、包分類、流量整形、定時(shí)和調(diào)度、排隊(duì)、平安認(rèn)證和私有。盡管這些功能都可以在一個(gè)傳統(tǒng)的通用指令集CPU上完成,但增加特定的指令可以提高完成這些功能的性能。例如就排隊(duì)來(lái)說(shuō),NP只需要關(guān)心包的隊(duì)列,而不是其他任意的隊(duì)列,因此NP可以針對(duì)包隊(duì)列進(jìn)展優(yōu)化,設(shè)計(jì)專用指令。類似的,由于大多數(shù)協(xié)議都需要CRCCyclic Redundancy Check,循環(huán)冗余校驗(yàn)或校驗(yàn)和進(jìn)展過(guò)失檢測(cè),NP可以包含相關(guān)的專用指令以提高運(yùn)算速度。NP設(shè)計(jì)者需要考慮以下一些問(wèn)題:1上述功能是否足以涵蓋所有協(xié)議處理.2哪一項(xiàng)功能的優(yōu)化最重要

5、.3如何將上述功能映射到一個(gè)典型網(wǎng)絡(luò)系統(tǒng)的硬件單元.4一個(gè)典型網(wǎng)絡(luò)系統(tǒng)的哪些硬件單元可以用一個(gè)NP來(lái)替代.5實(shí)現(xiàn)上述功能的最小完備指令集是什么.所有這些問(wèn)題都不容易答復(fù),它們構(gòu)成了研究網(wǎng)絡(luò)處理器設(shè)計(jì)的根底問(wèn)題。1.2 入口和出口處理為了降低設(shè)計(jì)的復(fù)雜性,可以將一個(gè)復(fù)雜問(wèn)題分解成幾個(gè)小的子問(wèn)題一一加以解決。這種分而治之divide-and-conquer的方法在很多領(lǐng)域都受到歡迎,NP設(shè)計(jì)也不例外。最常用的一種方式是將分組處理任務(wù)分成入口和出口處理兩局部。入口處理關(guān)注包的到達(dá)過(guò)程,出口處理關(guān)注包的離開(kāi)過(guò)程。入口處理:過(guò)失檢測(cè)和平安驗(yàn)證分類或協(xié)議分解流量測(cè)量和策略地址查找和包轉(zhuǎn)發(fā)*修改和傳輸層處理

6、重組或流終止轉(zhuǎn)發(fā)、排隊(duì)和調(diào)度出口處理:過(guò)失檢測(cè)碼插入地址查找和包轉(zhuǎn)發(fā)分段或分片流量整形定時(shí)、調(diào)度、排隊(duì)和緩沖*修改輸出平安處理物 理 接 口交 換 矩 陣包到達(dá)包離開(kāi)圖1 典型網(wǎng)絡(luò)系統(tǒng)中入口和出口處理的示意圖圖1是典型網(wǎng)絡(luò)系統(tǒng)中入口和出口處理的示意圖。典型情況是包通過(guò)且僅通過(guò)交換矩陣一次,因此交換矩陣成為入口和出口處理自然的分水嶺。入口方面,數(shù)據(jù)包到達(dá)一個(gè)輸入端口后,首先需要進(jìn)展過(guò)失檢測(cè),然后通過(guò)協(xié)議分解或分類來(lái)確定系統(tǒng)需要對(duì)包實(shí)施何種操作。系統(tǒng)有時(shí)候需要維護(hù)一些狀態(tài)信息,例如歷史流量的記錄、數(shù)據(jù)片段的收集重組等。入口處理還需要包含對(duì)排隊(duì)、調(diào)度、轉(zhuǎn)發(fā)的支持。為了使包通過(guò)交換矩陣,有時(shí)需要將數(shù)據(jù)

7、包分成固定大小的數(shù)據(jù)塊傳送。最后,入口處理還包括的修改、傳輸層的一些處理等。出口方面,從交換矩陣獲得包,有時(shí)需要對(duì)數(shù)據(jù)片斷進(jìn)展收集。出口處理包括:確定輸出端口、根據(jù)輸出端口信息對(duì)數(shù)據(jù)包進(jìn)展分段、進(jìn)展流量整形及相關(guān)的排隊(duì)調(diào)度操作、進(jìn)展修改、過(guò)失檢測(cè)、進(jìn)展加密等輸出平安處理。網(wǎng)絡(luò)處理器與網(wǎng)絡(luò)系統(tǒng)2.1 并行和分布式構(gòu)造如果采用集中式設(shè)計(jì),讓一個(gè)網(wǎng)絡(luò)處理器在快速數(shù)據(jù)通路上完成所有分組處理任務(wù),將系統(tǒng)收到的每一個(gè)包轉(zhuǎn)發(fā)到輸出端口上,這樣所得到的NP與傳統(tǒng)的處理器一樣,可擴(kuò)展性較差。即使這個(gè)NP中包含針對(duì)協(xié)議處理的優(yōu)化硬件設(shè)計(jì),NP本身的時(shí)鐘頻率將成為限制吞吐量的關(guān)鍵因素。為了防止性能瓶頸,可以采用三種

8、通用的技術(shù)提高可擴(kuò)展性。首先,一個(gè)典型的NP可以包含各種硬件單元,對(duì)每個(gè)硬件單元進(jìn)展專門(mén)設(shè)計(jì)來(lái)完成一個(gè)特定的功能;第二,為了提高總的處理速度,在NP上復(fù)制多個(gè)可以獨(dú)立工作的關(guān)鍵的硬件單元,使NP可以并行或以流水線的方式實(shí)施多個(gè)操作;第三,將NP設(shè)計(jì)成分布式構(gòu)造。這樣,當(dāng)多個(gè)NP連接起來(lái)時(shí),它們可以共同工作以獲得更高的總的吞吐量??偟膩?lái)說(shuō),對(duì)可擴(kuò)展性的要求給NP的設(shè)計(jì)帶來(lái)了很大的困難,設(shè)計(jì)者必須考慮設(shè)計(jì)或選擇處理專門(mén)任務(wù)的硬件單元、能夠并行操作的可重復(fù)的硬件單元、以及支持分布式執(zhí)行的硬件。2.2 網(wǎng)絡(luò)處理器在系統(tǒng)中的角色在網(wǎng)絡(luò)系統(tǒng)的總體構(gòu)造中,NP并不固定地處于單一的位置上,相反,它可以承擔(dān)系統(tǒng)

9、中多種角色任務(wù),這使得NP的設(shè)計(jì)進(jìn)一步復(fù)雜化。NP可以設(shè)計(jì)成替代網(wǎng)絡(luò)系統(tǒng)中的功能單元,或者作為附加功能單元對(duì)*項(xiàng)功能進(jìn)展強(qiáng)化。一般來(lái)說(shuō),NP在網(wǎng)絡(luò)系統(tǒng)的總體構(gòu)造中可以作為下述角色:替代一個(gè)傳統(tǒng)的CPU:為此,NP必須具有傳統(tǒng)的CPU指令;為了與傳統(tǒng)的CPU區(qū)別開(kāi)來(lái),NP需要增加專用的指令以實(shí)現(xiàn)優(yōu)化的分組處理功能。附加在一個(gè)傳統(tǒng)的CPU上:由傳統(tǒng)的CPU完成大多數(shù)分組處理任務(wù)。由NP完成特殊的任務(wù)。這種附加可以用預(yù)處理或協(xié)處理兩種方式實(shí)現(xiàn)。預(yù)處理一般在入口處理階段實(shí)施,例如對(duì)來(lái)自硬件端口的包進(jìn)展分類,再交給傳統(tǒng)的CPU進(jìn)展處理。協(xié)處理方式則功能更強(qiáng)大,任何可能通過(guò)專門(mén)硬件加速的分組處理功能都可以

10、設(shè)計(jì)協(xié)處理器完成。使用附加在一個(gè)傳統(tǒng)的CPU上的NP,主要好處是降低了設(shè)計(jì)的復(fù)雜性。設(shè)計(jì)者可以專注于分組處理功能而不需要考慮傳統(tǒng)的指令;其難點(diǎn)在于需要額外的硬件處理CPU與NP的接口問(wèn)題,為CPU調(diào)用NP提供有效機(jī)制。在網(wǎng)絡(luò)接口卡的輸入通路上,承擔(dān)入口分組處理任務(wù):NP的可編程性提供靈活的、可改變的入口處理。在網(wǎng)絡(luò)接口卡與交換矩陣之間作為網(wǎng)絡(luò)接口卡和交換矩陣的中介:NP與交換矩陣的控制器進(jìn)展交互,以建立通路、傳輸數(shù)據(jù)和釋放通路。在交換矩陣和輸出接口之間控制輸出端口的:*些交換矩陣采用分布式控制機(jī)制,由每個(gè)輸出端口控制對(duì)它自己的。當(dāng)一個(gè)輸入端口需要使用交換矩陣時(shí),它需要使用一種獨(dú)立的機(jī)制例如獨(dú)立

11、的總線通知相應(yīng)的輸出端口;輸出端口對(duì)需求進(jìn)展調(diào)度,通知潛在的發(fā)送者發(fā)送數(shù)據(jù)。這些功能可以設(shè)計(jì)NP來(lái)完成。在網(wǎng)絡(luò)接口卡的輸出通路上承擔(dān)出口分組處理任務(wù):NP從交換矩陣承受包、管理隊(duì)列、實(shí)現(xiàn)流量整形、發(fā)送分組到輸出端口。像其它端口一樣連接在交換矩陣上作為一個(gè)中間站:數(shù)據(jù)包可以從輸入端口通過(guò)交換矩陣到達(dá)NP,再?gòu)腘P通過(guò)交換矩陣到達(dá)輸出端口。由于交換矩陣允許擴(kuò)展,因此作為中間站的NP集合也很容易擴(kuò)展。這樣,為了獲得最大程度的并行,系統(tǒng)可以將到達(dá)的包分布在整個(gè)NP集合中進(jìn)展處理。我們可以設(shè)想一種宏觀的數(shù)據(jù)流水線,流水線的每個(gè)階段用一個(gè)NP來(lái)實(shí)現(xiàn),這些NP通過(guò)交換矩陣連接起來(lái):NPi實(shí)現(xiàn)第i個(gè)階段的功能

12、,把處理后的包通過(guò)交換矩陣傳輸?shù)綄?shí)現(xiàn)第i+1個(gè)階段功能的處理器NPi+1。由于NP可在系統(tǒng)中勝任多種角色,如今它已不再局限于作為核心交換和路由設(shè)備中ASIC的取代品而向更廣泛的應(yīng)用領(lǐng)域擴(kuò)展。2003年,多效勞接入網(wǎng)和企業(yè)網(wǎng)是網(wǎng)絡(luò)處理器的主要應(yīng)用領(lǐng)域。來(lái)自消費(fèi)電子市場(chǎng)的需求將會(huì)延伸網(wǎng)絡(luò)處理器的涵,為其帶來(lái)新的活力。面向接入層的各種媒體網(wǎng)關(guān),包括用于家庭的接入媒體網(wǎng)關(guān)將會(huì)是網(wǎng)絡(luò)處理器最重要的應(yīng)用之一。其它存在商機(jī)的領(lǐng)域包括無(wú)線根底設(shè)備、IP效勞交換機(jī)、存儲(chǔ)區(qū)域網(wǎng)等。網(wǎng)絡(luò)處理器在平安方面也有著廣泛應(yīng)用,如VPNVirtual Private Network虛擬專網(wǎng)、防火墻和入侵偵測(cè)業(yè)務(wù)等。在電信方面

13、,多效勞寬帶接入領(lǐng)域,如第三代無(wú)線網(wǎng)絡(luò)控制器RNC- Radio Network Controller、媒體網(wǎng)關(guān)、光纖環(huán)網(wǎng)的寬帶接入等都將是網(wǎng)絡(luò)處理器的重要應(yīng)用領(lǐng)域。2.3 平臺(tái)NP和專用NP我們可以從NP在系統(tǒng)中的角色看到設(shè)計(jì)NP的兩種思路和目前市場(chǎng)上NP的兩種產(chǎn)品類型。一種是實(shí)現(xiàn)一個(gè)通用的網(wǎng)絡(luò)處理器,試圖解決所有分組處理任務(wù),由此產(chǎn)生了平臺(tái)NP產(chǎn)品。另一種則針對(duì)分組處理功能中*一具體操作進(jìn)展優(yōu)化,由此產(chǎn)生了各種專用NP產(chǎn)品。平臺(tái)NP應(yīng)該能夠?qū)崿F(xiàn)所有的分組處理功能而不是對(duì)*種具體處理功能優(yōu)化。今天,所有的NP廠商幾乎都在圍繞著性價(jià)比,以及應(yīng)用功能的廣泛性進(jìn)展競(jìng)爭(zhēng)。未來(lái)將要求所有的平臺(tái)NP廠商

14、都必須能夠提供真正意義的“平臺(tái)。顧名思義,平臺(tái)NP應(yīng)該能夠容納所有分組交換處理功能部件,安置第三方提供給網(wǎng)絡(luò)設(shè)備制造商的一切軟件和硬件,并成為它們運(yùn)行的根底。為此,平臺(tái)NP應(yīng)該為網(wǎng)絡(luò)設(shè)備制造商和第三方的開(kāi)發(fā)人員提供編寫(xiě)應(yīng)用軟件開(kāi)發(fā)環(huán)境。此外,平臺(tái)NP還應(yīng)該成為連接和控制有關(guān)硬件如外圍用NP、專用協(xié)處理器、存儲(chǔ)器電路、PHYPhysical layer層的芯片、交換矩陣等等的樞紐。專用NP則是針對(duì)分組處理功能中*一具體操作進(jìn)展了優(yōu)化的NP,它的作用僅僅限制于該項(xiàng)操作。例如,用于加密或壓縮的專用處理器。加密和壓縮操作要用到相當(dāng)特殊的算法。這些操作最好由經(jīng)過(guò)優(yōu)化的專門(mén)適合于處理此項(xiàng)操作的集成電路來(lái)執(zhí)

15、行。再如查表/分類操作。如果這類操作運(yùn)用比較頻繁,就有必要采用一個(gè)單獨(dú)的專用NP來(lái)處理,以便平臺(tái)NP能集中精力處理其它的分組處理操作。此外,還有一些專用NP是優(yōu)化后用在第二層協(xié)議上,處理語(yǔ)法分析/幀形成操作。例如,以太網(wǎng)MACMedia Access Control幀,HDLCHigh Level Data Link ControlProtocol幀,或ATMAsynchronous Transmission Mode單元。有時(shí)又把專用NP稱為外圍NP。所謂“外圍的意義在于它需要和負(fù)責(zé)處理總體分組交換處理任務(wù)的主要處理器相配合??梢該?dān)任主要處理器的器件有RISC、CPU、ASIC或者平臺(tái)NP。

16、外圍NP廠商所提供的開(kāi)發(fā)工具只針對(duì)此外圍NP所擔(dān)負(fù)功能有關(guān)的操作。為外圍NP編寫(xiě)的程序必須通過(guò)APIApplication Program Interface與擔(dān)負(fù)總體分組處理的處理器進(jìn)展通信。例如,設(shè)計(jì)用來(lái)加速查表/分類操作的外圍NP必須將其處理結(jié)果通知平臺(tái)NP,平臺(tái)NP再根據(jù)此結(jié)果執(zhí)行一定的動(dòng)作。網(wǎng)絡(luò)處理器的硬件體系構(gòu)造網(wǎng)絡(luò)處理器的硬件體系構(gòu)造一般具有如下一些特征:采用多核并行處理器構(gòu)造:片處理器按任務(wù)分為控制平面處理器和數(shù)據(jù)分組協(xié)處理器??刂破矫嫣幚砥魍ǔX?fù)責(zé)非實(shí)時(shí)的管理任務(wù);數(shù)據(jù)分組處理器進(jìn)展實(shí)時(shí)、線速數(shù)據(jù)分組處理。優(yōu)化指令集,設(shè)計(jì)專用硬件加速處理單元:通常采用RISC技術(shù),結(jié)合多級(jí)流

17、水線技術(shù),大局部指令在一個(gè)時(shí)鐘周期完成。并針對(duì)網(wǎng)絡(luò)協(xié)議處理特點(diǎn),設(shè)置專用硬件加速處理單元,提供專用指令如壓縮指令、哈希查找、狀態(tài)判斷、數(shù)據(jù)讀寫(xiě)指令。優(yōu)化存管理和分級(jí)存儲(chǔ)器組織:NP需要進(jìn)展大量的數(shù)據(jù)分組的接收、存儲(chǔ)、復(fù)制、轉(zhuǎn)發(fā),存操作成為系統(tǒng)開(kāi)銷的一大瓶頸。為了解決這個(gè)問(wèn)題,通常采用塊數(shù)據(jù)移動(dòng)技術(shù)和特殊的優(yōu)化存儲(chǔ)接口。同時(shí)對(duì)數(shù)據(jù)進(jìn)展分類存儲(chǔ):SRAM用于存放需要快速查找的各種表構(gòu)造;SDRAM用于存放數(shù)據(jù)分組信息。支持硬件多線程:為了提高NP資源利用率,每個(gè)數(shù)據(jù)分組處理器還支持多個(gè)硬件線程。每個(gè)線程都有一套專門(mén)的硬件來(lái)存放上下文Conte*t,以獲得線程切換的零開(kāi)銷。多個(gè)高速I(mǎi)/O接口:包括物

18、理鏈路接口、交換接口、存儲(chǔ)器接口、PCI總線接口??蓴U(kuò)展性:多個(gè)NP之間可以互連,構(gòu)成網(wǎng)絡(luò)處理器簇,以支持更為大型高速的網(wǎng)絡(luò)處理。由于一個(gè)NP上包括許多處理器共同工作,處理器層次是NP最重要的硬件特征。NP一般有如下處理器層次:1一個(gè)或多個(gè)嵌入式RISC處理器,通常工作在控制平面提供總的控制,處理高層協(xié)議,可編程; 2多個(gè)I/O處理器又稱為包引擎、微引擎,工作在數(shù)據(jù)平面,實(shí)施入口和出口線速處理,可編程;3一個(gè)或多個(gè)專用協(xié)處理器,優(yōu)化設(shè)計(jì)完成特定的分組處理功能,通常被I/O處理器調(diào)用,不可編程;4一個(gè)或多個(gè)交換矩陣接口,不可編程;5一個(gè)或多個(gè)數(shù)據(jù)傳輸單元,處理I/O設(shè)備和存儲(chǔ)器之間的數(shù)據(jù)移動(dòng),不

19、可編程。一個(gè)網(wǎng)絡(luò)系統(tǒng)中完全的處理層次還應(yīng)包括:6傳統(tǒng)的通用CPU,工作在控制平面,處理管理任務(wù),包括監(jiān)視系統(tǒng)性能、運(yùn)行路由協(xié)議、給系統(tǒng)管理員提供配置界面等,可編程;7成幀器和物理傳輸器件,實(shí)現(xiàn)低層次I/O處理,有時(shí)也在NP中實(shí)現(xiàn),不可編程。網(wǎng)絡(luò)處理器的軟件體系構(gòu)造許多NP廠商為他們的NP提供參考應(yīng)用系統(tǒng),幫助用戶了解如何設(shè)計(jì)NP的軟件。用戶通常不需要從頭設(shè)計(jì)軟件,只需在廠商提供的參考軟件根底上進(jìn)展修改。因此,NP設(shè)計(jì)者可以影響NP的軟件體系構(gòu)造。大多數(shù)軟件體系構(gòu)造遵循下面*種模式:主程序把協(xié)處理器當(dāng)作子例程調(diào)用。主程序與可編程I/O處理器上運(yùn)行的代碼互相作用。使用通信線程。使用事件驅(qū)動(dòng)程序。使

20、用流水線。使用遠(yuǎn)程過(guò)程調(diào)用風(fēng)格程序組件分布在不同處理器上。使用上述模式的組合。很顯然,有些軟件體系構(gòu)造是與底層的硬件相匹配的。例如,NP芯片上如果存在用于異步事件的硬件分派單元,則很自然地就有事件驅(qū)動(dòng)的軟件體系構(gòu)造。相應(yīng)的,NP提供的對(duì)線程的支持和數(shù)據(jù)傳輸機(jī)制為通信線程體系構(gòu)造奠定了根底。流水線體系構(gòu)造則并不一定要求底層硬件使用流水線。例如,通過(guò)不同線程實(shí)現(xiàn)分組處理的不同階段,可以構(gòu)建分組處理的流水線,數(shù)據(jù)包在不同線程中的相繼處理表達(dá)了它在流水線不同階段之間的移動(dòng)。線程可以在一組并行處理器上執(zhí)行,這些并行處理器本身不需要配置成一條流水線,甚至完全可以在單個(gè)處理器上通過(guò)創(chuàng)立多個(gè)線程來(lái)實(shí)現(xiàn)軟件流水

21、線。遠(yuǎn)程過(guò)程調(diào)用風(fēng)格的體系構(gòu)造不是創(chuàng)立互相獨(dú)立的程序,而是建立單個(gè)程序,使其不同組件運(yùn)行在多個(gè)處理器上。例如,使程序的主要組件運(yùn)行在一個(gè)嵌入式RISC處理器上,處理復(fù)雜計(jì)算;而它的子組件則運(yùn)行在多個(gè)I/O處理器上,處理入口和出口操作。NP的軟件體系構(gòu)造必須與NP在處理器層次上很好地匹配。為了獲得高性能,分配給每個(gè)處理器的任務(wù)需要和它的處理能力相匹配。數(shù)據(jù)平面任務(wù)的描述非常簡(jiǎn)明,協(xié)議簡(jiǎn)單、傳輸速率高,因此需要的代碼較少,但是處理能力較強(qiáng)。而控制平面處理的協(xié)議較為復(fù)雜,所以任務(wù)的描述也較為復(fù)雜,不需要很強(qiáng)處理能力,但需要執(zhí)行更多的代碼。處理層次越低往往操作速度越高。例如,物理傳輸層次決定了系統(tǒng)的線

22、速度,即數(shù)據(jù)進(jìn)入和離開(kāi)整個(gè)系統(tǒng)的最大速率。為了盡可能防止瓶頸存在,數(shù)據(jù)傳輸、交換矩陣接口、協(xié)處理器硬件都需要設(shè)計(jì)成以線速操作,從而保證包全速流入I/O處理器。I/O處理器上運(yùn)行的指令操作的層次低于嵌入式處理器,因此前者的時(shí)鐘頻率常常高于后者。為了使性能最正確化,任務(wù)應(yīng)該盡可能在I/O處理器上完成。在嵌入式處理器與外部通用處理器之間的任務(wù)分配同樣應(yīng)該使任務(wù)盡可能在嵌入式處理器上完成??偟膩?lái)說(shuō),為了獲得最優(yōu)的性能,分組處理任務(wù)應(yīng)該盡可能被分配到能夠完成該任務(wù)的最低層次處理器上。網(wǎng)絡(luò)處理器設(shè)計(jì)與軟件仿真設(shè)計(jì)一個(gè)通用的網(wǎng)絡(luò)處理器是相當(dāng)復(fù)雜的。為了控制復(fù)雜性,NP設(shè)計(jì)通常需要依賴于軟件仿真。在硬件設(shè)計(jì)開(kāi)

23、場(chǎng)之前,設(shè)計(jì)者花大量時(shí)間來(lái)建立軟件仿真器,用來(lái)驗(yàn)證設(shè)計(jì)的功能和評(píng)估性能。為此,需要有運(yùn)行在目標(biāo)芯片上針對(duì)各種應(yīng)用的基準(zhǔn)程序,把這些程序編譯后使用軟件仿真器來(lái)測(cè)量可獲得的性能。然而,與傳統(tǒng)的處理器不同,NP的評(píng)估不能使用傳統(tǒng)的處理器基準(zhǔn)程序。這是因?yàn)镹P的設(shè)計(jì)涉及許多低層次的硬件細(xì)節(jié),不同NP的在體系構(gòu)造是不同的,應(yīng)用程序和基準(zhǔn)程序無(wú)法在不同NP之間簡(jiǎn)單地共享。因此,針對(duì)每一特定NP,必須重新設(shè)計(jì)軟件以匹配目標(biāo)體系構(gòu)造。而且,當(dāng)軟件從一種體系構(gòu)造移植到另一種體系構(gòu)造時(shí),有時(shí)甚至需要完全重組代碼,這給性能的比較帶來(lái)困難。這里,設(shè)計(jì)者還面臨類似于“雞生蛋還是“蛋生雞的問(wèn)題。一旦創(chuàng)立了一個(gè)硬件體系構(gòu)造

24、,程序設(shè)計(jì)人員可以設(shè)計(jì)軟件來(lái)針對(duì)這個(gè)構(gòu)造,編寫(xiě)優(yōu)化的程序;反過(guò)來(lái),一旦有了軟件,硬件設(shè)計(jì)人員可以選擇一個(gè)更好的體系構(gòu)造來(lái)匹配軟件設(shè)計(jì)。在設(shè)計(jì)NP時(shí),設(shè)計(jì)者面臨多種可能的體系構(gòu)造方案,軟硬件設(shè)計(jì)必須嚴(yán)密集成在一起,互相依賴。NP上運(yùn)行的軟件必須和硬件一起進(jìn)展設(shè)計(jì),這進(jìn)一步增加了設(shè)計(jì)的復(fù)雜性和工作量。網(wǎng)絡(luò)處理器設(shè)計(jì)需要權(quán)衡的各種因素由于網(wǎng)絡(luò)處理器是個(gè)復(fù)雜的器件,可能用于多種目的,因此設(shè)計(jì)NP需要權(quán)衡的因素相當(dāng)多。作為本文的總結(jié),這里分析其中一些重要因素,特別是我們?cè)贜P設(shè)計(jì)中遇到的一些難點(diǎn)??删幊绦院吞幚硭俣龋嚎删幊绦运峁┑撵`活性和高度適應(yīng)性在高速開(kāi)展的網(wǎng)絡(luò)領(lǐng)域尤其重要。另一方面,專用的硬件提供

25、了更高的處理速度。假設(shè)干年以前,可編程性和處理速度的權(quán)衡表達(dá)在選擇傳統(tǒng)的通用指令集CPU還是選擇專用芯片上,前者用在低速系統(tǒng)中,后者用在高速系統(tǒng)中?,F(xiàn)在這種選擇成為NP設(shè)計(jì)者需要考慮的重要因素,它與NP的體系構(gòu)造和指令集設(shè)計(jì)息息相關(guān)。設(shè)計(jì)者需對(duì)應(yīng)用目標(biāo)有準(zhǔn)確的把握,才能在體系構(gòu)造的設(shè)計(jì)中對(duì)可編程性與處理速度做出恰當(dāng)?shù)目紤]。速度和功能:為了高速處理網(wǎng)絡(luò)領(lǐng)域特定的任務(wù),需要對(duì)NP的指令集進(jìn)展優(yōu)化。隨著任務(wù)的擴(kuò)展,需要增加更多的指令,這樣NP的功能就增強(qiáng)了。但是,不同的指令可能需要不同的執(zhí)行時(shí)間,處理器必須包含復(fù)雜的調(diào)度和同步機(jī)制,反過(guò)來(lái)增加了時(shí)間開(kāi)銷和設(shè)計(jì)復(fù)雜性。因此,速度和功能之間必須有很好的折

26、衷。性能-數(shù)據(jù)速率、包速率和包的突發(fā)性的綜合考慮:在NP的系統(tǒng)設(shè)計(jì)階段,性能的評(píng)估是必不可少的。通常有兩種衡量性能的指標(biāo):最大的數(shù)據(jù)速率和最大的包速率。最大的數(shù)據(jù)速率是數(shù)據(jù)能夠到達(dá)和離開(kāi)一個(gè)網(wǎng)絡(luò)系統(tǒng)的最大速率,它限制了系統(tǒng)能夠匹配的網(wǎng)絡(luò)端口的容量,一般使用的計(jì)量單位是Mbps或Gbps。如果系統(tǒng)能在所有網(wǎng)絡(luò)端口滿負(fù)荷的情況下無(wú)阻塞地完成分組處理和轉(zhuǎn)發(fā),我們稱系統(tǒng)能夠進(jìn)展線速處理,并以端口容量描述線速處理的性能。另一方面,由于許多協(xié)議處理操作是以包為單位進(jìn)展的,盡管每個(gè)數(shù)據(jù)包的大小是不一樣的,但對(duì)每個(gè)包的處理需要的CPU時(shí)間是固定的,因此,包速率通常比數(shù)據(jù)速率更重要。然而,準(zhǔn)確的性能評(píng)估非常困難

27、。首先,由于NP應(yīng)用的圍很廣,不存在可特征化NP操作的小任務(wù)集合,于是需要在大量的任務(wù)模式下測(cè)量NP的性能,而基準(zhǔn)程序在不同NP之間不可重用見(jiàn)本文第5局部進(jìn)一步給測(cè)量帶來(lái)了困難。第二,NP的測(cè)量需要在流通負(fù)載下進(jìn)展,而包的突發(fā)性使得流量特征很難刻畫(huà)。穩(wěn)定的包流與現(xiàn)實(shí)網(wǎng)絡(luò)的情況是不一致的,準(zhǔn)確的評(píng)估需要采用突發(fā)分布。不幸的是盡管這方面的研究很多,人們從來(lái)沒(méi)有對(duì)流量特征達(dá)成一致意見(jiàn)。網(wǎng)絡(luò)流量模型一直是困擾網(wǎng)絡(luò)領(lǐng)域的一大問(wèn)題。于是用于性能測(cè)試的流量負(fù)載選擇的困難性就可想而知了。協(xié)處理器設(shè)計(jì):協(xié)處理器硬件有兩種工作方式-旁路調(diào)用與數(shù)據(jù)通路。以旁路調(diào)用方式工作的協(xié)處理器類似于過(guò)程調(diào)用,由主處理器根據(jù)需要

28、調(diào)用。而數(shù)據(jù)通路上的協(xié)處理器則以流水線方式處理數(shù)據(jù),在數(shù)據(jù)通過(guò)它時(shí)對(duì)數(shù)據(jù)進(jìn)展修改。后者有兩個(gè)問(wèn)題。首先,為了防止成為瓶頸,數(shù)據(jù)通路上的協(xié)處理器必須以線速度工作;第二,由于這些協(xié)處理器更嚴(yán)密地集成在設(shè)計(jì)中,很難進(jìn)展改變。以旁路調(diào)用方式工作的協(xié)處理器有著模塊化的優(yōu)勢(shì),可以根據(jù)需要擴(kuò)展,增加新的協(xié)處理器,不需要對(duì)體系構(gòu)造作太大改動(dòng)。但是,旁路調(diào)用時(shí)主處理器與協(xié)處理器之間大量數(shù)據(jù)傳輸產(chǎn)生的開(kāi)銷將影響性能。流水線-均衡與同步:在一個(gè)均衡的流水線上,功能單元處理包的時(shí)間是一樣的,從而減少了數(shù)據(jù)緩沖和同步開(kāi)銷。但是,對(duì)分組處理功能的分解很難做到完全均衡,強(qiáng)制的均衡結(jié)果是快速階段必須等待慢速階段??墒侨绻魉?/p>

29、線設(shè)計(jì)成不均衡的,最慢的階段會(huì)成為流水線的瓶頸。并行-吞吐量與包的亂序:并行體系構(gòu)造通常都要有維護(hù)包的順序的同步機(jī)制。但另一方面,如果放寬對(duì)包序的要求,可以簡(jiǎn)化復(fù)雜的同步操作,減少硬件需求,減少處理器的停滯和輸出端口的等待,從而提高系統(tǒng)總的吞吐量。并行-速度與狀態(tài)信息共享:并行工作的處理器為了防止干擾,必須同步共享的狀態(tài)信息。由于在任何特定時(shí)刻只有一個(gè)特定處理器可以修改共享的信息,這必然導(dǎo)致并行速度降低。網(wǎng)絡(luò)系統(tǒng)中狀態(tài)的頻繁更新,使得狀態(tài)信息共享對(duì)速度的影響變得更嚴(yán)重。包的分類是一個(gè)典型的例子。靜態(tài)的包分類即的值只需要與常數(shù)進(jìn)展比較能夠獲得并行帶來(lái)的N倍速度;而動(dòng)態(tài)的包分類即由一組數(shù)據(jù)流來(lái)決定

30、類別由于要保存狀態(tài)信息,性能必然要下降。存儲(chǔ)器-速度與可編程性:存儲(chǔ)器通常被劃分成幾個(gè)存儲(chǔ)體,允許同時(shí)不同的存儲(chǔ)體。在多數(shù)情況下,為了獲得最大的訪存速度,必須刻意地把數(shù)據(jù)放到存儲(chǔ)體中以防止訪存沖突。這自然會(huì)影響可編程性:程序員需要了解存儲(chǔ)體,給編程帶來(lái)困難。編程語(yǔ)言設(shè)計(jì)的權(quán)衡:對(duì)NP的編程語(yǔ)言來(lái)說(shuō),必須在易編程性、功能與代碼速度之間找到平衡點(diǎn)。如果以高速為目的,需要在易編程性與功能之間進(jìn)展折衷。包含為特定任務(wù)裁減的高級(jí)構(gòu)件的集合的編程語(yǔ)言雖然容易使用,但對(duì)任意任務(wù)的適應(yīng)性差。而具有足夠的特征面向多種任務(wù)的編程語(yǔ)言可用性差因?yàn)槌绦騿T處理每個(gè)任務(wù)都面臨多種選擇。因此,NP設(shè)計(jì)者必須選擇既容易編程又

31、提供足夠功能的編程語(yǔ)言。如果想獲得強(qiáng)大的功能,就需要在易編程性與速度之間進(jìn)展折衷。高級(jí)語(yǔ)言雖然容易使用,但映射到底層硬件構(gòu)造時(shí)效率較低。因此,使用高級(jí)語(yǔ)言產(chǎn)生的代碼往往不如使用低級(jí)語(yǔ)言產(chǎn)生的代碼更有效。這也是為什么許多NP要求程序員使用匯編語(yǔ)言來(lái)獲得最大的吞吐量。如果強(qiáng)調(diào)易編程性,則需要在速度與功能之間進(jìn)展折衷。如果將一種語(yǔ)言限制在*個(gè)特定應(yīng)用上,編譯器能夠產(chǎn)生高度優(yōu)化的代碼。隨著一種語(yǔ)言功能的擴(kuò)展,其所產(chǎn)生的代碼優(yōu)化也越來(lái)越困難。因此,語(yǔ)言設(shè)計(jì)者需要在功能與代碼的優(yōu)化之間作出權(quán)衡。多線程-吞吐量與可編程性:為了獲得較高的吞吐量NP必須支持多線程。通過(guò)允許程序員指定多個(gè)計(jì)算,使得即使在一個(gè)線程阻塞、等待協(xié)處理器或I/O處理的情形下,處理器仍然可以繼續(xù)執(zhí)行其它線程。多線程的主要缺點(diǎn)是程序員必須協(xié)助線程的活動(dòng),從而增加了編程的復(fù)雜性。即使在硬件能夠自動(dòng)處理線程的搶占和切換時(shí),程序員也許還是需要確保線程與共享資源使用之間的協(xié)調(diào)。因此,在高吞吐量和可編程性之間需要作出權(quán)衡。流量管理與設(shè)計(jì)本錢(qián):對(duì)網(wǎng)絡(luò)效勞收費(fèi)的ISP和其他組織需要網(wǎng)絡(luò)系統(tǒng)能夠管理流量,通過(guò)按優(yōu)先級(jí)給流量提供效勞以獲得最高的利益。從體系構(gòu)造的角度來(lái)看,這意味著流量管理、速度與本錢(qián)的折衷。嵌入式RISC處理器能夠在較低的速度實(shí)施流量管理。如果需要高速的流量管理,就必須由專門(mén)的硬件來(lái)完成,這將會(huì)增加總的設(shè)計(jì)本

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論