加載微碼的裝置以及加載微碼的方法
【專利摘要】本發(fā)明公開了加載微碼的方法及裝置。所述裝置的控制平面獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼。所述裝置的控制平面將所述第一版本的微碼加載到指令空間。所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含PC的值。所述PC的值為所述第一版本的地址。所述轉(zhuǎn)發(fā)平面用于根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。上述方案有助于降低對業(yè)務(wù)進行升級的成本。
【專利說明】加載微碼的裝置以及加載微碼的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及加載微碼的裝置以及加載微碼的方法。
【背景技術(shù)】
[0002]隨著對網(wǎng)絡(luò)帶寬需求的增長以及網(wǎng)絡(luò)應(yīng)用的日益多樣化,以專用集成電路(英文:application specific integrated circuit,簡稱:ASIC)技術(shù)為核心的路由器等網(wǎng)絡(luò)設(shè)備已經(jīng)成為了網(wǎng)絡(luò)的瓶頸。為了解決網(wǎng)絡(luò)應(yīng)用的瓶頸,同時兼顧處理所需要的可編程性和靈活性,基于專用指令集處理器(英文!application specific instruction setprocessor,簡稱:ASIP)技術(shù)的網(wǎng)絡(luò)處理器(英文:network processor,簡稱:NP)得到了廣泛發(fā)展。
[0003]現(xiàn)有技術(shù)中,網(wǎng)絡(luò)裝置(例如路由器)對不同的報文執(zhí)行不同的業(yè)務(wù)。執(zhí)行不同的業(yè)務(wù),需要使用不同的微碼。例如,對網(wǎng)際協(xié)議(英文:internet protocol,簡稱:IP)報文執(zhí)行IP轉(zhuǎn)發(fā)業(yè)務(wù)。對以太網(wǎng)巾貞執(zhí)行媒體訪問控制(英文:media access control,簡稱:MAC)轉(zhuǎn)發(fā)業(yè)務(wù)。執(zhí)行IP轉(zhuǎn)發(fā)業(yè)務(wù)的微碼和執(zhí)行MAC轉(zhuǎn)發(fā)業(yè)務(wù)的微碼是不同的。另外,執(zhí)行IP轉(zhuǎn)發(fā)業(yè)務(wù)的微碼在網(wǎng)絡(luò)裝置中的存儲位置與執(zhí)行MAC轉(zhuǎn)發(fā)業(yè)務(wù)的微碼在網(wǎng)絡(luò)裝置中的存儲位置也是不同的。網(wǎng)絡(luò)裝置接收到報文后,可以通過分支語句索引對應(yīng)的微碼,從而執(zhí)行接收到的報文對應(yīng)的業(yè)務(wù)。對微碼進行更新可以實現(xiàn)對業(yè)務(wù)的升級。上述技術(shù)方案中,對業(yè)務(wù)進行升級的代價比較大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了加載微碼的方法及加載微碼的裝置,有助于降低對業(yè)務(wù)進行升級的成本。
[0005]第一方面,提供一種加載微碼的裝置,所述裝置包括:控制平面和轉(zhuǎn)發(fā)平面;
[0006]所述控制平面,用于獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼,將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面的微引擎的指令空間;以及,指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含程序計數(shù)器(英文:program counter ;簡稱:PC)的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址;
[0007]所述轉(zhuǎn)發(fā)平面,用于根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。
[0008]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述控制平面還用于:
[0009]獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼;
[0010]將所述第二版本的微碼加載到所述微引擎的指令空間;
[0011]指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微引擎的指令空間中的地址。
[0012]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述控制平面還用于:[0013]在指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,刪除所述微引擎的指令空間中的所述第一版本的微碼。
[0014]結(jié)合第一方面,或者結(jié)合第一方面的第一種至第二種可能的實現(xiàn)方式中的一種,所述轉(zhuǎn)發(fā)平面還用于:
[0015]在根據(jù)所述控制平面指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址;
[0016]根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0017]結(jié)合第一方面,或者結(jié)合第一方面的第一種至第三種可能的實現(xiàn)方式中的一種,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
[0018]第二方面,提供一種加載微碼的方法,該方法包括:
[0019]裝置的控制平面獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼;
[0020]所述裝置的控制平面將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面的微引擎的指令空間;
[0021]所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含程序計數(shù)器PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址;
[0022]所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。
[0023]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,還包括:
[0024]所述裝置的控制平面獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼;
[0025]所述裝置的控制平面將所述第二版本的微碼加載到所述微引擎的指令空間;
[0026]所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微弓I擎的指令空間中的地址。
[0027]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,還包括:
[0028]刪除所述微引擎的指令空間中的所述第一版本的微碼。
[0029]結(jié)合第二方面,或者結(jié)合第二方面的第一種至第二種可能的實現(xiàn)方式中的一種,所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,所述方法還包括:
[0030]所述轉(zhuǎn)發(fā)平面根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址;
[0031]所述轉(zhuǎn)發(fā)平面根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0032]結(jié)合第二方面,或者結(jié)合第二方面的第一種至第三種可能的實現(xiàn)方式中的一種,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
[0033]現(xiàn)有技術(shù)中,網(wǎng)絡(luò)裝置需要通過分支語句索引用于實現(xiàn)某一業(yè)務(wù)的微碼。將該業(yè)務(wù)的微碼更新為新的微碼后,新的微碼通常需要存儲在新的存儲位置。因此,需要修改分支語句,從而使得修改后的分支語句可以索引更新后的微碼。修改分支語句的代價比較大,這導致現(xiàn)有技術(shù)中對業(yè)務(wù)進行升級的代價比較大。本申請中,可以通過轉(zhuǎn)發(fā)表索引用于實現(xiàn)某一業(yè)務(wù)的微碼。相對于修改分支語句,修改轉(zhuǎn)發(fā)表比較容易實現(xiàn)。因此,本申請?zhí)峁┑募夹g(shù)方案有助于降低對業(yè)務(wù)進行升級的成本。
【專利附圖】
【附圖說明】
[0034]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明實施例中加載微碼的裝置的結(jié)構(gòu)示意圖;
[0036]圖2為本發(fā)明實施例提供的加載微碼的方法的流程示意圖;
[0037]圖3為本發(fā)明實施例提供的加載微碼的方法的流程示意圖。
【具體實施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0039]參見圖1,為本發(fā)明實施例提供的加載微碼的裝置的結(jié)構(gòu)示意圖。
[0040]如圖所示,加載微碼的裝置100可以是路由器、網(wǎng)絡(luò)交換機、分組傳送網(wǎng)(英文:packet transport network,簡稱:PTN)設(shè)備、防火墻、負載均衡器、數(shù)據(jù)中心或者波分復用(英文:wavelength_division multiplexing,簡稱:WDM)設(shè)備。所述網(wǎng)絡(luò)交換機可以是開放流交換機(英文:0penFlow Switch)。
[0041]如圖1所示,所述裝置100可包括控制平面110和轉(zhuǎn)發(fā)平面120。舉例來說,所述裝置的控制平面Iio可以包括中央處理器(英文:central processing unit,簡稱:CPU),所述裝置的轉(zhuǎn)發(fā)平面120可以包括網(wǎng)絡(luò)處理器(英文:network processor,簡稱:NP),所述NP可以包括多個核(core)。所述控制平面110用于實現(xiàn)軟件與硬件的管理控制功能,所述控制平面也可稱為控制平面模塊;所述轉(zhuǎn)發(fā)平面120用于實現(xiàn)報文轉(zhuǎn)發(fā)處理功能,所述轉(zhuǎn)發(fā)平面也可稱為轉(zhuǎn)發(fā)平面模塊。
[0042]舉例來說,所述控制平面110可以通過所述裝置的控制板(英文:control board)實現(xiàn)。所述轉(zhuǎn)發(fā)平面120可以通過所述裝置的接口板(英文-1nterface board)實現(xiàn)。
[0043]所述控制平面110,用于獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼,將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面120的微引擎的指令空間。所述控制平面110還用于指示所述裝置的轉(zhuǎn)發(fā)平面120生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址。
[0044]所述轉(zhuǎn)發(fā)平面120,用于根據(jù)所述控制平面110的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。
[0045]所述微引擎是處理器。所述處理器能執(zhí)行微碼。所述處理器可以通過ASIC或者現(xiàn)場可編程門陣列(英文:field programmable gate array,簡稱:FPGA)實現(xiàn)。[0046]舉例來說,所述微引擎可以通過所述NP中的所述多個core中的一個core實現(xiàn)。
[0047]所述第一版本的微碼在所述微引擎的指令空間中的地址用于指示所述第一版本的微碼的存儲位置。舉例來說,所述第一版本的微碼在所述微引擎的指令空間中的地址可以等于所述第一版本的微碼中的第一條指令的地址。
[0048]所述指令空間是用于存儲指令的存儲空間。
[0049]舉例來說,所述業(yè)務(wù)可以是轉(zhuǎn)發(fā)業(yè)務(wù)。例如,所述轉(zhuǎn)發(fā)業(yè)務(wù)可以是三層虛擬專用網(wǎng)(英文:layer3virtual private network,簡稱:L3VPN)轉(zhuǎn)發(fā)業(yè)務(wù),二層虛擬專用網(wǎng)(英文:layer2virtual private network,簡稱:L2VPN)轉(zhuǎn)發(fā)業(yè)務(wù),虛擬專用局域網(wǎng)業(yè)務(wù)(英文:virtual private LAN service,簡稱:VPLS),多協(xié)議標簽交換(英文:multiprotocol label switching,簡稱:MPLS)轉(zhuǎn)發(fā)業(yè)務(wù),IP轉(zhuǎn)發(fā)業(yè)務(wù)或者二層交換(英文:layer2switching)業(yè)務(wù)。
[0050]所述PC是寄存器。舉例來說,所述裝置100可以包括跳轉(zhuǎn)指令。所述跳轉(zhuǎn)指令的操作數(shù)可以是所述PC的值。所述裝置100可以通過執(zhí)行所述跳轉(zhuǎn)指令將所述轉(zhuǎn)發(fā)表中的所述PC的值寫入到所述PC中。所述微引擎可以根據(jù)所述PC確定所述第一版本的微碼在所述微弓I擎的指令空間中的地址。所述微弓丨擎可以訪問所述第一版本的微碼。
[0051]優(yōu)選地,所述裝置100的控制平面110指示所述裝置100的轉(zhuǎn)發(fā)平面120生成包含程序計數(shù)器PC的所述業(yè)務(wù)的接口表。具體包括:配置一映射表。所述映射表中包括所述業(yè)務(wù)的接口表的標識信息以及對應(yīng)的PC的值。所述PC的值為所述業(yè)務(wù)對應(yīng)的第一版本微碼在所述微引擎的指令空間中的地址。或者,在所述業(yè)務(wù)的接口表中設(shè)置一PC字段。在所述接口表中的所有或部分表項的PC字段中設(shè)置PC的值。所述PC的值等于所述業(yè)務(wù)對應(yīng)的第一版本微碼在所述微弓I擎的指令空間中的地址。
[0052]優(yōu)選地,所述控制平面在獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼之前,還執(zhí)行以下步驟:確定所述業(yè)務(wù)的配置信息對應(yīng)所述第一版本的微碼。
[0053]優(yōu)選地,所述確定所述業(yè)務(wù)的配置信息對應(yīng)所述第一版本的微碼的步驟具體可以包括:所述裝置100的控制平面110確定所述業(yè)務(wù)配置信息對應(yīng)的業(yè)務(wù)。所述裝置100的控制平面110確定所述代碼是用于執(zhí)行所述業(yè)務(wù)的計算機程序。
[0054]舉例來說,所述業(yè)務(wù)可以通過所述裝置100的接口執(zhí)行。例如,所述業(yè)務(wù)配置信息可以描述:為所述接口使能所述業(yè)務(wù)。所述接口可以是物理接口,也可以是邏輯接口。例如,所述邏輯接口可以是匯聚接口(英文:trunk interface)或者虛擬局域網(wǎng)接口(英文:VLAN interface)。
[0055]舉例來說,所述業(yè)務(wù)配置信息可以通過telnet生成。所述業(yè)務(wù)配置信息也可以是網(wǎng)管生成的。
[0056]舉例來說,在所述裝置100是開放流交換機的場景中,所述業(yè)務(wù)配置信息可以是開放流控制器生成的。所述開放流控制器可以通過控制通道(英文:control channel)向所述開放流交換機發(fā)送所述業(yè)務(wù)配置信息。
[0057]優(yōu)選地,所述轉(zhuǎn)發(fā)平面120還用于:在根據(jù)所述控制平面110指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址,并根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0058]具體來說,所述微引擎根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址,并根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0059]上述技術(shù)方案中,裝置100的控制平面110將微碼加載到位于轉(zhuǎn)發(fā)平面120的微引擎的指令空間,并指示所述轉(zhuǎn)發(fā)平面120生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址。相對于現(xiàn)有技術(shù)中修改分支語句,修改轉(zhuǎn)發(fā)表比較容易實現(xiàn)。因此,本申請?zhí)峁┑募夹g(shù)方案有助于降低對業(yè)務(wù)進行升級的成本。
[0060]優(yōu)選地,所述控制平面110還用于:獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼,將所述第二版本的微碼加載到所述微引擎的指令空間,指示所述裝置100的轉(zhuǎn)發(fā)平面120將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微引擎的指令空間中的地址。通過該優(yōu)選方案可實現(xiàn)微碼版本升級的操作。
[0061]優(yōu)選地,所述控制平面110還用于:在指示所述裝置100的轉(zhuǎn)發(fā)平面120將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,刪除所述微引擎的指令空間中的所述第一版本的微碼。通過該優(yōu)選方案可在微碼版本升級后,刪除舊版本的微碼,以節(jié)省指令空間的占用。
[0062]優(yōu)選地,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
[0063]所述接口表用于判斷所述裝置100接收到的報文的來源,從而確定對報文的處理方式。例如,接口表中可配置端口號以及與所述端口號對應(yīng)的PC的值,所述端口號可包括以太網(wǎng)端口的端口號、異步傳輸模式(英文!Asynchronous Transfer Mode,簡稱:ATM)端口的端口號等。根據(jù)報文的入端口的端口號,通過查詢該接口表,即可確定出對應(yīng)的PC的值,從而根據(jù)該PC的值執(zhí)行對應(yīng)的微碼。再例如,接口表中可配置接口標識以及與所述接口標識對應(yīng)的PC的值,所述接口標識可以包括不同虛擬局域網(wǎng)(英文virtual localarea network,簡稱:VLAN)的vlan ID。根據(jù)報文中攜帶的vlan ID,通過查詢該接口表,即可確定出對應(yīng)的PC的值,從而根據(jù)該PC的值執(zhí)行對應(yīng)的微碼。
[0064]現(xiàn)有技術(shù)中,網(wǎng)絡(luò)裝置需要通過分支語句索引用于實現(xiàn)某一業(yè)務(wù)的微碼。將該業(yè)務(wù)的微碼更新為新的微碼后,新的微碼通常需要存儲在新的存儲位置。因此,需要修改分支語句,從而使得修改后的分支語句可以索引更新后的微碼。修改分支語句的代價比較大,這導致現(xiàn)有技術(shù)中對業(yè)務(wù)進行升級的代價比較大。本發(fā)明實施例中,裝置100可以通過轉(zhuǎn)發(fā)表索引用于實現(xiàn)某一業(yè)務(wù)的微碼。相對于修改分支語句,修改轉(zhuǎn)發(fā)表比較容易實現(xiàn)。因此,本申請?zhí)峁┑募夹g(shù)方案有助于降低對業(yè)務(wù)進行升級的成本。
[0065]圖2示出了加載微碼的方法的流程示意圖。上述加載微碼的裝置可以用于執(zhí)行圖2所示的方法。如圖2所示,該方法包括:
[0066]S21:所述裝置的控制平面獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼。
[0067]S22:所述裝置的控制平面將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面的微引擎的指令空間。
[0068]S23:所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含程序計數(shù)器PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址。
[0069]S23a:所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。[0070]所述裝置可以是路由器、網(wǎng)絡(luò)交換機、PTN設(shè)備、防火墻、負載均衡器、數(shù)據(jù)中心或者WDM設(shè)備。所述網(wǎng)絡(luò)交換機可以是開放流交換機。
[0071]所述裝置可包括控制平面和轉(zhuǎn)發(fā)平面。舉例來說,所述裝置的控制平面可以包括CPU,所述裝置的轉(zhuǎn)發(fā)平面可以包括NP,所述NP可以包括多個核。
[0072]舉例來說,所述控制平面可以通過所述裝置的控制板實現(xiàn)。所述轉(zhuǎn)發(fā)平面可以通過所述裝置的接口板實現(xiàn)。
[0073]所述第一版本的微碼在所述微引擎的指令空間中的地址用于指示所述第一版本的微碼的存儲位置。舉例來說,所述第一版本的微碼在所述微引擎的指令空間中的地址可以等于所述第一版本的微碼中的第一條指令的地址。
[0074]所述指令空間是用于存儲指令的存儲空間。
[0075]舉例來說,所述業(yè)務(wù)可以是轉(zhuǎn)發(fā)業(yè)務(wù)。例如,所述轉(zhuǎn)發(fā)業(yè)務(wù)可以是L3VPN轉(zhuǎn)發(fā)業(yè)務(wù),L2VPN轉(zhuǎn)發(fā)業(yè)務(wù),VPLS, MPLS轉(zhuǎn)發(fā)業(yè)務(wù),IP轉(zhuǎn)發(fā)業(yè)務(wù)或者二層交換業(yè)務(wù)。
[0076]所述微引擎是處理器。所述處理器能執(zhí)行微碼。所述處理器可以通過ASIC或者FPGA實現(xiàn)。
[0077]舉例來說,所述微引擎可以通過所述NP中的所述多個core中的一個core實現(xiàn)。
[0078]所述PC是寄存器。舉例來說,所述裝置可以包括跳轉(zhuǎn)指令。所述跳轉(zhuǎn)指令的操作數(shù)可以是所述PC的值。所述裝置可以通過執(zhí)行所述跳轉(zhuǎn)指令將所述轉(zhuǎn)發(fā)表中的所述PC的值寫入到所述PC中。所述微引擎可以根據(jù)所述PC中的所述PC的值所述第一版本的微碼在所述微弓I擎的指令空間中的地址。
[0079]優(yōu)選地,所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面生成包含程序計數(shù)器PC的所述業(yè)務(wù)的接口表。具體包括:配置一映射表。所述映射表中包括所述業(yè)務(wù)的接口表的標識信息以及對應(yīng)的PC的值。所述PC的值為所述業(yè)務(wù)對應(yīng)的第一版本微碼在所述微引擎的指令空間中的地址。或者,在所述業(yè)務(wù)的接口表中設(shè)置一PC字段。在所述接口表中的所有或部分表項的PC字段中設(shè)置PC的值。所述PC的值等于所述業(yè)務(wù)對應(yīng)的第一版本微碼在所述微弓I擎的指令空間中的地址。
[0080]優(yōu)選地,在步驟21之前還可包括:所述控制平面確定所述業(yè)務(wù)的配置信息對應(yīng)所述第一版本的微碼。
[0081]優(yōu)選地,所述確定所述業(yè)務(wù)的配置信息對應(yīng)所述第一版本的微碼的步驟具體可以包括:所述裝置的控制平面確定所述業(yè)務(wù)配置信息對應(yīng)的業(yè)務(wù)。所述裝置的控制平面確定所述代碼是用于執(zhí)行所述業(yè)務(wù)的計算機程序。
[0082]舉例來說,所述業(yè)務(wù)可以通過所述裝置的接口執(zhí)行。例如,所述業(yè)務(wù)配置信息可以描述:為所述接口使能所述業(yè)務(wù)。所述接口可以是物理接口,也可以是邏輯接口。例如,所述邏輯接口可以是匯聚接口或者虛擬局域網(wǎng)接口。
[0083]舉例來說,所述業(yè)務(wù)配置信息可以通過telnet生成。所述業(yè)務(wù)配置信息也可以是網(wǎng)管生成的。
[0084]舉例來說,在所述裝置是開放流交換機的場景中,所述業(yè)務(wù)配置信息可以是開放流控制器生成的。所述開放流控制器可以通過控制通道(英文:control channel)向所述開放流交換機發(fā)送所述業(yè)務(wù)配置信息。
[0085]優(yōu)選地,圖2所示的方法還可以圖3所示的方法。圖3所示的方法包括:[0086]S24:所述裝置的控制平面獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼。
[0087]S25:所述裝置的控制平面將所述第二版本的微碼加載到所述微引擎的指令空間。
[0088]S26:所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微引擎的指令空間中的地址。
[0089]通過該優(yōu)選方案可實現(xiàn)微碼版本升級的操作。
[0090]優(yōu)選地,S26中所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,還可以包括:刪除所述微引擎的指令空間中的所述第一版本的微碼。通過該優(yōu)選方案可在微碼版本升級后,刪除舊版本的微碼,以節(jié)省指令空間的占用。
[0091]優(yōu)選地,S23a中所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,還包括:所述轉(zhuǎn)發(fā)平面根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址,并根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0092]具體來說,所述微引擎根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址,并根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
[0093]優(yōu)選地,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
[0094]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器,使得通過該計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令可實現(xiàn)流程圖中的一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0095]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0096]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖的一個流程或多個流程和/或方框圖的一個方框或多個方框中指定的功能的步驟。
[0097]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0098]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種加載微碼的裝置,其特征在于,包括:控制平面和轉(zhuǎn)發(fā)平面; 所述控制平面,用于獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼,將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面的微引擎的指令空間;以及,指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含程序計數(shù)器PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址; 所述轉(zhuǎn)發(fā)平面,用于根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。
2.如權(quán)利要求1所述的裝置,其特征在于,所述控制平面還用于: 獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼; 將所述第二版本的微碼加載到所述微引擎的指令空間; 指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微引擎的指令空間中的地址。
3.如權(quán)利要求2所述的裝置,其特征在于,所述控制平面還用于: 在指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,刪除所述微引擎的指令空間中的所述第一版本的微碼。
4.如權(quán)利要求1至3中任一所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)平面還用于: 在根據(jù)所述控制平面指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址; 根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
5.如權(quán)利要求1至4中任一項所述的裝置,其特征在于,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
6.一種加載微碼的方法,其特征在于,包括: 加載微碼的裝置的控制平面獲取用于執(zhí)行業(yè)務(wù)的第一版本的微碼; 所述裝置的控制平面將所述第一版本的微碼加載到位于所述裝置的轉(zhuǎn)發(fā)平面的微引擎的指令空間; 所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表中包含程序計數(shù)器PC的值,所述PC的值為所述第一版本的微碼在所述微引擎的指令空間中的地址; 所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表。
7.如權(quán)利要求6所述的方法,其特征在于,還包括: 所述裝置的控制平面獲取用于執(zhí)行所述業(yè)務(wù)的第二版本的微碼; 所述裝置的控制平面將所述第二版本的微碼加載到所述微引擎的指令空間; 所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表,所述新的轉(zhuǎn)發(fā)表中包含更新后的PC的值,所述更新后的PC的值為所述第二版本的微碼在所述微引擎的指令空間中的地址。
8.如權(quán)利要求7所述的方法,其特征在于,所述裝置的控制平面指示所述裝置的轉(zhuǎn)發(fā)平面將所述轉(zhuǎn)發(fā)表更新為所述業(yè)務(wù)的新的轉(zhuǎn)發(fā)表之后,還包括: 刪除所述微引擎的指令空間中的所述第一版本的微碼。
9.如權(quán)利要求6至8中任一所述的方法,其特征在于,所述裝置的轉(zhuǎn)發(fā)平面根據(jù)所述控制平面的指示生成所述業(yè)務(wù)的轉(zhuǎn)發(fā)表之后,所述方法還包括: 所述轉(zhuǎn)發(fā)平面根據(jù)所述轉(zhuǎn)發(fā)表中的所述PC的值確定所述第一版本的微碼的地址; 所述轉(zhuǎn)發(fā)平面根據(jù)所述第一版本的微碼的地址執(zhí)行所述第一版本的微碼。
10.如權(quán)利要求6至9中任一項所述的方法,其特征在于,所述業(yè)務(wù)的轉(zhuǎn)發(fā)表包括所述業(yè)務(wù)的接口表,所述業(yè)務(wù)的接口表中包含用于承載所述PC的值的字段。
【文檔編號】H04L12/741GK103986660SQ201410240138
【公開日】2014年8月13日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
【發(fā)明者】龔鈞 申請人:華為技術(shù)有限公司