專利名稱:一種網(wǎng)絡(luò)處理器微引擎活性檢測的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器領(lǐng)域,更具體的說,涉及一種網(wǎng)絡(luò)處理器中微引擎活性測的方法。
技術(shù)背景由于話音、圖像以及多々某體業(yè)務(wù)在Internet中的出現(xiàn)和廣泛應(yīng)用, Internet的業(yè)務(wù)量正以指數(shù)級的速率增長,飛速增長的Internet業(yè)務(wù)量 對已有的網(wǎng)絡(luò)帶寬提出了新的要求。為了滿足這些新要求,各大網(wǎng)絡(luò) 設(shè)備提供商紛紛對千兆/萬兆(1G/10G)級別以上的網(wǎng)絡(luò)設(shè)備進行研 發(fā)投入并迅速搶占市場。但由于網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)設(shè)備的生命周 期卻越來越短,導致頻繁更新已有設(shè)備的壓力越來越大,為改變傳統(tǒng) 網(wǎng)格設(shè)備的頻繁更新,網(wǎng)絡(luò)處理器登上歷史舞臺。網(wǎng)絡(luò)處理器(NP, Network Processor)結(jié)合了 ASIC (Applicaion Specific Integerated Circuit,專用集成電路)和通用CPU的優(yōu)勢,具有 較高的性能,能夠保證線速的業(yè)務(wù)處理能力。通過編程可以支持多種 應(yīng)用,擴展了設(shè)備的使用范圍,而且可滿足網(wǎng)絡(luò)協(xié)議不斷變化的需求, 延長了設(shè)備的生命周期。網(wǎng)絡(luò)處理器開發(fā)周期短,開發(fā)成本低,用 戶可以利用軟件編譯平臺迅速開發(fā)新的應(yīng)用。網(wǎng)絡(luò)處理器一般由若干個微處理器引擎(微引擎)組成,同時內(nèi) 嵌CPU或預留與通用CPU的標準接口。網(wǎng)絡(luò)處理器常見的應(yīng)用模式 是在內(nèi)嵌的CPU或外掛的CPU上運行操作系統(tǒng)作為控制面和管理面,而微引擎通過運行專用的匯編指令(微碼)并行完成分組的處理。由于CPU上運行操作系統(tǒng),因此在運行過程中如果出現(xiàn)異常,則操作系統(tǒng)崩潰并拋出異常,從而使用網(wǎng)絡(luò)處理器的設(shè)備不能正常工作。
但是微引擎是并行處理,如果部分微引擎出現(xiàn)異常,則只影響一部分 分組處理并且可以通過單獨復位出現(xiàn)異常的微引擎使其重新正常工 作。由于微引擎上運行專用匯編指令,因此出現(xiàn)異常時不容易發(fā)現(xiàn), 因此需要尋找一種方法能夠自動檢測網(wǎng)絡(luò)處理器中微引擎的活性,即 微引擎是否正常工作。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是,提供一種網(wǎng)絡(luò)處理器中微引擎活性檢 測的方法,以解決網(wǎng)絡(luò)處理器中微引擎異常時不能及時發(fā)現(xiàn)而影響部 分分組處理的問題。
鑒于上述問題,本發(fā)明所述的一種網(wǎng)絡(luò)處理器中微引擎活性檢測的方法包括以下步驟A處理器創(chuàng)建活性檢測任務(wù),所述活性檢測任務(wù)為各個微引擎分 配fb提區(qū);B微引擎中設(shè)置計數(shù)器,該計數(shù)器的計數(shù)值存放在數(shù)據(jù)區(qū)中,計 數(shù)器的計數(shù)值根據(jù)微引擎運行的次數(shù)相應(yīng)增加;C網(wǎng)絡(luò)處理器運行后,活性檢測任務(wù)定時掃描各個數(shù)據(jù)區(qū),將掃 描數(shù)據(jù)區(qū)獲得的計數(shù)值與上次掃描獲得的計數(shù)值比較,若比較結(jié)果相 同,則認為微引擎異常,通過設(shè)置相應(yīng)的硬件寄存器復位異常微引擎。
上述的方法,其中,步驟A中,活性檢測任務(wù)運行后,為各個 微引擎在微引擎和處理器共同使用的內(nèi)存中分配用來存放計數(shù)值的 數(shù)據(jù)區(qū);并針對各個微引擎設(shè)置次數(shù)計數(shù)器,所述次數(shù)計數(shù)器用于記 錄比較結(jié)果相同的次數(shù)。
上述的方法,其中,步驟C中,將掃描數(shù)據(jù)區(qū)獲得的計數(shù)值與上 次掃描獲得的計數(shù)值做差值,若各差值為零,對差值為零的微引擎的 次數(shù)計數(shù)器進行加l操作,判斷次數(shù)計數(shù)器是否大于設(shè)定數(shù)值,若大 于,清除該微引擎對應(yīng)的次數(shù)計數(shù)器和數(shù)據(jù)區(qū)。 上述的方法,其中,活性;險測任務(wù)設(shè)置活性;險測定時器,在活性 檢測定時器超時后活性檢測任務(wù)掃描各微引擎的數(shù)據(jù)區(qū)。本發(fā)明利用微引擎運行的微碼中增加計數(shù)操作后只要微引擎正 常工作,計數(shù)值就會增加的原理來檢測微引擎是否正常工作。由于微 碼中只增加一條計數(shù)指令,因此對微引擎處理性能沒有任何影響。由 于CPU上活性檢測任務(wù)是定時掃描,因此對CPU性能也沒有影響。 但是采用該方法可以自動檢測出微引擎出現(xiàn)異常并可以自動復位出 現(xiàn)異常的微引擎而使其重新工作。因此采用本發(fā)明的網(wǎng)絡(luò)處理器的設(shè) 備在發(fā)生非致命性異常時可以自動復位而繼續(xù)使用,這樣可以大大縮 短設(shè)備宕機恢復時間,減少對用戶的影響和用戶的投訴,提高用戶對 產(chǎn)品的滿意度。由于能自動檢測出微引擎異常并自動復位,因此可以 省去人工監(jiān)控而大大節(jié)省設(shè)備的維護費用,具有4艮好的經(jīng)濟性。
圖l是本發(fā)明應(yīng)用的網(wǎng)絡(luò)處理器示意圖;圖2是本發(fā)明提供的一種網(wǎng)絡(luò)處理器微引擎活性檢測的方法;圖3是本發(fā)明中活性檢測任務(wù)處理流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式
進一步說明。 圖l是本發(fā)明應(yīng)用的網(wǎng)絡(luò)處理器示意圖;網(wǎng)絡(luò)處理器包括處CPU和微引擎,CPU上運行活性檢測任務(wù) 101,活性檢測任務(wù)101根據(jù)微引擎?zhèn)€數(shù)為各微引擎初始化用于存放 計數(shù)值的數(shù)據(jù)區(qū)102,在微引擎運行的微碼103中設(shè)置一個計數(shù)器, 微引擎運行后計數(shù)器的計數(shù)值不斷增加。圖2是本發(fā)明提供的一種網(wǎng)絡(luò)處理器微引擎活性檢測的方法,包 括以下步驟
201、 CPU運行時創(chuàng)建活性;險測任務(wù)。
202、 活性檢測任務(wù)運行后根據(jù)網(wǎng)絡(luò)處理器中微引擎?zhèn)€數(shù)為各微 引擎初始化用于存放計數(shù)值的數(shù)據(jù)區(qū),然后等待微引擎上電。
203、 在微引擎運行的微碼的開始處增加計數(shù)操作指令,計數(shù)值 存放在活性檢測任務(wù)為其初始化的數(shù)據(jù)區(qū)中。
204、 微引擎開始上電運行后,數(shù)據(jù)區(qū)中計數(shù)值不斷增加。
205、 活性檢測任務(wù)檢測到微引擎上電后,設(shè)置活性檢測定時器, 定時器超時后開始掃描各數(shù)據(jù)區(qū)。
206、 活性檢測任務(wù)取出數(shù)據(jù)區(qū)中計數(shù)值,與上次讀取數(shù)據(jù)區(qū)獲 得的計數(shù)值做差。如果連續(xù)幾次(一般:f又3次)差值為0,則說明該 數(shù)據(jù)區(qū)對應(yīng)的微引擎出現(xiàn)異常,否則微引擎工作正常。
207、 活性檢測任務(wù)檢測到微引擎異常后設(shè)置該微引擎對應(yīng)的硬 件寄存器,復位出現(xiàn)異常的微引擎。
上述具體實施方式
中,CPU上活性檢測任務(wù)的具體處理流程如 圖3所示
步驟301,活性檢測任務(wù)運行后根據(jù)微引擎的個數(shù)在微引擎和 CPU都可以操作的內(nèi)存中為各微引擎分配用來存放計數(shù)值的數(shù)據(jù)區(qū), 大小為4字節(jié);
步驟302,活性檢測任務(wù)等待微引擎上電;
步驟303,微引擎是否上電成功,如果有微引擎沒有上電成功, 則轉(zhuǎn)步驟302繼續(xù)等待,否則轉(zhuǎn)步驟304;
步驟304,活性檢測任務(wù)設(shè)置活性檢測定時器,并針對各微引擎 初始化次數(shù)計數(shù)器和上次計數(shù)值,有多少微引擎就有多少次數(shù)計數(shù)器 和上次計數(shù)值;
步驟305,判斷活性4企測定時器是否超時,如果定時器沒有超時, 則繼續(xù)等待,否則轉(zhuǎn)步驟306;
步驟306,活性檢測定時器超時后活性檢測任務(wù)掃描各微引擎的 計數(shù)數(shù)據(jù)區(qū),取出各數(shù)據(jù)區(qū)的數(shù)值;
步驟307,將該次讀取的計數(shù)值與上次讀取的計數(shù)值做差值;
步驟308,判斷各差值是否為零,如果差值都不等于0,則轉(zhuǎn)步 驟312,否則轉(zhuǎn)步驟309;
步驟309,對差值等于0的微引擎的次數(shù)計數(shù)器進行加1操作, 然后轉(zhuǎn)步驟310;
步驟310,判斷次數(shù)計數(shù)器是否大于某個規(guī)定數(shù)值(比如3次), 如果都不大于規(guī)定數(shù)值,則轉(zhuǎn)步驟312,否則轉(zhuǎn)步驟311;
步驟311 ,清除該微引擎對應(yīng)的次數(shù)計數(shù)器和存放計數(shù)的數(shù)據(jù)區(qū), 上次計數(shù)值賦零,設(shè)置硬件寄存器復位微引擎,然后轉(zhuǎn)到步驟305繼 續(xù)進行活性檢測;
步驟312:將本次讀取的計數(shù)值賦給上次計數(shù)值,然后轉(zhuǎn)到步驟 305繼續(xù)進行活性檢測;
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明, 對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本 發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng) 包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種網(wǎng)絡(luò)處理器微引擎活性檢測的方法,所述網(wǎng)絡(luò)處理器包括多個微引擎與處理器,其特征在于,所述方法包括A處理器創(chuàng)建活性檢測任務(wù),所述活性檢測任務(wù)為各個微引擎分配數(shù)據(jù)區(qū);B微引擎中設(shè)置計數(shù)器,該計數(shù)器的計數(shù)值存放在數(shù)據(jù)區(qū)中,計數(shù)器的計數(shù)值根據(jù)微引擎運行的次數(shù)相應(yīng)增加;C網(wǎng)絡(luò)處理器運行后,活性檢測任務(wù)定時掃描各個數(shù)據(jù)區(qū),將掃描數(shù)據(jù)區(qū)獲得的計數(shù)值與上次掃描獲得的計數(shù)值比較,若比較結(jié)果相同,則認為微引擎異常,通過設(shè)置相應(yīng)的硬件寄存器復位異常微引擎。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中,活性 檢測任務(wù)運行后,為各個微引擎在微引擎和處理器共同使用的內(nèi)存中 分配用來存放計數(shù)值的數(shù)據(jù)區(qū)。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟A中,活性 檢測任務(wù)運行后,針對各個微引擎設(shè)置次數(shù)計數(shù)器,所述次數(shù)計數(shù)器 用于記錄比較結(jié)果相同的次數(shù)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟C中,將掃 描數(shù)據(jù)區(qū)獲得的計數(shù)值與上次掃描獲得的計數(shù)值做差值,若各差值為 零,對差值為零的微引擎的次數(shù)計數(shù)器進行加l操作,判斷次數(shù)計數(shù) 器是否大于設(shè)定數(shù)值,若大于,清除該微引擎對應(yīng)的次數(shù)計數(shù)莽和數(shù) 據(jù)區(qū)。
5、 根據(jù)權(quán)利要求3所述的方法,其特征在于,活性檢測任務(wù)設(shè) 置活性檢測定時器,在活性檢測定時器超時后活性檢測任務(wù)掃描各微 引擎的數(shù)據(jù)區(qū)。
全文摘要
本發(fā)明旨在提供一種網(wǎng)絡(luò)處理器中微引擎活性檢測的方法,該方法包括以下步驟處理器創(chuàng)建活性檢測任務(wù),活性檢測任務(wù)為各個微引擎分配數(shù)據(jù)區(qū);微引擎中設(shè)置計數(shù)器,該計數(shù)器的計數(shù)值存放在數(shù)據(jù)區(qū)中,計數(shù)器的計數(shù)值根據(jù)微引擎運行的次數(shù)相應(yīng)增加;網(wǎng)絡(luò)處理器運行后,活性檢測任務(wù)定時掃描各個數(shù)據(jù)區(qū),將掃描數(shù)據(jù)區(qū)獲得的計數(shù)值與上次掃描獲得的計數(shù)值比較,若比較結(jié)果相同,則認為微引擎異常,通過設(shè)置相應(yīng)的硬件寄存器復位異常微引擎。采用本發(fā)明的方法可以更好地提高網(wǎng)絡(luò)處理器的應(yīng)用性能。
文檔編號H04L12/02GK101126997SQ20071016236
公開日2008年2月20日 申請日期2007年9月26日 優(yōu)先權(quán)日2007年9月26日
發(fā)明者超 范, 郭樹波 申請人:中興通訊股份有限公司