<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 網(wǎng)絡(luò)處理器Intel IXP1200應(yīng)用

          網(wǎng)絡(luò)處理器Intel IXP1200應(yīng)用

          作者: 時間:2001-09-11 來源: 收藏

          隨著網(wǎng)絡(luò)規(guī)模和接口速度的增加,基于通用RISC技術(shù)的網(wǎng)絡(luò)設(shè)備無法在性能上滿足線速處理要求;另一方面新的網(wǎng)絡(luò)通信協(xié)議、標(biāo)準(zhǔn)不斷出現(xiàn)或變化,用戶的需求也在不斷變化之中,使得數(shù)據(jù)通信產(chǎn)品的更新?lián)Q代周期迅速縮短。在這種背景下,網(wǎng)絡(luò)處理器(Network Processor,NP)為下一代通信產(chǎn)品的設(shè)計提供了一種靈活的解決方案。

          本文引用地址:http://www.ex-cimer.com/article/3003.htm

          網(wǎng)絡(luò)處理器是一種專用于網(wǎng)絡(luò)通信設(shè)備的通用芯片,是一種開放式的、多樣化、可編程的開發(fā)環(huán)境,允許不同的設(shè)備供應(yīng)商采用同樣的芯片制造出各自不同功能和特色的網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)處理器芯片專門針對通信功能進(jìn)行了優(yōu)化,綜合了RISC芯片和ASIC的優(yōu)點(diǎn)——既像RISC可以軟件編程、提供足夠的靈活性來適應(yīng)數(shù)據(jù)通信市場高速的發(fā)展,又具有ASIC那樣的高性能,但又不象ASIC那樣需要長達(dá)12個月的開發(fā)周期。通過下載不同的程序,同樣的硬件平臺可以支持Vlan交換機(jī)、路由器、寬帶接入服務(wù)器、NAT、防火墻、WEB交換機(jī)等,支持各種速率的以太網(wǎng)、ATM、POS等接口,升級非常方便。

          目前提供NP的主要廠商有Agere、Intel、IBMMaker/Conexant、MMC、Motorola等。IXP1200網(wǎng)絡(luò)處理器是Level-One公司(現(xiàn)屬Intel)的拳頭產(chǎn)品。

          IXP12007RISC處理器、外部存儲器接口、IX總線接口以及PCI總線接口等封裝于1個芯片上構(gòu)成。7RISC處理器當(dāng)中有6個為包作業(yè)處理引擎以及1個管理/控制包作業(yè)處理引擎的“StrongARM”核。圖1IXP1200結(jié)構(gòu)圖。

          IXP1200主要包括以下組件:

          1.6個集成的32位可編程微引擎,工作頻率可達(dá)200MHz,每個引擎可支持四個線程,每個線程有獨(dú)立的程序計數(shù)器;

          2.集成有Intel StrongARM 32位處理器(RISC)核,16K指令緩沖,8K數(shù)據(jù)緩沖,512字節(jié)的一次性臨時數(shù)據(jù)緩沖,寫緩沖,內(nèi)存管理單元;

          3.高帶寬4.2Gb/s I/O總線;

          4.集成的32位,66MHz PCI總線接口。

          網(wǎng)絡(luò)處理器的最大特點(diǎn)是可編程性,因此開發(fā)重點(diǎn)由硬件轉(zhuǎn)向軟件。IXP1200平臺上的軟件按運(yùn)行位置可分為兩部分:StrongARM核上運(yùn)行BSP、驅(qū)動程序、實時操作系統(tǒng)、路由表維護(hù)及上層應(yīng)用程序,使用標(biāo)準(zhǔn)C語言開發(fā);微引擎進(jìn)行數(shù)據(jù)流輸入/輸出、打包/拆包、分類、快速查表、轉(zhuǎn)發(fā)等實時要求非??量痰奶幚?。每個微引擎包含一段可編程的控制存儲器區(qū)(1024×32bit,1K條指令),用以存儲微碼程序。微引擎中的四個線程共享該控制存儲器。微引擎編程使用一套專為網(wǎng)絡(luò)數(shù)據(jù)流處理應(yīng)用定制的指令集,去掉了通用RISC芯片中對協(xié)議及包處理用處不大的部分,同時保留了RISC指令長度一致、單周期執(zhí)行時間、易于并行和流水線處理等優(yōu)點(diǎn)。

          微引擎目前可以使用33條基本指令,大部分指令可以有不同執(zhí)行選項,合理組合使用可以達(dá)到最高性能。指令集合按功能可以分為如下五類:算術(shù)邏輯運(yùn)算、移位類;分支及跳轉(zhuǎn)類;訪問類指令;本地寄存器操作;雜類指令。

          Intel鼓勵使用宏風(fēng)格的編程方式,提供了一套宏庫,大大提高了編程效率及軟件可維護(hù)性。

          IXP1200是通過硬件和軟件的并行開發(fā)來縮短開發(fā)周期的。Intel免費(fèi)提供了一個完全集成的開發(fā)環(huán)境Developer Workbench用于微碼編程、符號匯編、鏈接、仿真、調(diào)試、性能分析等,使用界面類似微軟的Visual C++。一個完整的工程包括:工程文件、微碼源程序文件、宏庫、調(diào)試腳本、生成映象文件的匯編及鏈接設(shè)置、仿真外圍器件或ARM應(yīng)用程序的外部DLL等。相比常見的集成開發(fā)環(huán)境,其仿真模擬器和擴(kuò)展外部模塊比較有特色。

          IXP1200編程最大的挑戰(zhàn)在于利用其微引擎硬件多線程處理特性,充分利用現(xiàn)有存儲器帶寬,從而滿足高速處理要求。設(shè)計者需要折衷考慮硬件高速處理和軟件靈活性,主要圍繞優(yōu)化數(shù)據(jù)處理性能,包括數(shù)據(jù)包分類、指令效率、數(shù)據(jù)管理、控制通道和數(shù)據(jù)通道隔離、查表加速,還有存儲器容量和可擴(kuò)展性等方面。下面總結(jié)一些提高處理性能的經(jīng)驗。

          1、程序結(jié)構(gòu)組織及線程資源的合理分配使用;根據(jù)具體應(yīng)用處理要求,在設(shè)計中可以將線程分為接收調(diào)度、接收、發(fā)送調(diào)度、發(fā)送、包處理等線程。各個微引擎進(jìn)行相應(yīng)的分工,使其協(xié)同工作,性能最優(yōu),同時使各個階段的處理相對獨(dú)立,功能模塊化,程序結(jié)構(gòu)清晰。

          2、不同內(nèi)存資源的靈活使用:SRAM讀寫速度快,但價格高配置容量小,一般用于使用頻繁的索引表、隊列等;SDRAM容量大,主要作為包緩沖區(qū)、大的復(fù)雜數(shù)據(jù)區(qū);SCRATCH暫存區(qū)作為片內(nèi)小容量的存儲區(qū)。

          3、靈活運(yùn)用指令選項進(jìn)行優(yōu)化:微碼指令通常按五級流水線方式執(zhí)行,當(dāng)執(zhí)行管道被指令填滿時,則每個指令周期都將有一條指令完成,但分支指令、跳轉(zhuǎn)指令、上下文切換指令等會引起執(zhí)行管道中的指令異常退出,從而導(dǎo)致微引擎效率降低。解決方法是巧妙安排指令執(zhí)行順序,使用優(yōu)化選項。

          后延分支(Defer)的目的在于減少或消除執(zhí)行管道中的異常退出指令。在后延分支中,緊跟在分支決定后的指令可以在分支生效前執(zhí)行。如果在分支指令后可找到有用的工作來填充浪費(fèi)的指令周期,則分支引起的等待時間就可隱藏起來。

          猜測分支(Guess Branch)可選標(biāo)識允許在實際的分支決定作出之前,從分支路徑上預(yù)取指令。因此為使程序管道指令運(yùn)行效率更高,在編程中應(yīng)注意分支指令周圍的指令安排:適當(dāng)使用deferred branch,在分支指令后面安排一些指令以填充指令執(zhí)行管道;用于分支決定的條件代碼應(yīng)盡早確定;根據(jù)處理器的猜測分支邏輯安排分支語句,并適當(dāng)?shù)丶由戏种Э蛇x標(biāo)識。

          在讀寫SRAM、SDRAM類指令后可用ctx_swap選項,使得訪問存儲器的延時可以被其它線程利用。同樣在一段較長的處理過程中加入ctx_arb[voluntary]讓其它線程有機(jī)會運(yùn)行。

          4、盡可能使用高效率的算法:

          微引擎包處理很大一部分工作(如路由查找、過濾匹配)需要進(jìn)行各種查表處理,采用高效的查找算法可以提高處理性能。如使用IXP1200硬件HASH功能一次可以計算出三個鍵值,多項式HASH算法中用到的乘子多項式值可以根據(jù)分布特點(diǎn)選取以得到最佳的HASH結(jié)果,減少沖突概率?!?/font>

           

          參考文獻(xiàn)

          1 IXP1200 Network Processor Datasheet

          2 IXP1200 Network Processor Hardware Reference Manual

          3 IXP1200 Network Processor Programmer's Reference

          4 IXP1200 Network Processor Software Reference Manual

          c++相關(guān)文章:c++教程




          關(guān)鍵詞:

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();