亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

檢測(cè)微引擎故障的方法及裝置的制作方法

文檔序號(hào):7695017閱讀:234來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):檢測(cè)微引擎故障的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種檢測(cè)微引擎故障的方法及裝置。
背景技術(shù)
互聯(lián)網(wǎng)交換處理器(Internet eXchange Processor,簡(jiǎn)稱(chēng)IXP)是指實(shí)現(xiàn) 了互聯(lián)網(wǎng)交換架構(gòu)(Internet eXchange Archi tecture,簡(jiǎn)稱(chēng)IXA )的網(wǎng)絡(luò)處 理芯片,IXP網(wǎng)絡(luò)處理器典型地包括一個(gè)Xscale核、多個(gè)^i:引擎(Micro Engine,簡(jiǎn)稱(chēng)微引擎)、存儲(chǔ)器、若千硬件功能單元、各種與外部連接的接 口、內(nèi)部總線等。微引擎是網(wǎng)絡(luò)處理器的核心部件,也是網(wǎng)絡(luò)處理器取得線 速處理性能的關(guān)鍵,在其它功能單元的支持下執(zhí)行快路徑上的包處理,是一 種包處理器。例如,英特爾(Intel)推出的多種IXP網(wǎng)絡(luò)處理芯片都包含多 個(gè)微引擎(IXP2400包含8個(gè),IXP28X0包含16個(gè))。微引擎是一種只提供少量 基本指令的低級(jí)設(shè)備,微引擎構(gòu)成了快路徑處理的基礎(chǔ),主要用來(lái)處理I/0 設(shè)備與存儲(chǔ)器之間的低層數(shù)據(jù)傳輸以及基本包處理任務(wù)。 微引擎通常具有如下用途
*從物理層硬件接收包
校驗(yàn)和檢查
*包頭處理和分類(lèi)
*包緩存
*查表和轉(zhuǎn)發(fā)
* 包頭^奮改
*校驗(yàn)和計(jì)算
*從物理層硬件發(fā)送包
6微引擎硬件提供一種機(jī)制來(lái)改善性能,即支持多個(gè)執(zhí)行線程或上下 文。每個(gè)微引擎有多達(dá)8個(gè)線程,更重要的是,由于硬件為每一個(gè)線程維 護(hù)不同的狀態(tài)信息(如一個(gè)程序計(jì)數(shù)器和一組信號(hào)事件,該程序計(jì)數(shù)器可 以反映當(dāng)前線程是否處于工作狀態(tài)),硬件可以在線程之間迅速切換而不 需要軟件的支持。因此,和傳統(tǒng)中央處理單元不同,微引擎的上下文切換 為零開(kāi)銷(xiāo)或只要求最多 一個(gè)時(shí)鐘周期的開(kāi)銷(xiāo)。
從概念上說(shuō),微引擎線程就像傳統(tǒng)操作系統(tǒng)中的線程一樣操作,即多 個(gè)線程同時(shí)處于就緒狀態(tài), 一旦當(dāng)前線程阻塞或自愿放棄處理器, 一個(gè)新 的線程馬上開(kāi)始運(yùn)行。尤其是,存儲(chǔ)器訪問(wèn)可能導(dǎo)致線程阻塞,當(dāng)一個(gè)線 程等待訪問(wèn)內(nèi)存時(shí),微引擎執(zhí)行另一個(gè)線程。例如,在某一時(shí)刻,微引擎 遇到一個(gè)操作導(dǎo)致線程1阻塞。這時(shí)發(fā)生一個(gè)上下文切換,網(wǎng)絡(luò)處理器轉(zhuǎn)
而執(zhí)行一個(gè)當(dāng)前就緒的線程一線程2。線程2執(zhí)行到另一時(shí)刻時(shí),處理器 遇到一個(gè)操作導(dǎo)致線程2阻塞。這時(shí)只有線程3就緒,于是網(wǎng)絡(luò)處理器執(zhí) 行線程3
線程的優(yōu)點(diǎn)是很清楚的,處理器不需要停下來(lái)等待存儲(chǔ)器訪問(wèn)或1/0, 可以繼續(xù)執(zhí)行有用的工作。對(duì)于數(shù)據(jù)包處理來(lái)說(shuō),每個(gè)硬件線程可以被分 配處理一個(gè)包。當(dāng)處理一個(gè)包的線程等待從內(nèi)存讀數(shù)據(jù)時(shí)(如從包頭中讀 一個(gè)域),處理另一個(gè)包的線程可以繼續(xù)執(zhí)行。因此,盡管只有一個(gè)中央 處理單元,微引擎可以同時(shí)處理8個(gè)數(shù)據(jù)包而不會(huì)有長(zhǎng)時(shí)間的空閑。
每個(gè)線程有以下四種狀態(tài),
(1) 未激活狀態(tài)(inactive):處于該狀態(tài)的線程不執(zhí)行任何操作。 在有些應(yīng)用中,當(dāng)處理任務(wù)比較簡(jiǎn)單不需要微引擎中的全部8個(gè)線程進(jìn)行 工作時(shí),可將部分線程設(shè)置為未激活狀態(tài)。
(2) 執(zhí)行狀態(tài)(executing):處于該狀態(tài)的線程執(zhí)行控制存儲(chǔ)器中 的程序。同一時(shí)刻, 一個(gè)微引擎內(nèi)部最多只能有一個(gè)線程處于該狀態(tài)。在 IXP2XXX中,線程切換完全是在軟件控制下進(jìn)行的,僅當(dāng)處于執(zhí)行狀態(tài)的線程執(zhí)行一條線程交換指令,轉(zhuǎn)入休眠狀態(tài),主動(dòng)交出微引擎控制權(quán)之后, 另 一 個(gè)處于就緒狀態(tài)的線程才能取得微引擎的控制權(quán),轉(zhuǎn)入執(zhí)行狀態(tài)。
(3) 就緒狀態(tài)(ready):處于該狀態(tài)的線程已經(jīng)具備繼續(xù)執(zhí)行數(shù)據(jù) 處理任務(wù)的所有外部條件,等待獲得微引擎的控制權(quán)。當(dāng)處于執(zhí)行狀態(tài)的 線程交出微引擎控制權(quán)后,微引擎對(duì)當(dāng)前處于就緒狀態(tài)的所有線程進(jìn)行仲 裁判優(yōu),然后將微引擎控制權(quán)交給優(yōu)先級(jí)最高的線程。
(4) 休眠狀態(tài)(sleep):處于該狀態(tài)的線程等待某個(gè)外部事件的到來(lái)。
IXP2XXX芯片中沒(méi)有硬件同步協(xié)調(diào)機(jī)制,而是采用一種稱(chēng)為事件信號(hào) (event signal)的軟件機(jī)制來(lái)同步微引擎內(nèi)部線程的操作與外部事件的 完成。比如,當(dāng)微引擎內(nèi)部的線程O(píng)發(fā)送指令讀取靜態(tài)存儲(chǔ)器中的數(shù)據(jù)時(shí), 在靜態(tài)存儲(chǔ)器控制器將數(shù)據(jù)寫(xiě)入指令規(guī)定的傳輸寄存器之前,線程Q不能 使用該傳輸寄存器中的數(shù)據(jù);當(dāng)數(shù)據(jù)讀取操作完成后,靜態(tài)存儲(chǔ)器控制器 向線程Q發(fā)送指令規(guī)定的事件信號(hào);線程Q收到事件信號(hào)后,讀取傳輸寄 存器中的數(shù)據(jù)進(jìn)行處理。
可以在指令中指定事件信號(hào),令從屬單元在完成指令規(guī)定的數(shù)據(jù)讀/ 寫(xiě)操作后向微引擎發(fā)送該事件信號(hào),以此來(lái)同步微引擎的內(nèi)部操作與外部 事件的完成。微引擎中的每個(gè)線程可以使用15個(gè)事件信號(hào),這些事件信 號(hào)可以將線程從休眠狀態(tài)喚醒,轉(zhuǎn)入就緒狀態(tài)。每個(gè)線程有2個(gè)本地寄存 器,分別用于記錄需要等待的事件信號(hào)和已經(jīng)到來(lái)的事件信號(hào)。事件信號(hào) 的產(chǎn)生方式包括數(shù)據(jù)被寫(xiě)入或讀出傳輸寄存器、線程寫(xiě)特定的信號(hào)CSR、 內(nèi)部定時(shí)器觸發(fā)。
當(dāng)線程執(zhí)行線程交換指令后,線程由執(zhí)行狀態(tài)轉(zhuǎn)入休眠狀態(tài);當(dāng)指令 的事件信號(hào)到來(lái)后,線程又由休眠狀態(tài)轉(zhuǎn)為就緒狀態(tài)。
網(wǎng)絡(luò)處理器芯片作為高性能網(wǎng)絡(luò)處理器,因其靈活的可編程性、架構(gòu)合 理、資源豐富、轉(zhuǎn)發(fā)能力強(qiáng)等諸多優(yōu)點(diǎn),廣泛應(yīng)用于各種通訊設(shè)備,其中很多是接入路由器、核心路由器、基站等電信級(jí)設(shè)備。作為電信級(jí)設(shè)備, 一個(gè) 重要的指標(biāo)就是高可靠性,許多電信運(yùn)營(yíng)商提出設(shè)備可靠性要達(dá)到
99.99999%,即一年內(nèi)設(shè)備出故障的時(shí)間總和不能超過(guò)5分鐘。另外,高可靠 性也是電信設(shè)備供應(yīng)商追求的目標(biāo)。以接入路由器為例,往往同時(shí)接入數(shù)萬(wàn) 用戶(hù), 一旦出故障將對(duì)用戶(hù)產(chǎn)生重大影響。但任何一款芯片都有出現(xiàn)故障可 能,若沒(méi)有芯片故障檢測(cè)、規(guī)避措施,由芯片故障引起的業(yè)務(wù)中斷時(shí)間將不 可預(yù)料,因此芯片故障快速檢測(cè)、規(guī)避功能對(duì)于電信設(shè)備來(lái)說(shuō)至關(guān)重要。
發(fā)明人在研究中發(fā)現(xiàn),互聯(lián)網(wǎng)交換處理器芯片的失效方式大多為微引擎故 障,所以如何快速地檢測(cè)到微引擎故障,是實(shí)現(xiàn)芯片故障快速檢測(cè)的關(guān)鍵。

