新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究_第1頁
新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究_第2頁
新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究_第3頁
新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究_第4頁
新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

新一代網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)研究

1網(wǎng)絡(luò)處理器的管道1.1網(wǎng)絡(luò)處理器np網(wǎng)絡(luò)高速發(fā)展對下一代網(wǎng)絡(luò)設(shè)備的要求如下:網(wǎng)絡(luò)具有優(yōu)異的性能,支持高速組處理;它對提高高級網(wǎng)絡(luò)服務(wù)的支持非常靈活。傳統(tǒng)的基于通用處理器(GeneralPurposeProcessor,GPP)的網(wǎng)絡(luò)設(shè)備只滿足靈活性要求;基于ASIC(ApplicationSpecificIntegratedCircuit)的網(wǎng)絡(luò)設(shè)備只滿足高性能要求;網(wǎng)絡(luò)處理器能夠通過靈活的軟件體系提供硬件級的處理性能,基于NP的網(wǎng)絡(luò)設(shè)備具有高性能和靈活性。因此,對交換機智能化與全部7層的線速處理的要求導(dǎo)致了網(wǎng)絡(luò)處理器的產(chǎn)生,可編程的NP給系統(tǒng)提供了極大的靈活性,與此同時還具有數(shù)據(jù)發(fā)送的高速性。不同的協(xié)議(如TCP/IP、ATM)包頭信息和格式是完全不同的,為了面向不同的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)服務(wù),需要網(wǎng)絡(luò)處理器具有可編程和可重載功能,以便隨技術(shù)的發(fā)展而進(jìn)行現(xiàn)場升級。根據(jù)國際網(wǎng)絡(luò)處理器會議的定義:“網(wǎng)絡(luò)處理器(NP)是一種可編程器件,它特定地應(yīng)用于通信領(lǐng)域的各種任務(wù),比如包處理、協(xié)議分析、路由查找、聲音/數(shù)據(jù)的匯聚、防火墻、QoS等”。其主要的功能包括以下幾部分:(1)協(xié)議識別和分類:根據(jù)數(shù)據(jù)包的協(xié)議類型、端口號、目的地址以及其它特定于協(xié)議的信息對數(shù)據(jù)包進(jìn)行識別。(2)拆裝和重組:數(shù)據(jù)包的拆分、處理以及為轉(zhuǎn)發(fā)而重組。(3)排隊和接入控制:識別出數(shù)據(jù)包之后,將這些數(shù)據(jù)包送往相應(yīng)的隊列中以進(jìn)行下一步處理,如優(yōu)先處理,流量整形等。同時,可根據(jù)某些安全接入策略進(jìn)行數(shù)據(jù)包過濾,確定是繼續(xù)轉(zhuǎn)發(fā),還是丟棄。(4)流量整形和流量工程:某些協(xié)議或應(yīng)用要求對流量進(jìn)行整形以使之在進(jìn)入輸出線或輸出光纖時滿足時延和時延抖動的要求。(5)QoS(QualityofService)和CoS(ClassofService):除了對數(shù)據(jù)包進(jìn)行流量整形外,還可以將其打上標(biāo)簽送往下一網(wǎng)絡(luò)節(jié)點進(jìn)行更加有效的處理。(6)修正數(shù)據(jù)包:編輯數(shù)據(jù)包并添加額外的信息。(7)差錯檢測:正確檢測來自數(shù)據(jù)鏈路層的有差錯的數(shù)據(jù)包并能采取有效的處理措施。雖然傳統(tǒng)的CPU包含的通用指令集可以處理上面所列的各項任務(wù),但網(wǎng)絡(luò)處理器可以通過增加指令、優(yōu)化體系結(jié)構(gòu)、設(shè)置硬件加速器等方法,使任務(wù)的執(zhí)行速度更快。1.2網(wǎng)絡(luò)處理器的技術(shù)特性網(wǎng)絡(luò)處理器存在于物理接口器件與交換結(jié)構(gòu)之間。網(wǎng)絡(luò)處理器硬件結(jié)構(gòu)一般包括多個片內(nèi)處理器、豐富的I/O接口單元、高速多總線單元以及專用協(xié)處理單元等(圖1)。(1)片內(nèi)處理器。網(wǎng)絡(luò)處理器一般包含多個片內(nèi)處理器,構(gòu)成多處理器系統(tǒng)。這些片內(nèi)處理器可按任務(wù)分工大致分為控制平面的處理核心和數(shù)據(jù)平面的轉(zhuǎn)發(fā)微引擎兩種類型。前者用于控制平面的系統(tǒng)維護(hù)、管理以及復(fù)雜數(shù)據(jù)處理,一般用通用的RISC核實現(xiàn);后者用于數(shù)據(jù)平面的快速包處理,提供包分類、調(diào)度等服務(wù)功能,一般具有專用的精簡指令集,這些指令專門針對網(wǎng)絡(luò)數(shù)據(jù)包處理而優(yōu)化設(shè)計的,例如數(shù)據(jù)塊傳輸、狀態(tài)判斷、堆棧操作、哈希查找等,設(shè)備制造商可以通過微碼編程實現(xiàn)各種協(xié)議和業(yè)務(wù)。轉(zhuǎn)發(fā)微引擎一般有幾個甚至幾十個,每個微引擎又包含多個硬件線程,每個線程都有一套專門的硬件來存放程序運行的上下文,可獲得線程切換的零開銷。(2)高速I/O接口單元。網(wǎng)絡(luò)處理器有豐富的I/O接口單元,包括物理鏈路接口、交換結(jié)構(gòu)接口、存儲器接口以及與其他外部處理部件的接口等。(3)內(nèi)部高速總線。多組處理器和I/O接口單元通過內(nèi)部高速總線(一般為多總線結(jié)構(gòu))連接在一起,組成優(yōu)化的數(shù)據(jù)通路結(jié)構(gòu),從而提供很強的硬件并行處理能力。(4)專用協(xié)處理器或稱專用硬件加速處理單元。采用專用硬件實現(xiàn)高速處理(線速)的通用功能模塊,以提高系統(tǒng)性能。如CRC效驗、哈希查找、字符匹配;針對安全產(chǎn)品,提供加/解密、大數(shù)運算等硬件單元。網(wǎng)絡(luò)處理器主要有如下幾個技術(shù)特性:(1)可編程性。網(wǎng)絡(luò)處理器的這種特質(zhì)可以使設(shè)備制造商通過修改微碼和升級軟件以快速滿足各種網(wǎng)絡(luò)通信業(yè)務(wù)的需求,而不用更改替換任何硬件,從而改變ASIC靈活性差的缺點。如通過網(wǎng)絡(luò)處理器可編程性就可以實現(xiàn)對下一代網(wǎng)絡(luò)協(xié)議IPv6技術(shù)的支持。(2)并行處理。網(wǎng)絡(luò)處理器可實現(xiàn)不同級別的并行處理:通過多級流水線實現(xiàn)指令級的并行,通過硬件多線程實現(xiàn)線程級的并行,通過片內(nèi)多處理器結(jié)構(gòu)實現(xiàn)處理器級的并行。(3)高速數(shù)據(jù)處理。網(wǎng)絡(luò)處理器自身的硬件結(jié)構(gòu)為達(dá)到線速包處理能力提供保障,避免節(jié)點設(shè)備成為瓶頸。(4)深層數(shù)據(jù)處理。也叫智能處理(IntelligentProcessing)。根據(jù)不同的服務(wù)要求,可對分組(幀)進(jìn)行不同深度的處理。例如路由查找只需處理第3層(IP頭部),分類需要處理到第4層(TCP/UDP協(xié)議),而安全則需要處理到應(yīng)用層(分組攜帶的有效載荷)。(5)模塊化設(shè)計。網(wǎng)絡(luò)處理器體系結(jié)構(gòu)的模塊化也包含不同的層次:硬件層面和軟件層面的模塊化。通過模塊化設(shè)計,力圖在保持高性能的基礎(chǔ)上獲得很好的可擴展性和靈活性,并能使設(shè)備廠商容易研發(fā)不同性能和不同特性的設(shè)備。(6)可擴展性。網(wǎng)絡(luò)處理器的可擴展性同樣包含硬件可擴展性和服務(wù)可擴展性。前者指網(wǎng)絡(luò)處理器除了可以用來研制小型設(shè)備,還可以通過交換機構(gòu)的連接研制大型設(shè)備。后者是指可以在對原有軟件結(jié)構(gòu)做很小改動的基礎(chǔ)上加入新的服務(wù)和功能。2微引擎設(shè)計2.1控制平面用risc核如何滿足上述可編程性、高速數(shù)據(jù)處理等技術(shù)特性,微引擎的體系結(jié)構(gòu)制定是設(shè)計網(wǎng)絡(luò)處理器的關(guān)鍵。我們在制定網(wǎng)絡(luò)處理器微引擎體系結(jié)構(gòu)時必須考慮很多問題,如:如何設(shè)置高效的指令集,微碼如何實現(xiàn),設(shè)置多少個微引擎,多個微引擎如何互連,如何調(diào)度,如何構(gòu)建多總線結(jié)構(gòu),每條總線寬度多少、總線如何定義,如何支持多引擎與存儲器、PCI等的并發(fā)操作,如何支持多NP擴展,片內(nèi)、片外存儲器大小以及訪問方式如何設(shè)置、如何管理,如何制定I/O接口、存儲器接口以滿足高速數(shù)據(jù)塊的傳輸?shù)?。這些問題的解決往往是網(wǎng)絡(luò)處理器的應(yīng)用定位、性價比等權(quán)衡的結(jié)果。雖然控制平面的處理核心和數(shù)據(jù)平面的轉(zhuǎn)發(fā)微引擎都有RISC核,但是,控制平面用RISC核與數(shù)據(jù)平面用RISC核兩者架構(gòu)和指令的設(shè)置卻有很大的區(qū)別:首先,前者主要負(fù)責(zé)整個網(wǎng)絡(luò)處理器的管理和控制,同時負(fù)責(zé)協(xié)議幀的處理和上層應(yīng)用程序的處理;后者主要實現(xiàn)數(shù)據(jù)包的線速處理轉(zhuǎn)發(fā),微引擎編程使用一套專為網(wǎng)絡(luò)數(shù)據(jù)流處理應(yīng)用定制的指令集,去掉了通用RISC芯片中對協(xié)議及包處理用處不大的部分,同時保留了RISC指令長度一致、單周期執(zhí)行時間、易于并行和流水線處理等優(yōu)點。其次,前者處于慢速通道中,一般采用通用RISC核可以滿足要求(如ARM9、PowerPC、MIPS),后者處于快速通道中,要求能線速轉(zhuǎn)發(fā),所以,網(wǎng)絡(luò)處理器的微引擎大多采用并行處理與通信機制、多線程切換控制機制、塊傳輸機制、多總線機制、靈活訪存機制等,而這些機制是通用RISC核天生所不具備的。上述區(qū)別是在設(shè)計網(wǎng)絡(luò)處理器微引擎時的重點和難點。下面是作者在著重研究Intel公司網(wǎng)絡(luò)處理器IXP1200的基礎(chǔ)上,給出一個微引擎結(jié)構(gòu)的參考設(shè)計,并重點闡述微引擎中多線程管理以及上下文事件仲裁與切換、I/O訪問處理的設(shè)計要點。2.2執(zhí)行模塊和數(shù)據(jù)業(yè)務(wù)圖2所示微引擎結(jié)構(gòu)支持硬件多線程,有4個程序計數(shù)器(μPC)以支持4個線程(又稱context上下文)同時工作,4個線程共享微控存。每個線程可以執(zhí)行相同或不同的微碼程序,采用內(nèi)部線程通信機制實現(xiàn)線程同步,提高系統(tǒng)效率。微指令的設(shè)置:算術(shù)邏輯運算、移位類;分支及跳轉(zhuǎn)類;I/O訪問類;本地寄存器操作類;雜類。微碼指令采用5級流水線執(zhí)行,執(zhí)行周期為1個時鐘周期,即PO為指令預(yù)取,PI為指令譯碼并形成源寄存器地址,P2為從源寄存器地址讀操作數(shù),P3為執(zhí)行算術(shù)邏輯運算或移位類操作并產(chǎn)生條件碼,P4為寫結(jié)果到目標(biāo)寄存器。設(shè)置2組通用寄存器A和B以方便同時取用2個源操作數(shù);每組通用寄存器可以被4個線程絕對共享,也可以分成4小組分別由4個線程相對獨立使用。相應(yīng)地,在微指令的編址方式中也設(shè)置了絕對地址和線程相對地址兩種模式。設(shè)置很大的傳輸寄存器集,單個指令就可以實現(xiàn)功能單元之間64B的數(shù)據(jù)塊移動,和功能單元與總線單元之間128B的數(shù)據(jù)塊移動。塊數(shù)據(jù)移動在充分利用微引擎計算資源的同時,還可以減小微碼程序規(guī)模。設(shè)置多個獨立數(shù)據(jù)總線和控制總線,可以實現(xiàn)數(shù)據(jù)并發(fā)移動:SDRAM單元和微引擎或總線單元之間的雙向同時讀寫;SRAM單元和微引擎或總線單元之間的雙向同時讀寫;SDRAM單元和PCI單元之間讀寫;總線單元和微引擎之間讀寫。2.3線程進(jìn)入睡眠狀態(tài)微引擎在硬件上設(shè)置了對多線程的支持:有4個程序計數(shù)器(μPC)以支持4個線程同時工作,每個線程有獨立的寄存器組以支持快速的線程切換。每個線程總是處于以下4個狀態(tài)之一:(1)不活動:其控制狀態(tài)寄存器CSR的CTX_Enable為0禁止其活動;(2)執(zhí)行:控制狀態(tài)寄存器CSR的Active_CTX_Status為當(dāng)前執(zhí)行的線程號,執(zhí)行狀態(tài)切換到睡眠狀態(tài)由軟件控制;(3)準(zhǔn)備:準(zhǔn)備執(zhí)行。當(dāng)執(zhí)行的線程進(jìn)入睡眠狀態(tài)的時候,微引擎線程仲裁器采用循環(huán)機制,選擇處于準(zhǔn)備狀態(tài)的某個線程進(jìn)入執(zhí)行狀態(tài);(4)睡眠:一般情況下,當(dāng)有I/O訪問時,控制狀態(tài)寄存器CSR的CTX_#_Wakeup_Events將線程切換到睡眠狀態(tài)。微引擎中的各個uPC可以由控制平面的CPU設(shè)置,以指明相應(yīng)線程執(zhí)行的開始;也可以由程序員用br=ctx或br!=ctx微指令顯式分配。微指令br=ctx[ctx,label#](ctx是上下文標(biāo)識,用0,1,2或3表示,label#為轉(zhuǎn)去執(zhí)行微程序的地址)表示當(dāng)前context號與指令中指定的一致時,轉(zhuǎn)去label#指定微控存地址處執(zhí)行。例如:在微控存起始處設(shè)置以下3條微指令將引起3個線程起始地址裝入3個μPC:雖然有4個程序計數(shù)器(μPC)可以支持4個線程同時工作,但是任何時候最多只有一個線程處于執(zhí)行狀態(tài)。線程的切換不是可以隨意發(fā)生的,而是由微程序顯式控制的。一種情況是:使用ctx_arb上下文仲裁指令;另一種情況是:I/O訪問指令中帶ctx_arb上下文仲裁選項,并且還要滿足一定的條件:(1)該線程允許運行(其控制狀態(tài)寄存器CSR的CTX_Enable為1允許其活動);(2)該線程處于準(zhǔn)備狀態(tài)。滿足上述條件才允許線程仲裁器發(fā)生切換(喚醒某個線程)。仲裁切換策略一般采用輪詢算法以保證每一個線程執(zhí)行的平等性。2.4命令總線仲裁策略數(shù)據(jù)平面的處理涉及大量的1/O訪問,所以微引擎設(shè)置了I/O訪問類指令,I/O訪問包括對DRAM、SRAM、SCRATCH、HASH、PCI、MSF、CAP等部件的讀、寫、清除、原子等操作。通用微處理器通過輸出存儲器地址直接訪問存儲器,然后等待數(shù)據(jù)返回,如果數(shù)據(jù)不能立即返回,則生成等待狀態(tài),如此會浪費計算周期。而微引擎對I/O的訪問則運用一種被稱為“提交”的命令形式,設(shè)置“提交”命令FIFO。即:當(dāng)微引擎訪問I/O部件時,輸出一個“提交”命令放入“提交”命令FIFO中,不必等待請求的任務(wù)完成就可以切換并執(zhí)行其它線程,然而必須知道請求的任務(wù)何時完成以便及時得到響應(yīng),所以,I/O部件需要識別出是哪個微引擎的線程(每個微引擎有微引擎號EngineID,每個線程有線程號ThreadID)發(fā)出的請求并返回相應(yīng)線程一個完成的信號,以它來實現(xiàn)“提交”命令輸出與任務(wù)完成的同步機制。被切換出去的線程則被暫時禁止參與仲裁,直到收到I/O部件的完成應(yīng)答信號。信號還可用于處理器之間和線程之間的同步通信。每個微引擎自帶2條目的命令FIFO,多個微引擎又通過各自的命令FIFO共享命令總線訪問I/O部件,所以命令總線仲裁器需要對各個命令FIFO作出仲裁,來決定誰被允許占用命令總線。命令總線仲裁策略:(1)根據(jù)命令的類型設(shè)置優(yōu)先級(如鏈接SDRAM、SRAM、非鏈接SDRAM

溫馨提示

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

評論

0/150

提交評論