專利名稱:一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法。
背景技術(shù):
目前國內(nèi)外各大通信設(shè)備公司的數(shù)據(jù)產(chǎn)品中,相當(dāng)一部分產(chǎn)品使用網(wǎng)絡(luò)處理器來實(shí)現(xiàn)各類路由轉(zhuǎn)發(fā)業(yè)務(wù)?;诰W(wǎng)絡(luò)處理器架構(gòu)的路由器系統(tǒng),相比使用專用集成電路(Application Specific Integrated Circuit,ASIC)實(shí)現(xiàn)的系統(tǒng),具有業(yè)務(wù)開發(fā)、修改方便靈活,開發(fā)周期短,成本低等顯著優(yōu)點(diǎn),因而得到了廣泛的使用。
但是,現(xiàn)在大多數(shù)網(wǎng)絡(luò)處理器,有一個(gè)很致命的缺陷,就是其指令空間太小,導(dǎo)致代碼空間不夠的問題,尤其是隨著當(dāng)今路由器產(chǎn)品的發(fā)展,支持的業(yè)務(wù)功能越來越多。三層功能越來越繁多,二層功能被加進(jìn)來,支持的接口卡類型也是越來越豐富以太、POS(Packet Over SDH,利用同步數(shù)字序列傳輸分組數(shù)據(jù)業(yè)務(wù))、異步傳輸模式(ATM)、E1、E3等等,對于這些越來越多的業(yè)務(wù)和接口卡,網(wǎng)絡(luò)處理器指令空間太小的弊端越發(fā)的暴露出來,甚至成為整個(gè)路由器系統(tǒng)的瓶頸。
為了解決這個(gè)問題,出現(xiàn)了以下幾種方法1.壓縮路由器的業(yè)務(wù)功能,使只提供部分功能,這無疑是以削弱路由器的功能為代價(jià)的。
2.使用多個(gè)網(wǎng)絡(luò)處理器來完成全部的功能,這種方法無疑提高了硬件的成本。
3.在專利CN200610034573中又提出了一種方法在系統(tǒng)啟動(dòng)時(shí),不把微碼的所有指令加載入網(wǎng)絡(luò)處理器的指令空間,而是把微碼分割為多個(gè)小塊,只把一部分先加載入網(wǎng)絡(luò)處理器的指令空間,其他的存貯在內(nèi)存中,運(yùn)行時(shí)需要某些代碼時(shí),再把該處于內(nèi)存中的代碼調(diào)入網(wǎng)絡(luò)處理器的指令空間中執(zhí)行。該種方法構(gòu)思精巧,靈活性大,但是實(shí)現(xiàn)復(fù)雜,并且由于代碼執(zhí)行時(shí)需要一個(gè)加載過程,可能導(dǎo)致業(yè)務(wù)的一定中斷。
綜上所述,現(xiàn)有解決方法都存在一定缺點(diǎn)需要改進(jìn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,提供一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法,不增加成本,且不削減路由器功能,能夠使整個(gè)系統(tǒng)資源資利率最大化。
為了解決上述技術(shù)問題,本發(fā)明提供了一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法,包含如下步驟(a)對系統(tǒng)的硬件配置,編寫對應(yīng)的微碼版本;(b)將所有的微碼版本保存在系統(tǒng)中;(c)系統(tǒng)啟動(dòng)時(shí),獲取系統(tǒng)的硬件配置,加載對應(yīng)的微碼版本至網(wǎng)絡(luò)處理器中。
進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述步驟(a)中,首先將系統(tǒng)的硬件配置進(jìn)行分類,劃分為若干硬件配置等價(jià)類,同一硬件配置等價(jià)類的硬件配置其對應(yīng)的微碼版本相同,所述步驟(c)中,獲取系統(tǒng)硬件配置后,判斷其所屬的硬件配置等價(jià)類,從而獲得其對應(yīng)的微碼版本。
進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述微碼版本只包含對應(yīng)的硬件配置或硬件配置等價(jià)類所需要的業(yè)務(wù)模塊及其可使用的系統(tǒng)資源。
進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述硬件配置的分類,把支持的業(yè)務(wù)種類相同,每個(gè)業(yè)務(wù)占用資源相同的硬件配置劃分為同一硬件配置等價(jià)類。
進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述步驟(b)中,系統(tǒng)中還建立硬件配置或硬件配置等價(jià)類和對應(yīng)微碼版本的映射表,保存所有微碼版本的起始地址和大小,步驟(c)中,根據(jù)硬件配置或硬件配置等價(jià)類,查找映射表,獲得對應(yīng)的微碼版本的起始地址和大小,加載所述微碼版本。
進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述系統(tǒng)中包含一種默認(rèn)微碼版本,所述默認(rèn)微碼版本包含了系統(tǒng)所有業(yè)務(wù),所述步驟(c)中,當(dāng)系統(tǒng)的硬件配置無對應(yīng)的微碼版本時(shí),加載默認(rèn)微碼版本至網(wǎng)絡(luò)處理器中。
本發(fā)明提供的方法,充分考慮路由器系統(tǒng)的硬件配置,能夠根據(jù)硬件的配置自動(dòng)選擇加載合適的微碼版本,使得系統(tǒng)支持的業(yè)務(wù)和業(yè)務(wù)的性能都達(dá)到一個(gè)最優(yōu)的配置。
圖1是網(wǎng)絡(luò)處理卡的硬件基本框圖;圖2本發(fā)明系統(tǒng)啟動(dòng)流程圖。
具體實(shí)施例方式
在現(xiàn)有的解決方法中,都沒有考慮到系統(tǒng)的硬件配置。網(wǎng)絡(luò)處理器資源寶貴,如果我們對所支持的業(yè)務(wù)不加以區(qū)分,把所有的業(yè)務(wù)統(tǒng)統(tǒng)的都加載進(jìn)系統(tǒng),毫無疑問,會導(dǎo)致所有的業(yè)務(wù)都搶占寶貴的網(wǎng)絡(luò)處理器的資源,都無法得到足夠多的資源,產(chǎn)生資源緊張的現(xiàn)象。而如果只提供部分功能,又削弱了路由器系統(tǒng)的功能。本發(fā)明提供了一種方法,充分考慮路由器系統(tǒng)的硬件配置,能夠根據(jù)硬件的配置自動(dòng)選擇加載合適的微碼版本,使得系統(tǒng)支持的業(yè)務(wù)和業(yè)務(wù)的性能都達(dá)到一個(gè)最優(yōu)的配置。
本發(fā)明路由器系統(tǒng)中網(wǎng)絡(luò)處理器微碼加載方法包括以下步驟A、預(yù)先對系統(tǒng)的可能硬件配置進(jìn)行統(tǒng)計(jì)、分類,根據(jù)硬件能夠支持的業(yè)務(wù)種類、各種業(yè)務(wù)的性能指標(biāo),劃分為有限的若干種等價(jià)配置。每一種等價(jià)配置,微碼的處理是相同的。
(A1)根據(jù)硬件配置,決定必要的業(yè)務(wù)種類,以及每個(gè)業(yè)務(wù)能夠占用的系統(tǒng)資源。
(A2)對硬件配置進(jìn)行統(tǒng)計(jì)歸類,把支持的業(yè)務(wù)種類相同,每個(gè)業(yè)務(wù)占用資源也相同的配置定義為一個(gè)硬件配置等價(jià)類。
比如根據(jù)網(wǎng)絡(luò)處理器型號、網(wǎng)絡(luò)處理器內(nèi)存型號以及容量、接口卡類型等等,歸類組合出若干種硬件配置等價(jià)類,每一種硬件配置等價(jià)類所支持的業(yè)務(wù)種類,以及每種業(yè)務(wù)可以達(dá)到的性能指標(biāo)都是一樣的,從而處理每種硬件配置等價(jià)類的微碼版本是完全一樣的。
(A3)統(tǒng)計(jì)出系統(tǒng)的所有硬件配置等價(jià)類。
(A4)可選的,可能還需要一個(gè)默認(rèn)的硬件配置等價(jià)類,來表示所有特殊的硬件配置。
需要一種通用的微碼版本,該版本包含了所有的業(yè)務(wù),當(dāng)系統(tǒng)的硬件配置很特殊,不滿足所有的硬件配置等價(jià)類時(shí)或沒有對應(yīng)的微碼版本時(shí),則使用默認(rèn)微碼版本。
B、為每種硬件配置等價(jià)類編寫專門版本的微碼,每種微碼版本中只包含對應(yīng)的硬件配置等價(jià)類所需要的業(yè)務(wù)模塊,以及使用該硬件配置等價(jià)類時(shí)能夠使用的系統(tǒng)資源。
為每一種硬件配置等價(jià)類編寫特定版本的微碼時(shí),充分考慮該種硬件配置需要的業(yè)務(wù)、性能指標(biāo)等,對業(yè)務(wù)模塊進(jìn)行針對性的剪裁,去除不需要的業(yè)務(wù),為需要支持的業(yè)務(wù)讓出更多的資源,以達(dá)到更好的性能指標(biāo)。編寫最適合該類型配置的微碼版本,以提高系統(tǒng)資源利用率。
C、把所有的微碼版本都保存在系統(tǒng)中,并建立起硬件配置等價(jià)類和微碼版本的對應(yīng)關(guān)系。
(C1)將所有的微碼版本都加載入系統(tǒng)鏡像中,并保存所有版本微碼的起始地址和大?。?C2)建立起硬件配置等價(jià)類和微碼版本對應(yīng)關(guān)系表(以下簡稱映射表)。
一般的網(wǎng)絡(luò)處理器的微碼指令空間很小,通常只有幾十K,而系統(tǒng)的內(nèi)存很大,所以可以在編譯時(shí)一次性把所有的微碼版本都加載到系統(tǒng)鏡像文件中,并建立硬件配置等價(jià)類和微碼版本的對應(yīng)關(guān)系表。硬件配置和微碼版本對應(yīng)關(guān)系表中,可以根據(jù)硬件配置得到對應(yīng)微碼版本的微碼鏡像起始地址和微碼鏡像的大小。
D、系統(tǒng)啟動(dòng)時(shí),主控系統(tǒng)依據(jù)系統(tǒng)的實(shí)際配置,判斷出屬于哪一種硬件配置等價(jià)類,然后加載對應(yīng)版本的微碼到網(wǎng)絡(luò)處理器中并執(zhí)行。如圖2所示,包含如下步驟(D1)主控系統(tǒng)得到系統(tǒng)的硬件配置,判斷屬于哪一種硬件配置等價(jià)類;(D2)根據(jù)等價(jià)硬件配置類,從映射表中得到微碼鏡像的版本,包含微碼指令的起始地址和微碼的大?。?D3)把該微碼版本加載入微引擎的指令空間;(D4)進(jìn)行相關(guān)的配置和初始化,啟動(dòng)微引擎,執(zhí)行所述微碼版本。
權(quán)利要求
1.一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法,包含如下步驟(a)對系統(tǒng)的硬件配置,編寫對應(yīng)的微碼版本;(b)將所有的微碼版本保存在系統(tǒng)中;(c)系統(tǒng)啟動(dòng)時(shí),獲取系統(tǒng)的硬件配置,加載對應(yīng)的微碼版本至網(wǎng)絡(luò)處理器中。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟(a)中,首先將系統(tǒng)的硬件配置進(jìn)行分類,劃分為若干硬件配置等價(jià)類,同一硬件配置等價(jià)類的硬件配置其對應(yīng)的微碼版本相同,所述步驟(c)中,獲取系統(tǒng)硬件配置后,判斷其所屬的硬件配置等價(jià)類,從而獲得其對應(yīng)的微碼版本。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述微碼版本只包含對應(yīng)的硬件配置或硬件配置等價(jià)類所需要的業(yè)務(wù)模塊及其可使用的系統(tǒng)資源。
4.如權(quán)利要求2所述的方法,其特征在于,所述硬件配置的分類,把支持的業(yè)務(wù)種類相同,每個(gè)業(yè)務(wù)占用資源相同的硬件配置劃分為同一硬件配置等價(jià)類。
5.如權(quán)利要求1或2所述的方法,其特征在于,所述步驟(b)中,系統(tǒng)中還建立硬件配置或硬件配置等價(jià)類和對應(yīng)微碼版本的映射表,保存所有微碼版本的起始地址和大小,步驟(c)中,根據(jù)硬件配置或硬件配置等價(jià)類,查找映射表,獲得對應(yīng)的微碼版本的起始地址和大小,加載所述微碼版本。
6.如權(quán)利要求1所述的方法,其特征在于,所述系統(tǒng)中包含一種默認(rèn)微碼版本,所述默認(rèn)微碼版本包含了系統(tǒng)所有業(yè)務(wù),所述步驟(c)中,當(dāng)系統(tǒng)的硬件配置無對應(yīng)的微碼版本時(shí),加載默認(rèn)微碼版本至網(wǎng)絡(luò)處理器中。
全文摘要
本發(fā)明提供了一種路由器系統(tǒng)中網(wǎng)絡(luò)處理器加載微碼的方法,包含如下步驟(a)對系統(tǒng)的硬件配置,編寫對應(yīng)的微碼版本;(b)將所有的微碼版本保存在系統(tǒng)中;(c)系統(tǒng)啟動(dòng)時(shí),獲取系統(tǒng)的硬件配置,加載對應(yīng)的微碼版本至網(wǎng)絡(luò)處理器中。本發(fā)明提供的方法,充分考慮路由器系統(tǒng)的硬件配置,能夠根據(jù)硬件的配置自動(dòng)選擇加載合適的微碼版本,使得系統(tǒng)支持的業(yè)務(wù)和業(yè)務(wù)的性能都達(dá)到一個(gè)最優(yōu)的配置。
文檔編號G06F12/02GK101075966SQ20071012728
公開日2007年11月21日 申請日期2007年7月5日 優(yōu)先權(quán)日2007年7月5日
發(fā)明者吳兆勝, 潘建農(nóng), 楊焱 申請人:中興通訊股份有限公司