發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,提供一種檢測(cè)微引擎故障的方法及裝
置,能及時(shí)檢測(cè)出網(wǎng)絡(luò)處理芯片中微引擎的故障,從而提高網(wǎng)絡(luò)處理芯片的
故障檢測(cè)能力,縮短由芯片故障^ 1起的業(yè)務(wù)中斷時(shí)間。
本發(fā)明實(shí)施例提供了 一種檢測(cè)微引擎故障的方法,包括 在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以
及微引擎的每個(gè)線程的事件信號(hào)的值;
比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的
每個(gè)線程的事件信號(hào)的值是否均相等;
如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。
本發(fā)明實(shí)施例還提供了 一種檢測(cè)微引擎故障的方法,包括
在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)
器的值之和;
比較連續(xù)至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)器的值 之和是否均相等;
如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。本發(fā)明實(shí)施例還提供了 一種檢測(cè)微引擎故障的方法,包括
在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值; 比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值是否均相等; 如果相等,則確定該網(wǎng)絡(luò)處理芯片的微引擎出現(xiàn)故障。 本發(fā)明實(shí)施例還提供了 一種檢測(cè)微引擎故障的裝置,包括 第一參數(shù)獲取單元,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)
線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值;
第 一比較單元,用于比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)
器的值以及微引擎的每個(gè)線程的事件信號(hào)的值是否均相等;
第一故障確定單元,根據(jù)所述第一比較單元的比較結(jié)果確定微引擎是否
出現(xiàn)故障。
本發(fā)明實(shí)施例還提供了 一種檢測(cè)微引擎故障的裝置,包括 第二參數(shù)獲取單元,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組 中的所有線程的線程計(jì)數(shù)器的值之和;
第二比較單元,用于比較至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的
線程計(jì)數(shù)器的值之和是否均相等;
第二故障確定單元,用于根據(jù)所述第二比較單元的比較結(jié)果確定網(wǎng)絡(luò)處 理芯片中是否有微引擎發(fā)生故障。
本發(fā)明實(shí)施例還提供了 一種檢測(cè)微引擎故障的裝置,包括
第四參數(shù)獲取單元,用于在每至少 一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè) 線程的線程計(jì)數(shù)器的值;
第四比較單元,用于比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù) 器的值是否均相等;
第三故障確定單元,用于根據(jù)所述第四比較單元的比較結(jié)果確定網(wǎng)絡(luò)處 理芯片中是否有微引擎出現(xiàn)故障。
本發(fā)明實(shí)施例通過(guò)定時(shí)獲取網(wǎng)絡(luò)處理芯片中微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值,并比較至少兩次獲取的這 些參數(shù)的值是否均相等,根據(jù)比較結(jié)果可以確定微引擎是否出現(xiàn)故障,通過(guò) 將出現(xiàn)故障的微引擎用冗余微引擎代替可以迅速恢復(fù)網(wǎng)絡(luò)處理芯片的故障, 能夠及時(shí)發(fā)現(xiàn)并恢復(fù)網(wǎng)絡(luò)處理芯片故障,從而縮短由芯片故障引起的業(yè)務(wù)中
斷時(shí)間。
下面通過(guò)具體實(shí)施例并結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。


圖1所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例一流程圖; 圖2所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例二流程圖; 圖3所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例三流程圖; 圖4所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例四流程圖; 圖5所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例五流程圖; 圖6所示為本發(fā)明檢測(cè)微引擎故障的裝置實(shí)施例一結(jié)構(gòu)示意圖; 圖7所示為本發(fā)明檢測(cè)微引擎故障的裝置實(shí)施例二結(jié)構(gòu)示意圖; 圖8所示為本發(fā)明檢測(cè)微引擎故障的裝置實(shí)施例三結(jié)構(gòu)示意圖; 圖9所示為本發(fā)明檢測(cè)微引擎故障的裝置實(shí)施例四結(jié)構(gòu)示意圖; 圖10所示為本發(fā)明檢測(cè)微? 1擎故障的裝置實(shí)施例五結(jié)構(gòu)示意圖。
具體實(shí)施例方式
網(wǎng)絡(luò)處理芯片通常包含多個(gè)微引擎,這類(lèi)芯片出現(xiàn)故障大多數(shù)情況是由 于微引擎出現(xiàn)故障引起的。實(shí)際應(yīng)用中,多個(gè)微引擎的功能可以根據(jù)具體需 要進(jìn)行設(shè)定,例如可以設(shè)定幾個(gè)微引擎同時(shí)完成網(wǎng)絡(luò)中第二層(數(shù)據(jù)鏈路層) 和第三層(網(wǎng)絡(luò)層)之間的數(shù)據(jù)轉(zhuǎn)發(fā),這幾個(gè)微引擎組成一個(gè)轉(zhuǎn)發(fā)微引擎組, 各微引擎之間有數(shù)據(jù)傳輸;也可以設(shè)定某一微引擎只完成一個(gè)功能,與其余
微引擎之間沒(méi)有數(shù)據(jù)傳輸。其余沒(méi)有設(shè)定具體執(zhí)行功能的微引擎,就屬于冗余微引擎。由于網(wǎng)絡(luò)處理芯片中可以有冗余微引擎,這樣當(dāng)某一被設(shè)定了具 體執(zhí)行功能的微引擎出現(xiàn)故障時(shí),就可以將該微引擎隔離,用冗余微引擎中 的 一個(gè)代替該故障微引擎,從而使該芯片恢復(fù)正常工作。
對(duì)于某些微引擎被設(shè)定為 一個(gè)微引擎完成一個(gè)功能,該微引擎與其余 微引擎之間沒(méi)有數(shù)據(jù)傳輸,并且該微引擎的各線程之間有事件信號(hào)傳輸?shù)那?況,可以采用如實(shí)施例一所述的方法檢測(cè)出現(xiàn)故障的微引擎。如圖1所示為 本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例一流程圖,包括
框圖101、在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì) 數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值。
框圖102、比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以 及微引擎的每個(gè)線程的事件信號(hào)的值是否均相等;如果相等,則確定該網(wǎng)絡(luò) 處理芯片的微引擎出現(xiàn)故障。
其中,線程計(jì)數(shù)器(ACTIVE—CNT)(也叫看門(mén)狗計(jì)數(shù)器),是為每一微 引擎的每一線程添加的一通過(guò)代碼實(shí)現(xiàn)的計(jì)數(shù)器,該線程計(jì)數(shù)器用于檢測(cè)該 線程是否處于工作狀態(tài)。如果該線程計(jì)數(shù)器(ACTIVE—CNT)的值有變化,說(shuō) 明目前該線程處于工作狀態(tài),如果該線程計(jì)數(shù)器的值長(zhǎng)時(shí)間不變化,例如, 在連續(xù)兩次數(shù)據(jù)獲取周期內(nèi)都沒(méi)有變化,則說(shuō)明該線程工作出現(xiàn)故障。
指針,即微引擎的通用狀態(tài)寄存器(Control and Status Registers, 簡(jiǎn)稱(chēng)CSR ) INDIRECT-CTX _STS的值,各線程的指針表示每個(gè)線程的程序當(dāng)前 執(zhí)行的位置。
微引擎各線程的事件信號(hào)(SIGNAL),包括微引擎的通用狀態(tài)寄存器 INDIRECT—CTX—SIG—EVENTS的值和INDIRECT—CTX—WAKEUP—EVENTS的值, NDIRECT—CTX—SIG—EVENTS的值反映該微引擎的每個(gè)線程當(dāng)前擁有的事件信 號(hào),INDIRECT—CTX—WAKEUP—EVENTS的值反映該微引擎的每個(gè)線程當(dāng)前等待的 事件信號(hào)。
微引擎當(dāng)前活動(dòng)的線程號(hào)(ACTIVE_CTX),即INDIRECT_CTX _STS最低三位的值,表示微引擎當(dāng)前活動(dòng)的線程號(hào)。
通常網(wǎng)絡(luò)處理器芯片多個(gè)微引擎處理數(shù)據(jù)順序?yàn)橛韶?fù)責(zé)接收數(shù)據(jù)的微
引擎(簡(jiǎn)稱(chēng)接收微引擎)接收待處理的數(shù)據(jù),由負(fù)責(zé)處理數(shù)據(jù)的微引擎(簡(jiǎn) 稱(chēng)處理微引擎)接收從接收微引擎發(fā)送過(guò)來(lái)的數(shù)據(jù),然后處理微引擎將經(jīng)過(guò) 處理后的數(shù)據(jù)發(fā)送給發(fā)送微引擎,該發(fā)送微引擎用于發(fā)送數(shù)據(jù)。數(shù)據(jù)處理的
順序可以簡(jiǎn)單概括為接收微引擎—處理微引擎—發(fā)送微引擎。如果發(fā)送微 引擎出現(xiàn)故障,會(huì)導(dǎo)致接收微引擎和處理微引擎出現(xiàn)類(lèi)似的失效狀態(tài),這樣, 先檢測(cè)接收微引擎可能會(huì)導(dǎo)致誤判斷,即無(wú)法完成整個(gè)數(shù)據(jù)處理的流程。也 就是說(shuō),沿著數(shù)據(jù)處理順序,在后的微引擎如果出現(xiàn)故障則會(huì)導(dǎo)致在前的微 引擎出現(xiàn)類(lèi)似的失效狀態(tài)。所以,較佳地,實(shí)施例一中檢測(cè)各微引擎的順序 是與處理數(shù)據(jù)的順序相反的,例如,先檢測(cè)發(fā)送微引擎是否出現(xiàn)故障,再檢 測(cè)處理微引擎,最后檢測(cè)接收微引擎。
框圖101中,在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程 計(jì)數(shù)器(ACTIVE—CNT)的值以及微引擎的每個(gè)線程的事件信號(hào)(SIGNAL)的 值,例如該數(shù)據(jù)獲取周期可以為一秒鐘獲取一次。
在框圖101中,在每至少一個(gè)數(shù)據(jù)獲取周期還可以獲取微引擎的每個(gè)線 程的指針的值以及微引擎的當(dāng)前活動(dòng)的線程號(hào)(ACTIVE_CTX)的值。
然后比較連續(xù)至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器 (ACTIVE_CNT)的值、微引擎的每個(gè)線程的指針的值、微引擎的每個(gè)線程的 事件信號(hào)(SIGNAL)的值以及微引擎的當(dāng)前活動(dòng)的線程號(hào)(ACTIVE-CTX)的 值是否均相等,具體可以是,將第1數(shù)據(jù)獲取周期獲取的以上各值與第2數(shù) 據(jù)獲取周期獲取的以上各值相比,如果比較結(jié)果相等,則確定網(wǎng)絡(luò)處理芯片 中的微引擎出現(xiàn)故障。
也可以比較連續(xù)至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器 (ACTIVE-CNT)的值、微引擎的每個(gè)線程的指針的值、微引擎的每個(gè)線程的 事件信號(hào)(SIGNAL)的值以及微引擎的當(dāng)前活動(dòng)的線程號(hào)(ACTIVE-CTX)的值是否均相等,具體可以是,將第1數(shù)據(jù)獲取周期獲取的以上各值與第2數(shù) 據(jù)獲取周期獲取的以上各值相比,第1數(shù)據(jù)獲取周期獲取的以上各值與第3 數(shù)據(jù)獲取周期獲取的以上各值相比,如果比較結(jié)果均為相等,則確定該網(wǎng)絡(luò) 處理芯片中有微引擎出現(xiàn)故障;如果有一個(gè)比較結(jié)果為不相等,則確定網(wǎng)絡(luò) 處理芯片中沒(méi)有微引擎出現(xiàn)故障。還可以是將第l數(shù)據(jù)獲取周期獲取的以 上各值與第2數(shù)據(jù)獲取周期獲取的以上各值相比,第2數(shù)據(jù)獲取周期獲取的 以上各值與第3數(shù)據(jù)獲取周期獲取的以上各值相比,如果比較結(jié)果均為相等, 則確定該網(wǎng)絡(luò)處理芯片中有微引擎出現(xiàn)故障;如果有一個(gè)比較結(jié)果為不相等, 則確定網(wǎng)絡(luò)處理芯片中沒(méi)有微引擎出現(xiàn)故障。比較連續(xù)至少三次獲取的微引 擎的每個(gè)線程的線程計(jì)數(shù)器(ACTIVE-CNT)的值、微引擎的每個(gè)線程的指針 的值、微引擎的每個(gè)線程的事件信號(hào)(SIGNAL)的值以及微引擎的當(dāng)前活動(dòng) 的線程號(hào)(ACTIVE-CTX)的值是否均相等的方法可以有多種,最終是要判定 是否連續(xù)多次當(dāng)前獲取的以上各值均與之前的幾個(gè)(例如兩個(gè))數(shù)據(jù)獲取周 期內(nèi)獲取的以上各值相等。
對(duì)于一微引擎,其各線程之間沒(méi)有事件信號(hào)傳輸,這類(lèi)微引擎的故障檢 測(cè)可以采用實(shí)施例二所述的方法。如圖2所示為本發(fā)明檢測(cè)微引擎故障的方 法實(shí)施例二流程圖,具體包括
框圖201、在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì) 數(shù)器的值。
框圖202、比較連續(xù)至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的 值是否均相等;如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。
對(duì)于這類(lèi)各線程之間沒(méi)有事件信號(hào)傳輸?shù)奈⒁妫ㄟ^(guò)在每一數(shù)據(jù)獲取 周期獲取每個(gè)微引擎的每個(gè)線程的線程計(jì)數(shù)器(ACTIVE丄NT)的值,例如一 秒種獲取一次,比較連續(xù)至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的 值是否均相等,這樣可以及時(shí)發(fā)現(xiàn)并恢復(fù)網(wǎng)絡(luò)處理芯片的故障。
如對(duì)于某些微引擎被設(shè)定為幾個(gè)微引擎完成數(shù)據(jù)轉(zhuǎn)發(fā)的工作,這幾個(gè)微引擎組成一個(gè)轉(zhuǎn)發(fā)微引擎組的情況,可以采用如實(shí)施例三所述的方法檢測(cè) 出出現(xiàn)故障的微引擎。如圖3所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例三
流程圖,具體包括
框圖301、在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程 的線程計(jì)數(shù)器的值之和。
框圖302 、比較至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù) 器的值之和是否均相等;如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn) 故障。
對(duì)于轉(zhuǎn)發(fā)微引擎組中的各微引擎,設(shè)該轉(zhuǎn)發(fā)微引擎組中有m個(gè)微引擎, 每個(gè)微引擎有n個(gè)線程,則該轉(zhuǎn)發(fā)微引擎組中共有mxn個(gè)線程,每個(gè)線程有 一個(gè)線程計(jì)數(shù)器(ACTIVE-CNT),則該轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì) 數(shù)器(ACTIVE_CNT)的值之和即為mxn個(gè)線程計(jì)數(shù)器的值之和。在每一數(shù)據(jù) 獲取周期獲取該轉(zhuǎn)發(fā)微引擎組中所有線程的線程計(jì)數(shù)器(ACT工VE-CNT)的值 之和,例如一秒鐘獲取一次,如果連續(xù)至少兩次次獲取的轉(zhuǎn)發(fā)微引擎組中的 所有線程的線程計(jì)數(shù)器的值之和均相等則判定該轉(zhuǎn)發(fā)微引擎組中有微引擎發(fā) 生故障。
通過(guò)實(shí)施例三所述的方法可以檢測(cè)出轉(zhuǎn)發(fā)微引擎組中有微引擎發(fā)生故 障,如果要進(jìn)一步檢測(cè)出具體是哪一個(gè)微引擎發(fā)生故障,則需要用到實(shí)施例 四所述的方法。如圖4所示為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例四流程圖, 具體包括
框圖401、在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程 的線程計(jì)數(shù)器的值之和。
框圖402、比較至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù) 器的值之和是否均相等;如果相等,則執(zhí)行框圖403;如果不相等,則確定 該微引擎組中沒(méi)有微引擎出現(xiàn)故障。
框圖403、判斷該轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)是否是該微引擎組中微引擎之間傳遞的事件信號(hào);如果是,則確定該轉(zhuǎn)
發(fā)微引擎組中沒(méi)有微引擎出現(xiàn)故障;如果不是,即如果某一微引擎的某一線
程等待的事件信號(hào)不是該轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào),則執(zhí)
行框圖404。
框圖404、判斷該線程擁有的事件信號(hào)是否包含該線程等待的事件信號(hào); 如果該線程擁有的事件信號(hào)包含該線程等待的事件信號(hào),則判定該網(wǎng)絡(luò)處理 芯片沒(méi)有出現(xiàn)故障;如果該線程擁有的事件信號(hào)不包含該線程等待的事件信 號(hào),則判定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。
通過(guò)框圖401到框圖404,可以進(jìn)一步檢測(cè)出轉(zhuǎn)發(fā)微引擎組中具體是哪 一個(gè)微引擎出現(xiàn)了故障。例如,設(shè)轉(zhuǎn)發(fā)微引擎組間傳遞的事件信號(hào)為A和B, 如果某一孩i引擎的所有線程等待的事件信號(hào)都是A和/或B,則該微引擎工作 正常。如果某一微引擎的某一線程等待的事件信號(hào)不是A,也不是B,也不是 A和B,則再判定該線程擁有的事件信號(hào)中是否包含等待的事件信號(hào)。例如, 如果該線程等待的事件信號(hào)是C,但是該線程擁有的事件信號(hào)中不包含C,則 該線程所屬的微引擎發(fā)生故障,產(chǎn)生這種情況的原因是該微引擎收到了事 件信號(hào)C,但是還未來(lái)得及將該事件信號(hào)C設(shè)置為該微引擎的該線程擁有的 事件信號(hào),該微引擎就出現(xiàn)故障,于是該線程擁有的事件信號(hào)中就不包括C。
如果發(fā)生故障的微引擎的各線程等待的事件信號(hào)正好是A和/或B,則通 過(guò)實(shí)施例四所述的方法,無(wú)法檢測(cè)出發(fā)生故障的微引擎,需要通過(guò)實(shí)施例五 所述的方法來(lái)進(jìn)一步檢測(cè)出轉(zhuǎn)發(fā)微引擎組中發(fā)生故障的微引擎。如圖5所示 為本發(fā)明檢測(cè)微引擎故障的方法實(shí)施例五流程圖,具體包括
框圖501、在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程 的線程計(jì)數(shù)器的值之和。
框圖502、比較至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù) 器的值之和是否均相等;如果相等,則執(zhí)行框圖503;如果不相等,則確定 該轉(zhuǎn)發(fā)微引擎組中沒(méi)有微引擎出現(xiàn)故障??驁D503、判斷該轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)是否是該微引擎組中微引擎之間傳遞的事件信號(hào);如果是,則確定該網(wǎng) 絡(luò)處理芯片中沒(méi)有微引擎出現(xiàn)故障;如果不是,即如果某一微引擎的某一線 程等待的事件信號(hào)不是該轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào),則執(zhí) 行框圖504??驁D504、判斷該線程擁有的事件信號(hào)是否包含該線程等待的事件信號(hào); 如果該線程擁有的事件信號(hào)包含該線程等待的事件信號(hào),則執(zhí)行框圖505; 如果該線程擁有的事件信號(hào)不包含該線程等待的事件信號(hào),則判定該網(wǎng)絡(luò)處 理芯片中有微引擎出現(xiàn)故障??驁D505、獲取轉(zhuǎn)發(fā)微引擎組中每一線程的同步信號(hào)計(jì)數(shù)器(SYlSIG-CNT)的值;同步信號(hào)計(jì)數(shù)器(SYN—SIG-CNT)用于反映轉(zhuǎn)發(fā)微引擎組中各線程之間同 步事件信號(hào)的傳遞情況??驁D506、兩兩比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值,并^4居上 述兩兩比較的結(jié)果確定出現(xiàn)故障的微引擎。具體為如果一個(gè)第一線程和與其相鄰的一個(gè)第二線程的同步信號(hào)計(jì)數(shù) 器(SYISIG—CNT)的值不相等,且該第一線程和第二線程屬于同一微引擎,則 判定該第一線程和第二線程所屬的微引擎出現(xiàn)故障;如果一個(gè)第一線程和與 其相鄰的一個(gè)第二線程的同步信號(hào)計(jì)數(shù)器(SYISIG—CNT)的值不相等,且該第 一線程和第二線程屬于不同的微引擎,用一個(gè)冗余微引擎代替所述第二線程 所屬的微引擎,并記錄所述第一線程所屬的微引擎的編號(hào);在后續(xù)的數(shù)據(jù)獲 取周期,兩兩比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器(SYN_SIG_CNT)的值是 否相等;如果與所述第一線程相鄰的一個(gè)第三線程的同步信號(hào)計(jì)數(shù)器的值與 所述第一線程不相等,則判定所述第一線程所屬的微引擎出現(xiàn)故障,并將所 述第一線程所述的微引擎用另 一個(gè)冗余微引擎代替;如果兩兩比較相鄰的線 程之間的同步信號(hào)計(jì)數(shù)器的值,均相等,則用一個(gè)冗余微引擎代替第一個(gè)線 程所屬的微引擎,在后續(xù)的數(shù)據(jù)獲取周期,如果兩兩比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值的結(jié)果仍為均相等,則用一個(gè)冗余^i:引擎代替最后一個(gè)線程所屬的微引擎。下面以實(shí)例來(lái)解釋實(shí)施例五的具體流程。以Intel IXP2800\2805芯片為例,該芯片有16個(gè)微引擎,每個(gè)微引擎 有8個(gè)線程,設(shè)編號(hào)為0、 1、 2、 3、 4的微引擎組成轉(zhuǎn)發(fā)微引擎組,第0號(hào) 微引擎的各線程的編號(hào)為00、 01、 02、 03、 04、 05、 06、 07,第l號(hào)微引擎 的各線程的編號(hào)為10、 11、 12、 13、 14、 15、 16、 17,第2號(hào)、第3號(hào)和第 4號(hào)微引擎的編號(hào)類(lèi)同,線程編號(hào)的第一位為該線程所述的微引擎的編號(hào), 第二位為該線程在該微引擎中的排序。獲取每一個(gè)線程的同步信號(hào)計(jì)數(shù)器 (SYN—SIG_CNT)的值,兩兩比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器 (SYISIG-CNT)的值是否相等,即線程00和01比較,線程01和02比較,線 程02和03比較……線程07和10比較(第0號(hào)微引擎的最后一個(gè)線程07與 第1號(hào)微引擎的第一個(gè)線程IO是相鄰的,其余各微引擎之間的線程的同步信 號(hào)計(jì)數(shù)器比較方法以此類(lèi)推),線程10與12比較 ,線程17與線程20比較, ,經(jīng)過(guò)將相鄰線程兩兩比較之后,如果某一線程的同步信號(hào)計(jì)數(shù)器(SYISIG—CNT)的值和與其相鄰的線程不相等,且這兩個(gè)線程屬于同一^:引 擎,例如線程01的同步信號(hào)計(jì)數(shù)器(SYISIG-CNT)的值不等于線程02,則判 定第0號(hào)微引擎出現(xiàn)故障。如果某一線程的同步信號(hào)計(jì)數(shù)器(SYISIG-CNT) 的值和與其相鄰的線程不相等,且這兩個(gè)線程屬于不同的微引擎,例如線程 07的同步信號(hào)計(jì)數(shù)器(SYISIG-CNT)的值不等于線程10,則先隔離第1號(hào)微 引擎,用冗余微引擎代替原第1號(hào)微引擎。在后續(xù)的數(shù)據(jù)獲取周期(由于定 時(shí)獲取各線程的同步信號(hào)計(jì)數(shù)器的值,例如每隔一秒,后續(xù)的數(shù)據(jù)獲取周期, 即將第一號(hào)微引擎隔離后后續(xù)的獲取各線程的同步信號(hào)計(jì)數(shù)器的值并檢測(cè)芯 片故障的時(shí)間),如果再次出現(xiàn)了連續(xù)至少三次獲取的轉(zhuǎn)發(fā)微引擎組中的所 有線程的線程計(jì)數(shù)器的值之和均相等,且該轉(zhuǎn)發(fā)微引擎組中的每一微引擎的 每一線程等待的事件信號(hào)均是該微引擎組中微引擎之間傳遞的事件信號(hào)的情18況,則繼續(xù)兩兩比較相鄰的線程的同步信號(hào)計(jì)數(shù)器(SYN—SIG-CNT)的值,如 果再次檢測(cè)到線程07的同步信號(hào)計(jì)數(shù)器(SYN—SIG—CNT)的值不等于與其相 鄰的新的微引擎的線程l(U,則判定線程07所屬的微引擎第0號(hào)微引擎出現(xiàn) 故障,將第O號(hào)微引擎隔離,用其余的冗余微引擎代替第0號(hào)微引擎。如果 兩兩比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器(SYN_SIG_CNT)的值,均相等, 則用其余冗余的微引擎代替第0號(hào)微引擎,因?yàn)橥ㄟ^(guò)框圖501到504,已經(jīng) 可以知道轉(zhuǎn)發(fā)微引擎組中有微引擎出現(xiàn)故障,但是根據(jù)兩兩比較相鄰的線程 之間的同步信號(hào)計(jì)數(shù)器(SYN—SIG-CNT)的值,不能找到出現(xiàn)故障的微引擎, 則可以判斷出現(xiàn)故障的微引擎應(yīng)該是第0號(hào)微引擎和第4號(hào)微引擎,可以先 用冗余的微引擎代替第0號(hào)微引擎。如果在在后續(xù)的數(shù)據(jù)獲取周期,再次發(fā) 現(xiàn)了轉(zhuǎn)發(fā)微引擎組中有微引擎出現(xiàn)故障,但是兩兩比較相鄰的線程之間的同 步信號(hào)計(jì)數(shù)器(SYN—SIG—CNT)的值,均相等,這時(shí)應(yīng)該將第4號(hào)微引擎用冗 余的微引擎代替。本發(fā)明上述各實(shí)施例,通過(guò)定時(shí)獲取網(wǎng)絡(luò)處理芯片中微引擎的每個(gè)線程 的線程計(jì)數(shù)器的值、微引擎的每個(gè)線程的指針的值、微引擎的每個(gè)線程的事 件信號(hào)的值以及微引擎的當(dāng)前活動(dòng)的線程號(hào)的值、轉(zhuǎn)發(fā)微引擎組中的所有線 程的線程計(jì)數(shù)器的值之和、以及線程的同步信號(hào)計(jì)數(shù)器的值,并比較這些參 數(shù)的值是否與上一次相等,根據(jù)比較結(jié)果可以確定哪些微引擎出現(xiàn)故障,通 過(guò)將出現(xiàn)故障的微引擎用冗余微引擎代替可以迅速恢復(fù)網(wǎng)絡(luò)處理芯片的故 障,能夠及時(shí)發(fā)現(xiàn)并恢復(fù)網(wǎng)絡(luò)處理芯片故障,并且通過(guò)將線程計(jì)數(shù)器與控制 狀態(tài)寄存器的信息相結(jié)合的方式來(lái)判定微引擎的狀態(tài),可以大幅減少用代碼 實(shí)現(xiàn)的計(jì)數(shù)器的添加,進(jìn)而能夠提高微引擎的效率。本發(fā)明實(shí)施例還提供了網(wǎng)絡(luò)處理芯片故障;f企測(cè)裝置。如圖6所示為本發(fā) 明網(wǎng)絡(luò)處理芯片故障處理裝置實(shí)施例一結(jié)構(gòu)示意圖,該實(shí)施例所述的裝置是 與如圖1所示的方法實(shí)施例對(duì)應(yīng)的,具體包括第一參數(shù)獲取單元ll,用于 在每至少 一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值;第一比較單元12,用于比較至少兩次獲取 的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值是否均相等;第一故障確定單元13,根據(jù)所述第一比較單元12的比較結(jié) 果確定微引擎故障。如圖7所示為本發(fā)明網(wǎng)絡(luò)處理芯片故障處理裝置實(shí)施例二結(jié)構(gòu)示意圖, 該實(shí)施例所述的裝置是與圖3所示的方法對(duì)應(yīng)的,具體包括第二參數(shù)獲取 單元21,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程的 線程計(jì)數(shù)器的值之和;第二比較單元22,用于比較至少兩次獲取的轉(zhuǎn)發(fā)微引 擎組中的所有線程的線程計(jì)數(shù)器的值之和是否均相等;第二故障確定單元23, 用于根據(jù)所述第二比較單元22的比較結(jié)果確定網(wǎng)絡(luò)處理芯片中是否有微引 擎發(fā)生故障。如圖8所示為本發(fā)明網(wǎng)絡(luò)處理芯片故障處理裝置實(shí)施例三結(jié)構(gòu)示意圖, 圖8所示裝置與圖4所示的方法對(duì)應(yīng),在圖7的基礎(chǔ)上網(wǎng)絡(luò)處理芯片故障檢 測(cè)裝置還可以包括第一事件信號(hào)判斷單元24,用于判斷每個(gè)微引擎的各線 程等待的事件信號(hào)是否是轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào);第二 事件信號(hào)判斷單元25,用于判斷等待的事件信號(hào)不是轉(zhuǎn)發(fā)微引擎組中微引擎 之間傳遞的事件信號(hào)的線程,其擁有的事件信號(hào)是否是其等待的事件信號(hào)。該第一事件信號(hào)判斷單元24和第二事件信號(hào)判斷單元25將判斷結(jié)果發(fā) 送給第二故障確定單元23,第二故障確定單元23根據(jù)第一事件信號(hào)判斷單 元24和第二事件信號(hào)判斷單元25的判斷結(jié)果,以及第二比較單元22的比較 結(jié)果確定網(wǎng)絡(luò)處理芯片中的4敖引擎的故障。如圖9所示為本發(fā)明網(wǎng)絡(luò)處理芯片故障處理裝置實(shí)施例四結(jié)構(gòu)示意圖, 圖9所示裝置與圖5所示的方法對(duì)應(yīng),在圖8的基礎(chǔ)上網(wǎng)絡(luò)處理芯片故障檢 測(cè)裝置還可以包括第三參數(shù)獲取單元26,用于獲取轉(zhuǎn)發(fā)微引擎組中每個(gè)線 程的同步信號(hào)計(jì)數(shù)器的值;第三比較單元27,用于比較相鄰的線程之間的同 步信號(hào)計(jì)數(shù)器的值是否相等。第三參數(shù)獲取單元26將獲取的同步信號(hào)計(jì)數(shù)器的值發(fā)送給第三比較單元27,第三比較單元27將比較結(jié)果發(fā)送給第二故障確定單元23,第二故障 確定單元23根據(jù)第三比較單元27的比較結(jié)果、第一事件信號(hào)判斷單元24和 第二事件信號(hào)判斷單元25的判斷結(jié)果、以及第二比較單元22的比較結(jié)果確 定網(wǎng)絡(luò)處理芯片中的微引擎的故障。如圖IO所示為本發(fā)明網(wǎng)絡(luò)處理芯片故障處理裝置實(shí)施例五結(jié)構(gòu)示意圖, 圖10所示裝置與圖2所示的方法對(duì)應(yīng),具體包括第四參數(shù)獲取單元31, 用于按照與處理數(shù)據(jù)相反的順序,在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的 每個(gè)線程的線程計(jì)數(shù)器的值;第四比較單元32,用于比較連續(xù)至少兩次獲取 的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值是否均相等;第三故障確定單元33, 用于根據(jù)所述第四比較單元32的比較結(jié)果確定網(wǎng)絡(luò)處理芯片中是否有微引 擎出現(xiàn)故障。本發(fā)明實(shí)施例通過(guò)定時(shí)獲取網(wǎng)絡(luò)處理芯片中微引擎的每個(gè)線程的線程計(jì) 數(shù)器的值、微引擎的每個(gè)線程的指針的值、微引擎的每個(gè)線程的事件信號(hào)的 值以及微引擎的當(dāng)前活動(dòng)的線程號(hào)的值、轉(zhuǎn)發(fā)微引擎組中的所有線程的線程 計(jì)數(shù)器的值之和以及線程的同步信號(hào)計(jì)數(shù)器的值,并比較連續(xù)至少兩次獲取 的這些參數(shù)的值是否均相等,根據(jù)比較結(jié)果可以確定哪些微引擎出現(xiàn)故障, 通過(guò)將出現(xiàn)故障的微引擎用冗余微引擎代替可以迅速恢復(fù)網(wǎng)絡(luò)處理芯片的故 障,能夠及時(shí)發(fā)現(xiàn)并恢復(fù)網(wǎng)絡(luò)處理芯片故障,從而可以縮短由于芯片故障導(dǎo) 致的業(yè)務(wù)中斷時(shí)間,并且通過(guò)將線程計(jì)數(shù)器與控制狀態(tài)寄存器的信息相結(jié)合 的方式來(lái)判定微引擎的狀態(tài),可以大幅減少用代碼實(shí)現(xiàn)的計(jì)數(shù)器的添加,進(jìn) 而能夠提高微引擎的效率。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其 限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù) 人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或 者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技 術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1、一種檢測(cè)微引擎故障的方法,其特征在于,包括在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值;比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值是否均相等;如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。
2、 根據(jù)權(quán)利要求1所述的檢測(cè)微引擎故障的方法,其特征在于,還包括 在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的指針的值,以及微引擎的當(dāng)前活動(dòng)的線程號(hào)的值。
3、 根據(jù)權(quán)利要求2所述的檢測(cè)微引擎故障的方法,其特征在于,所述比 較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線 程的事件信號(hào)的值是否均相等具體為比較連續(xù)至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引 擎的每個(gè)線程的事件信號(hào)的值是否均相等。
4、 根據(jù)權(quán)利要求1所述的檢測(cè)微引擎故障的方法,其特征在于,所述在 每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引 擎的每個(gè)線程的事件信號(hào)的值具體為按照與處理數(shù)據(jù)相反的順序,在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的 每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值。
5、 一種檢測(cè)微引擎故障的方法,其特征在于,包括在每至少 一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù) 器的值之和;比較連續(xù)至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)器的值 之和是否均相等;如果相等,則確定該網(wǎng)絡(luò)處理芯片中的微引擎出現(xiàn)故障。
6、 根據(jù)權(quán)利要求5所述的檢測(cè)微引擎故障的方法,其特征在于,如果連續(xù)至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)器的值之和均相等,則還包括判斷所述轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)是否 是所述轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào);如果至少一個(gè)微引擎的至少一個(gè)線程等待的事件信號(hào)不是所述轉(zhuǎn)發(fā)微引 擎組中微引擎之間傳遞的事件信號(hào),則判斷所述線程擁有的事件信號(hào)是否包 含所述線程等待的事件信號(hào);如果所述線程擁有的事件信號(hào)不包含所述線程等待的事件信號(hào),則判定 所述線程對(duì)應(yīng)的微引擎出現(xiàn)故障。
7、 根據(jù)權(quán)利要求6所述的檢測(cè)微引擎故障的方法,其特征在于,還包括 如果所述轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)均是所述轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào),則獲取所述轉(zhuǎn)發(fā)微引擎組 中每一線程的同步信號(hào)計(jì)數(shù)器的值;比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值是否相等;根據(jù)比較結(jié)果確定出現(xiàn)故障的微引擎。
8、 根據(jù)權(quán)利要求7所述的檢測(cè)微引擎故障的方法,其特征在于,所述根 據(jù)比較結(jié)果確定出現(xiàn)故障的微引擎具體為如果一個(gè)第一線程和與其相鄰的一個(gè)第二線程的同步信號(hào)計(jì)數(shù)器的值不 相等,且所述第一線程和第二線程屬于同一微引擎,則確定所述第一線程和 第二線程所屬的微引擎出現(xiàn)故障;如果所述第一線程和與其相鄰的第二線程的同步信號(hào)計(jì)數(shù)器的值不相 等,且所述第一線程和第二線程屬于不同的微引擎,則用一個(gè)冗余微引擎代 替所述第二線程所屬的微引擎,并記錄所述第一線程所屬的微引擎的編號(hào);在后續(xù)的數(shù)據(jù)獲取周期,如果連續(xù)至少兩次獲取的所述轉(zhuǎn)發(fā)微引擎組中 的所有線程的線程計(jì)數(shù)器的值之和均相等,且所述轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)均是所述微引擎組中微引擎之間傳遞的事件 信號(hào),則繼續(xù)比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值是否相等;如果與所述第 一線程相鄰的第三線程的同步信號(hào)計(jì)數(shù)器的值與所述第一 線程不相等,則判定所述第 一線程所屬的微引擎出現(xiàn)故障。
9、 根據(jù)權(quán)利要求8所述的檢測(cè)微引擎故障的方法,其特征在于,還包括 如果相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值均相等,則將第一個(gè)線程所屬的微引擎用 一個(gè)冗余微引擎代替;在后續(xù)的數(shù)據(jù)獲取周期,如果連續(xù)至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所 有線程的線程計(jì)數(shù)器的值之和均相等,且所述轉(zhuǎn)發(fā)微引擎組中的每一微引擎的每一線程等待的事件信號(hào)均是所述微引擎組中微引擎之間傳遞的事件信 號(hào),且相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值也均相等,則將最后一個(gè)線程 所屬的微引擎用個(gè)冗余微引擎代替。
10、 一種檢測(cè)微引擎故障的方法,其特征在于,包括 在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值; 比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值是否均相等;如果相等,則確定該網(wǎng)絡(luò)處理芯片的孩i引擎出現(xiàn)故障。
11、 一種檢測(cè)微引擎故障的裝置,其特征在于,包括 第一參數(shù)獲取單元,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值;第一比較單元,用于比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值是否均相等;第一故障確定單元,根據(jù)所述第一比較單元的比較結(jié)果確定微引擎是否出現(xiàn)故障。
12、 一種檢測(cè)微引擎故障的裝置,其特征在于,包括 第二參數(shù)獲取單元,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)器的值之和;第二比較單元,用于比較至少兩次獲取的轉(zhuǎn)發(fā)微引擎組中的所有線程的線程計(jì)數(shù)器的值之和是否均相等;第二故障確定單元,用于根據(jù)所述第二比較單元的比較結(jié)果確定網(wǎng)絡(luò)處 理芯片中是否有微引擎發(fā)生故障。
13、 根據(jù)權(quán)利要求12所述的檢測(cè)微引擎故障的裝置,其特征在于,還包括'.第一事件信號(hào)判斷單元,用于判斷每個(gè)微引擎的各線程等待的事件信號(hào) 是否是轉(zhuǎn)發(fā)微引擎組中微引擎之間傳遞的事件信號(hào);第二事件信號(hào)判斷單元,用于判斷等待的事件信號(hào)不是轉(zhuǎn)發(fā)微引擎組中 微引擎之間傳遞的事件信號(hào)的線程,其擁有的事件信號(hào)是否是其等待的事件 信號(hào)。
14、 根據(jù)權(quán)利要求13所述的檢測(cè)微引擎故障的裝置,其特征在于,還包括-.第三參數(shù)獲取單元,用于獲取轉(zhuǎn)發(fā)微引擎組中每個(gè)線程的同步信號(hào)計(jì)數(shù) 器的值;第三比較單元,用于比較相鄰的線程之間的同步信號(hào)計(jì)數(shù)器的值是否相等。
15、 一種檢測(cè)微引擎故障的裝置,其特征在于,包括 第四參數(shù)獲取單元,用于在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值;第四比較單元,用于比較至少兩次獲取的微引擎的每個(gè)線程的線程計(jì)數(shù) 器的值是否均相等;第三故障確定單元,用于根據(jù)所述第四比較單元的比較結(jié)果確定網(wǎng)絡(luò)處 理芯片中是否有微引擎出現(xiàn)故障。
全文摘要
本發(fā)明實(shí)施例涉及一種檢測(cè)微引擎故障的方法及裝置,其中檢測(cè)微引擎故障的方法包括在每至少一個(gè)數(shù)據(jù)獲取周期獲取微引擎的每個(gè)線程的線程計(jì)數(shù)器的值以及微引擎的每個(gè)線程的事件信號(hào)的值;比較至少兩次獲取的以上各值是否均相等,并根據(jù)比較結(jié)果確定網(wǎng)絡(luò)處理芯片中是否有微引擎出現(xiàn)故障。本發(fā)明實(shí)施例能夠及時(shí)發(fā)現(xiàn)并恢復(fù)網(wǎng)絡(luò)處理芯片中的微引擎故障,并且通過(guò)將線程計(jì)數(shù)器與控制狀態(tài)寄存器的信息相結(jié)合的方式來(lái)判定微引擎的狀態(tài),可以大幅減少用代碼實(shí)現(xiàn)的計(jì)數(shù)器的添加,進(jìn)而能夠提高微引擎的效率。
文檔編號(hào)H04L12/26GK101309184SQ200810113248
公開(kāi)日2008年11月19日 申請(qǐng)日期2008年5月28日 優(yōu)先權(quán)日2008年5月28日
發(fā)明者碧 劉, 恒 唐, 徐德軍, 李新昊, 琨 牛 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1