專利名稱:多核系統(tǒng)中的監(jiān)控方法、監(jiān)控裝置以及多核系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及監(jiān)控技術(shù),尤其涉及多核系統(tǒng)中的監(jiān)控方法、監(jiān)控裝置以及多核系統(tǒng)。
背景技術(shù):
在計(jì)算機(jī)技術(shù)和電子技術(shù)迅猛發(fā)展的趨勢(shì)下,將多個(gè)芯片集成于一個(gè)封裝之內(nèi)的多核技術(shù)逐漸成熟。多核系統(tǒng)中的每個(gè)核均可被看作為一個(gè)中央處理器(CPU),以便提高多核系統(tǒng)的處理效率并減少處理延遲。
在多核系統(tǒng)中,通常采用流水線或者并行處理等工作方式來(lái)完成待處理任務(wù)。圖1示出了采用流水線工作方式的多核系統(tǒng)示意圖。參見(jiàn)圖1,在流水線工作方式下,待處理任務(wù)被分成多個(gè)部分,每個(gè)核完成其中的一個(gè)部分。只有前面的核完成處理后,后面的核才繼續(xù)執(zhí)行該任務(wù)的后續(xù)部分,并在最后一個(gè)核結(jié)束處理后輸出處理結(jié)果。圖2示出了采用并行處理工作方式的多核系統(tǒng)示意圖。參見(jiàn)圖2,在并行處理工作方式下,每個(gè)核都能夠獨(dú)立地執(zhí)行待處理任務(wù),并輸出處理結(jié)果。
對(duì)于多核系統(tǒng),由于所運(yùn)行程序中存在的潛在錯(cuò)誤以及惡劣環(huán)境干擾等因素會(huì)導(dǎo)致核出現(xiàn)異常而無(wú)法運(yùn)行,因此為了保證該系統(tǒng)能夠在無(wú)人干預(yù)下自動(dòng)恢復(fù)正常,目前參考單核系統(tǒng)中采用的看門狗方式,對(duì)多核系統(tǒng)進(jìn)行監(jiān)控并執(zhí)行異常情況下的系統(tǒng)復(fù)位。具體而言,在多核系統(tǒng)中設(shè)置一個(gè)作為監(jiān)控裝置的看門狗芯片,并且該看門狗的輸出端與多核系統(tǒng)的復(fù)位端相連。多核系統(tǒng)中的每個(gè)核都可以在運(yùn)行正常的情況下定期對(duì)看門狗清零,以保證該看門狗不會(huì)溢出,從而不會(huì)對(duì)該多核系統(tǒng)進(jìn)行復(fù)位。當(dāng)所有核均發(fā)生故障而無(wú)法執(zhí)行清零操作時(shí),看門狗因未被清零而溢出,則整個(gè)多核系統(tǒng)被復(fù)位。
在上述的監(jiān)控方法下,只有等到全部核均處于異常狀態(tài)時(shí),才能夠?qū)Χ嗪讼到y(tǒng)進(jìn)行復(fù)位。那么,當(dāng)多核系統(tǒng)采用流水線工作方式時(shí),任何一個(gè)核出現(xiàn)故障都會(huì)導(dǎo)致待處理任務(wù)無(wú)法正常執(zhí)行,即需要對(duì)整個(gè)多核系統(tǒng)進(jìn)行復(fù)位,然而當(dāng)多核系統(tǒng)中存在正常運(yùn)行的核時(shí)無(wú)法執(zhí)行復(fù)位,則必須等待全部的核均出現(xiàn)故障。當(dāng)多核系統(tǒng)采用并行處理工作方式時(shí),當(dāng)僅有幾個(gè)核出現(xiàn)異常時(shí),也必須等待全部核均出現(xiàn)故障時(shí)才能夠?qū)Χ嗪讼到y(tǒng)進(jìn)行復(fù)位;并且由于并行處理工作方式下,各個(gè)核能夠相互獨(dú)立地工作,每個(gè)核的故障均不會(huì)中斷多核系統(tǒng)的運(yùn)行,則當(dāng)存在處于正常狀態(tài)的核時(shí),無(wú)需對(duì)多核系統(tǒng)進(jìn)行整體復(fù)位??梢?jiàn),現(xiàn)有的監(jiān)控方法無(wú)法在多核系統(tǒng)中的核出現(xiàn)異常的情況下及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種監(jiān)控方法,能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。
在本發(fā)明中,預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略,然后按照如下步驟對(duì)多核系統(tǒng)進(jìn)行監(jiān)控對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位。
其中,所述多核系統(tǒng)中的核包括監(jiān)控核和被監(jiān)控核,所述預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略為將監(jiān)控核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位,并根據(jù)所執(zhí)行任務(wù)的特性,將被監(jiān)控核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位、單核復(fù)位或者相關(guān)核復(fù)位。
較佳地,預(yù)先為監(jiān)控核設(shè)置系統(tǒng)監(jiān)控變量,為被監(jiān)控核設(shè)置上次更新變量和本次更新變量,該方法進(jìn)一步包括監(jiān)控核在正常狀態(tài)下對(duì)所述系統(tǒng)監(jiān)控變量定期更新,并且監(jiān)控核和被監(jiān)控核在正常狀態(tài)下按照預(yù)先設(shè)置的該被監(jiān)控核的更新周期,分別對(duì)所述上次更新變量和本次更新變量進(jìn)行更新;
所述對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視為根據(jù)所述系統(tǒng)監(jiān)控變量確定監(jiān)控核的運(yùn)行狀態(tài),根據(jù)所述上次更新變量和本次更新變量確定被監(jiān)控核的工作狀態(tài)。
其中,所述監(jiān)控核在正常狀態(tài)下對(duì)所述系統(tǒng)監(jiān)控變量定期更新為監(jiān)控核在處于正常狀態(tài)時(shí)定期將系統(tǒng)監(jiān)控變量清零;所述上次更新變量的初始值比當(dāng)前更新變量的初始值小1,則所述監(jiān)控核和被監(jiān)控核在正常狀態(tài)下對(duì)所述上次更新變量和本次更新變量進(jìn)行更新為監(jiān)控核按照所述被監(jiān)控核的更新周期,將上次更新變量對(duì)應(yīng)的數(shù)值加1,被監(jiān)控核按照所述更新周期,將當(dāng)前更新變量對(duì)應(yīng)的數(shù)值加1;所述根據(jù)系統(tǒng)監(jiān)控變量確定監(jiān)控核的運(yùn)行狀態(tài)為判斷系統(tǒng)監(jiān)控變量是否溢出,如果是,則判定監(jiān)控核處于異常狀態(tài),否則,判定監(jiān)控核處于正常狀態(tài);所述根據(jù)上次更新變量和本次更新變量確定被監(jiān)控核的工作狀態(tài)為判斷上次更新變量是否大于等于本次更新變量,如果是,則判定該被監(jiān)控核處于異常狀態(tài),否則,判定該被監(jiān)控核處于正常狀態(tài)。
較佳地,所述確定核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位包括A1.判斷處于異常狀態(tài)的核是否為監(jiān)控核,如果是,則將該核對(duì)應(yīng)的復(fù)位策略確定為系統(tǒng)復(fù)位,并對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位;否則,執(zhí)行步驟B1;B1.判斷處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則對(duì)所述處于異常狀態(tài)的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是相關(guān)核復(fù)位,則根據(jù)復(fù)位策略確定與異常狀態(tài)相關(guān)的被監(jiān)控核,對(duì)所確定的被監(jiān)控核進(jìn)行復(fù)位,并結(jié)束本流程;如果是系統(tǒng)復(fù)位,則對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位。
其中,所述預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略為根據(jù)所述核所執(zhí)行任務(wù)的特性,將核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位、單核復(fù)位或者相關(guān)核復(fù)位。
較佳地,預(yù)先為所述核設(shè)置上次更新變量和本次更新變量,該方法進(jìn)一步包括按照預(yù)先設(shè)置的該核的更新周期對(duì)上次更新變量進(jìn)行更新,并且核在正常狀態(tài)下按照所述更新周期,對(duì)本次更新變量進(jìn)行更新;所述對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視為根據(jù)所述上次更新變量和本次更新變量確定核的工作狀態(tài)。
其中,所述上次更新變量的初始值比當(dāng)前更新變量的初始值小1,則所述對(duì)上次更新變量進(jìn)行更新為按照預(yù)先設(shè)置的核的更新周期,將上次更新變量對(duì)應(yīng)的數(shù)值加1;所述對(duì)本次更新變量進(jìn)行更新為核按照所述更新周期,將當(dāng)前更新變量對(duì)應(yīng)的數(shù)值加1;所述根據(jù)上次更新變量和本次更新變量確定核的工作狀態(tài)為判斷上次更新變量是否大于等于本次更新變量,如果是,則判定該核處于異常狀態(tài),否則,判定該核處于正常狀態(tài)。
其中,所述確定核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位為判斷處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則對(duì)所述處于異常狀態(tài)的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是相關(guān)核復(fù)位,則根據(jù)復(fù)位策略確定與異常狀態(tài)相關(guān)的核,對(duì)所確定的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是系統(tǒng)復(fù)位,則對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位。
較佳地,所述按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位之前,進(jìn)一步包括需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份;所述按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位之后,進(jìn)一步包括利用所備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
其中,所述需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份為將需備份的數(shù)據(jù)的存儲(chǔ)位置通知給所述需要被復(fù)位的核,該核按照將自身的數(shù)據(jù)傳輸至所述存儲(chǔ)位置,進(jìn)行保存。
其中,預(yù)先確定需備份的數(shù)據(jù)的存儲(chǔ)位置,則所述需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份為需要被復(fù)位的核在正常狀態(tài)下定期將需備份的數(shù)據(jù)傳輸至所述存儲(chǔ)位置,進(jìn)行保存。
本發(fā)明還提供一種監(jiān)控裝置,能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。該監(jiān)控裝置包括系統(tǒng)監(jiān)控模塊、核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊,其中,系統(tǒng)監(jiān)控模塊用于對(duì)多核系統(tǒng)中監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,將監(jiān)視結(jié)果提供給控制模塊,在監(jiān)控核處于異常狀態(tài)時(shí)或者接收到來(lái)自于控制模塊的系統(tǒng)復(fù)位通知時(shí),對(duì)多核系統(tǒng)中的所有核進(jìn)行復(fù)位;所述核監(jiān)控模塊用于對(duì)多核系統(tǒng)中被監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給控制模塊;所述控制模塊用于從系統(tǒng)監(jiān)控模塊和核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核或與異常狀態(tài)相關(guān)的核進(jìn)行復(fù)位,或者根據(jù)復(fù)位策略并通過(guò)系統(tǒng)復(fù)位通知來(lái)指示系統(tǒng)監(jiān)控模塊對(duì)多核系統(tǒng)進(jìn)行復(fù)位;所述存儲(chǔ)模塊用于保存所述多核系統(tǒng)中所有核對(duì)應(yīng)的復(fù)位策略。
其中,所述核監(jiān)控模塊包括與被監(jiān)控核數(shù)目相同的核監(jiān)控子模塊,用于分別對(duì)每個(gè)被監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給所述控制模塊。
其中,所述存儲(chǔ)模塊進(jìn)一步用于存儲(chǔ)要被復(fù)位的被監(jiān)控核的備份數(shù)據(jù);所述控制模塊進(jìn)一步用于從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
其中,所述核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊位于所述監(jiān)控核中。
本發(fā)明中的另一種監(jiān)控裝置也能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。該監(jiān)控裝置包括核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊,其中,
所述核監(jiān)控模塊用于監(jiān)視所述多核系統(tǒng)中核的運(yùn)行狀態(tài),并將監(jiān)視結(jié)果提供給所述控制模塊;所述控制模塊用于從核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核、與異常狀態(tài)相關(guān)的核或者多核系統(tǒng)中的所有核進(jìn)行復(fù)位;所述存儲(chǔ)模塊用于保存所述核對(duì)應(yīng)的復(fù)位策略。
其中,所述核監(jiān)控模塊包括與核數(shù)目相同的核監(jiān)控子模塊,用于分別對(duì)每個(gè)核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給所述控制模塊。
其中,所述存儲(chǔ)模塊進(jìn)一步用于存儲(chǔ)要被復(fù)位的核的備份數(shù)據(jù);所述控制模塊進(jìn)一步用于從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
本發(fā)明又提供一種多核系統(tǒng),能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。該系統(tǒng)包括核以及監(jiān)控裝置,其中,所述核用于執(zhí)行處理任務(wù);所述監(jiān)控裝置用于保存該多核系統(tǒng)中的每個(gè)核對(duì)應(yīng)的復(fù)位策略,對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位。
其中,所述監(jiān)控裝置進(jìn)一步用于通知需要被復(fù)位的核對(duì)數(shù)據(jù)進(jìn)行備份,并根據(jù)所備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
應(yīng)用本發(fā)明,能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。具體而言,本發(fā)明具有如下有益效果本發(fā)明對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,在出現(xiàn)處于異常狀態(tài)的核時(shí),按照該核對(duì)應(yīng)的復(fù)位策略執(zhí)行單核、相關(guān)核或者系統(tǒng)復(fù)位,則無(wú)論在流水線工作方式還是在并行工作方式下,均能夠及時(shí)有效地恢復(fù)多核系統(tǒng)的正常運(yùn)行。
并且,本發(fā)明在執(zhí)行復(fù)位之前,將被復(fù)位的核通過(guò)調(diào)用回調(diào)函數(shù)或者定期上報(bào)數(shù)據(jù),對(duì)這些核的重要數(shù)據(jù)進(jìn)行數(shù)據(jù)備份,那么在完成復(fù)位之后,能夠利用備份數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng),以便這些核從出現(xiàn)故障之前的正常進(jìn)程開(kāi)始運(yùn)行。
下面將通過(guò)參照附圖詳細(xì)描述本發(fā)明的示例性實(shí)施例,使本領(lǐng)域的普通技術(shù)人員更清楚本發(fā)明的上述及其它特征和優(yōu)點(diǎn),附圖中圖1為現(xiàn)有的采用流水線工作方式的多核系統(tǒng)示意圖;圖2為現(xiàn)有的采用并行處理工作方式的多核系統(tǒng)示意圖;圖3為本發(fā)明多核系統(tǒng)中監(jiān)控方法的示例性流程圖;圖4為本發(fā)明實(shí)施例1中多核系統(tǒng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例1中監(jiān)控方法的流程圖;圖6為本發(fā)明實(shí)施例2中多核系統(tǒng)的結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例2中監(jiān)控方法的流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說(shuō)明。
本發(fā)明為一種多核系統(tǒng)中的監(jiān)控方法,其基本思想是當(dāng)多核系統(tǒng)中出現(xiàn)處于異常狀態(tài)的核時(shí),根據(jù)該核所對(duì)應(yīng)的復(fù)位策略進(jìn)行復(fù)位。
圖3示出了本發(fā)明多核系統(tǒng)中監(jiān)控方法的示例性流程圖。參見(jiàn)圖3,該方法預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略,并通過(guò)如下的步驟對(duì)多核系統(tǒng)進(jìn)行監(jiān)控在步驟301中,對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視;在步驟302中,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略進(jìn)行復(fù)位。
本發(fā)明中,根據(jù)多核系統(tǒng)中各個(gè)核的特點(diǎn),復(fù)位策略可以包括系統(tǒng)復(fù)位、單個(gè)核復(fù)位以及相關(guān)核復(fù)位。其中,如果核采用系統(tǒng)復(fù)位策略,那么當(dāng)該核出現(xiàn)故障而處于異常狀態(tài)時(shí),需要對(duì)整個(gè)的多核系統(tǒng)進(jìn)行復(fù)位;如果核采用單核復(fù)位策略,則當(dāng)該核出現(xiàn)故障而處于異常狀態(tài)時(shí),只需對(duì)處于異常狀態(tài)的核進(jìn)行復(fù)位;如果核采用相關(guān)核復(fù)位策略,則當(dāng)該核出現(xiàn)故障而處于異常狀態(tài)時(shí),對(duì)與異常狀態(tài)相關(guān)的核進(jìn)行復(fù)位。這里,與異常狀態(tài)相關(guān)的核包括處于異常狀態(tài)的核以及與該核所執(zhí)行的任務(wù)相關(guān)的核。
本發(fā)明在多核系統(tǒng)中引入監(jiān)控裝置,該裝置保存有多核系統(tǒng)中各個(gè)核對(duì)應(yīng)的復(fù)位策略,對(duì)所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,在出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略進(jìn)行復(fù)位。下面通過(guò)具體的實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行說(shuō)明。
實(shí)施例1圖4示出了本實(shí)施例中多核系統(tǒng)的結(jié)構(gòu)示意圖。參見(jiàn)圖4,本實(shí)施例將多核系統(tǒng)中的核劃分為一個(gè)監(jiān)控核以及至少一個(gè)被監(jiān)控核,監(jiān)控核僅采用系統(tǒng)復(fù)位這一種復(fù)位策略,而被監(jiān)控核則可以采用系統(tǒng)復(fù)位、單核復(fù)位或者相關(guān)核復(fù)位等復(fù)位策略。
本實(shí)施例的監(jiān)控裝置中包括系統(tǒng)監(jiān)控模塊、核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊,其中核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊均位于多核系統(tǒng)的監(jiān)控核中,核監(jiān)控模塊中包括與被監(jiān)控核數(shù)目相同的核監(jiān)控子模塊,并且每個(gè)核監(jiān)控子模塊均與一個(gè)被監(jiān)控核相連。對(duì)于本實(shí)施例的監(jiān)控裝置,系統(tǒng)監(jiān)控模塊對(duì)監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,將監(jiān)視結(jié)果提供給控制模塊,在監(jiān)控核處于異常狀態(tài)時(shí)或者接收到來(lái)自于控制模塊的系統(tǒng)復(fù)位通知時(shí),對(duì)多核系統(tǒng)中的所有核進(jìn)行復(fù)位。核監(jiān)控模塊對(duì)被監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給控制模塊。控制模塊從系統(tǒng)監(jiān)控模塊和核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核或與異常狀態(tài)相關(guān)的核進(jìn)行復(fù)位,或者根據(jù)復(fù)位策略并通過(guò)系統(tǒng)復(fù)位通知來(lái)指示系統(tǒng)監(jiān)控模塊對(duì)多核系統(tǒng)進(jìn)行復(fù)位。上述各個(gè)核對(duì)應(yīng)的復(fù)位策略均被保存于存儲(chǔ)模塊之中。
進(jìn)一步地,本實(shí)施例中的存儲(chǔ)模塊還保存要被復(fù)位的被監(jiān)控核的備份數(shù)據(jù),控制模塊從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
由于本實(shí)施例中的控制模塊、存儲(chǔ)模塊以及核監(jiān)控模塊均位于監(jiān)控核中,那么監(jiān)控核在多核系統(tǒng)中起到監(jiān)控其他核的運(yùn)行狀態(tài)、在出現(xiàn)處于異常狀態(tài)的被監(jiān)控核時(shí)確定應(yīng)被復(fù)位的被監(jiān)控核并對(duì)所確定的被監(jiān)控核復(fù)位等總體控制作用。
圖5示出了本實(shí)施例中監(jiān)控方法的流程圖。參見(jiàn)圖5,該方法包括在步驟501~503中,監(jiān)視多核系統(tǒng)中所有核的運(yùn)行狀態(tài),發(fā)現(xiàn)處于異常狀態(tài)的核,并判斷出現(xiàn)異常的核為監(jiān)控核還是被監(jiān)控核,如果是監(jiān)控核,則執(zhí)行步驟509,否則,確定處于異常狀態(tài)的被監(jiān)控核,并繼續(xù)執(zhí)行步驟504。
本實(shí)施例中,可以將定時(shí)器作為核監(jiān)控子模塊,將看門狗芯片設(shè)置在系統(tǒng)監(jiān)控模塊中。當(dāng)多核系統(tǒng)中的監(jiān)控核正常運(yùn)行時(shí),定期對(duì)系統(tǒng)監(jiān)控模塊中的系統(tǒng)監(jiān)控變量進(jìn)行清零,以保證系統(tǒng)監(jiān)控模塊中的看門狗芯片不會(huì)產(chǎn)生溢出信號(hào)。那么本實(shí)施例中可以通過(guò)檢測(cè)系統(tǒng)監(jiān)控模塊是否輸出溢出信號(hào),來(lái)確定監(jiān)控核是否處于異常狀態(tài)。
此外,當(dāng)各個(gè)被監(jiān)控核正常運(yùn)行時(shí),定期對(duì)各自對(duì)應(yīng)的核監(jiān)控子模塊進(jìn)行更新。例如,在核監(jiān)控子模塊中設(shè)置上次更新變量和當(dāng)前更新變量,并且上次更新變量的初始值比當(dāng)前更新變量的初始值小1。在多核系統(tǒng)運(yùn)行過(guò)程中,上次更新變量由監(jiān)控核按照被監(jiān)控核的更新周期定期加1,當(dāng)前更新變量則由被監(jiān)控核按照該更新周期定期加1。由于上次更新變量和當(dāng)前更新變量均按照被監(jiān)控核的更新周期來(lái)改變數(shù)值,則在被監(jiān)控核處于正常狀態(tài)時(shí),對(duì)應(yīng)的被監(jiān)控核中的上次更新變量的數(shù)值比當(dāng)前更新變量的數(shù)值小1。當(dāng)被監(jiān)控核處于異常狀態(tài)時(shí),由于無(wú)法將當(dāng)前更新變量的數(shù)值加1,則會(huì)出現(xiàn)上次更新變量的數(shù)值等于當(dāng)前更新變量的數(shù)值的情況。那么,本實(shí)施例可以通過(guò)判斷上次更新變量的數(shù)值是否大于等于當(dāng)前更新變量的數(shù)值,確定被監(jiān)控核是否處于異常狀態(tài)。
具體而言,這里如果監(jiān)控核中的控制模塊接收到來(lái)自于系統(tǒng)監(jiān)控模塊的溢出信號(hào),則判定出現(xiàn)異常的核為監(jiān)控核;如果檢測(cè)到存在上次更新變量的數(shù)值大于等于當(dāng)前更新變量的數(shù)值的核監(jiān)控子模塊,則判定出現(xiàn)異常的核為被監(jiān)控核,并將該核監(jiān)控子模塊對(duì)應(yīng)的被監(jiān)控核作為處于異常狀態(tài)的被監(jiān)控核。
在步驟504中,判斷處于異常狀態(tài)的被監(jiān)控核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則執(zhí)行步驟505;如果是相關(guān)核復(fù)位,則執(zhí)行步驟507;如果是系統(tǒng)復(fù)位,則執(zhí)行步驟509。
由于本實(shí)施例中根據(jù)多核系統(tǒng)中各個(gè)被監(jiān)控核的特性,即被監(jiān)控核所執(zhí)行任務(wù)的特性,預(yù)先為每個(gè)被監(jiān)控核設(shè)置了對(duì)應(yīng)的復(fù)位策略,并保存在存儲(chǔ)模塊中,那么本步驟中確定出現(xiàn)異常的被監(jiān)控核的復(fù)位策略,以便后續(xù)步驟中按照復(fù)位策略進(jìn)行復(fù)位。
在步驟505~506中,通知處于異常狀態(tài)的被監(jiān)控核將需要備份的數(shù)據(jù)傳輸給監(jiān)控核,復(fù)位該被監(jiān)控核,并根據(jù)備份的數(shù)據(jù)對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng),而后結(jié)束本監(jiān)控流程。
這里,在處于異常狀態(tài)的被監(jiān)控核對(duì)應(yīng)的復(fù)位策略為單核復(fù)位時(shí),只需對(duì)該被監(jiān)控核進(jìn)行復(fù)位。那么,為了便于處于異常的被監(jiān)控核在復(fù)位后恢復(fù)出現(xiàn)故障之前的操作,則通知該被監(jiān)控核將包括重要數(shù)據(jù)、重要參數(shù)等在內(nèi)的需要備份的數(shù)據(jù)傳輸給監(jiān)控核。處于正常狀態(tài)的監(jiān)控核將接收到的數(shù)據(jù)存儲(chǔ)于自身之中。在實(shí)際應(yīng)用中,被監(jiān)控核可以預(yù)先在位于監(jiān)控核內(nèi)的控制模塊中注冊(cè)回調(diào)函數(shù),則此處控制模塊通知被監(jiān)控核調(diào)用回調(diào)函數(shù),并在該回調(diào)函數(shù)中攜帶指向存儲(chǔ)模塊內(nèi)存的指針。然后,被監(jiān)控核按照回調(diào)函數(shù)中的指針,將需要備份的數(shù)據(jù)傳輸?shù)綄?duì)應(yīng)的內(nèi)存中。
監(jiān)控核在完成被監(jiān)控核的數(shù)據(jù)備份后,向處于異常狀態(tài)的被監(jiān)控核發(fā)送復(fù)位信號(hào)。然后,監(jiān)控核將自身保存的備份數(shù)據(jù)傳送給完成復(fù)位的被監(jiān)控核,以便被監(jiān)控核恢復(fù)現(xiàn)場(chǎng),重新以正常狀態(tài)運(yùn)行。
在步驟507~508中,通知異常狀態(tài)相關(guān)的被監(jiān)控核進(jìn)行數(shù)據(jù)備份,復(fù)位異常狀態(tài)相關(guān)的被監(jiān)控核,并根據(jù)備份的數(shù)據(jù)對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng),而后結(jié)束本監(jiān)控流程。
在處于異常狀態(tài)的被監(jiān)控核對(duì)應(yīng)的復(fù)位策略為相關(guān)核復(fù)位時(shí),復(fù)位策略中包含有需要被復(fù)位的被監(jiān)控核的信息,監(jiān)控核在從復(fù)位策略中獲取需要被復(fù)位的被監(jiān)控核的信息后,通知上述的被監(jiān)控核將需要備份的數(shù)據(jù)傳輸給監(jiān)控核,并在接收到來(lái)自于被監(jiān)控核的數(shù)據(jù)后,存儲(chǔ)于自身之中。同樣,在實(shí)際應(yīng)用中,被監(jiān)控核可以預(yù)先在控制模塊中注冊(cè)回調(diào)函數(shù),則此處控制模塊通知需要被復(fù)位的被監(jiān)控核調(diào)用回調(diào)函數(shù),并在該回調(diào)函數(shù)中攜帶指向存儲(chǔ)模塊內(nèi)存的指針。然后,上述被監(jiān)控核按照回調(diào)函數(shù)中的指針,將需要備份的數(shù)據(jù)傳輸?shù)綄?duì)應(yīng)的內(nèi)存中。
監(jiān)控核在完成被監(jiān)控核的數(shù)據(jù)備份后,向處于異常狀態(tài)的被監(jiān)控核以及相關(guān)的被監(jiān)控核發(fā)送復(fù)位信號(hào)。然后,監(jiān)控核將自身保存的備份數(shù)據(jù)傳送給完成復(fù)位的被監(jiān)控核,以便被監(jiān)控核恢復(fù)現(xiàn)場(chǎng),重新以正常狀態(tài)運(yùn)行。
在步驟509中,對(duì)多核系統(tǒng)的所有核進(jìn)行復(fù)位,并結(jié)束本流程。
當(dāng)處于異常狀態(tài)的核為監(jiān)控核或者處于異常狀態(tài)的被監(jiān)控核采用系統(tǒng)復(fù)位策略時(shí),在本步驟中對(duì)多核系統(tǒng)的全部核進(jìn)行復(fù)位。具體而言,系統(tǒng)監(jiān)控模塊將多核系統(tǒng)中的監(jiān)控核和所有被監(jiān)控核復(fù)位,從而使得多核系統(tǒng)重新以正常狀態(tài)開(kāi)始運(yùn)行。
至此,結(jié)束本實(shí)施例中的監(jiān)控流程。
以上流程中,各個(gè)被監(jiān)控核預(yù)先在監(jiān)控核中注冊(cè)回調(diào)函數(shù),監(jiān)控核通過(guò)通知被監(jiān)控核調(diào)用回調(diào)函數(shù)的方式,對(duì)需要復(fù)位的被監(jiān)控核進(jìn)行現(xiàn)場(chǎng)保護(hù)。當(dāng)然,也可以采用被監(jiān)控核定時(shí)向監(jiān)控核上報(bào)需要備份的數(shù)據(jù)的方式。在該方式下,當(dāng)發(fā)現(xiàn)出現(xiàn)處于異常狀態(tài)的被監(jiān)控核時(shí),由于位于監(jiān)控核內(nèi)部的存儲(chǔ)模塊中已經(jīng)保存有需要被復(fù)位的被監(jiān)控核的備份數(shù)據(jù),則無(wú)需執(zhí)行步驟505和步驟507,而直接執(zhí)行步驟506或508。
可見(jiàn),本實(shí)施例中,由于采用核監(jiān)控模塊和系統(tǒng)監(jiān)控模塊分別對(duì)被監(jiān)控核和監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,在出現(xiàn)處于異常狀態(tài)的核時(shí),按照該核對(duì)應(yīng)的復(fù)位策略執(zhí)行單核、相關(guān)核或者系統(tǒng)復(fù)位,則無(wú)論在流水線工作方式還是在并行工作方式下,均能夠及時(shí)有效地恢復(fù)多核系統(tǒng)的正常運(yùn)行。并且,本實(shí)施例中在復(fù)位之前對(duì)要被復(fù)位的被監(jiān)控核進(jìn)行了數(shù)據(jù)備份,在完成復(fù)位之后,能夠利用備份數(shù)據(jù)對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng),以便這些被監(jiān)控核從出現(xiàn)故障之前的正常進(jìn)程開(kāi)始運(yùn)行。
以上為將核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊集成于監(jiān)控核中的實(shí)施例,下面對(duì)本發(fā)明的另一實(shí)施例進(jìn)行說(shuō)明。
實(shí)施例2圖6示出了本實(shí)施例中多核系統(tǒng)的結(jié)構(gòu)示意圖。參見(jiàn)圖6,本實(shí)施例的多核系統(tǒng)中不再區(qū)分監(jiān)控核和被監(jiān)控核,并且運(yùn)行狀態(tài)監(jiān)視、確定異常核的復(fù)位策略以及對(duì)異常核進(jìn)行復(fù)位的工作均由監(jiān)控裝置完成。
這里的監(jiān)控裝置包括核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊。核監(jiān)控模塊中也包括與核數(shù)目相同的核監(jiān)控子模塊,每個(gè)核監(jiān)控子模塊均與一個(gè)核相連,對(duì)核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,將監(jiān)視結(jié)果發(fā)送給控制模塊??刂颇K從核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核、與異常狀態(tài)相關(guān)的核或者多核系統(tǒng)中的所有核進(jìn)行復(fù)位。存儲(chǔ)模塊中保存有各個(gè)核對(duì)應(yīng)的復(fù)位策略。此外,本實(shí)施例中的存儲(chǔ)模塊還保存有要被復(fù)位的核的備份數(shù)據(jù),控制控制模塊從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
圖7示出了本實(shí)施例中監(jiān)控方法的流程圖。參見(jiàn)圖7,該方法包括在步驟701~702中,監(jiān)視多核系統(tǒng)中所有核的運(yùn)行狀態(tài),發(fā)現(xiàn)處于異常狀態(tài)的核,并確定處于異常狀態(tài)的核。
本實(shí)施例中,可以將定時(shí)器置入核監(jiān)控子模塊中,當(dāng)多核系統(tǒng)中的核正常運(yùn)行時(shí),定期對(duì)各自對(duì)應(yīng)的核監(jiān)控子模塊進(jìn)行更新。并且,在核監(jiān)控子模塊中設(shè)置上次更新變量和當(dāng)前更新變量,上次更新變量的初始值比當(dāng)前更新變量的初始值小1。在多核系統(tǒng)運(yùn)行過(guò)程中,上次更新變量由監(jiān)控裝置中的控制模塊按照各個(gè)核的更新周期定期加1,當(dāng)前更新變量則由各個(gè)核按照該更新周期定期加1。從而可以通過(guò)判斷上次更新變量的數(shù)值是否大于等于當(dāng)前更新變量的數(shù)值,確定核是否處于異常狀態(tài)。
在步驟703中,判斷處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則執(zhí)行步驟704;如果是相關(guān)核復(fù)位,則執(zhí)行步驟706;如果是系統(tǒng)復(fù)位,則執(zhí)行步驟708。
與實(shí)施例1相似,本實(shí)施例中也根據(jù)多核系統(tǒng)中各個(gè)核的特性,預(yù)先為每個(gè)核設(shè)置了對(duì)應(yīng)的復(fù)位策略,那么本步驟中確定出現(xiàn)異常的被監(jiān)控核的復(fù)位策略,以便后續(xù)步驟中按照復(fù)位策略進(jìn)行復(fù)位。
在步驟704~705中,通知處于異常狀態(tài)的核將需要備份的數(shù)據(jù)傳輸給監(jiān)控裝置,復(fù)位該核,并根據(jù)備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng),而后結(jié)束本監(jiān)控流程。
這里,在處于異常狀態(tài)的被監(jiān)控核對(duì)應(yīng)的復(fù)位策略為單核復(fù)位時(shí),只需對(duì)該被監(jiān)控核進(jìn)行復(fù)位。那么,為了便于處于異常的被監(jiān)控核在復(fù)位后恢復(fù)出現(xiàn)故障之前的操作,則通知該核將需要備份的數(shù)據(jù)傳輸給監(jiān)控裝置,由監(jiān)控裝置將接收到的數(shù)據(jù)存儲(chǔ)于自身的存儲(chǔ)模塊之中。在實(shí)際應(yīng)用中,核可以預(yù)先在監(jiān)控裝置的控制模塊中注冊(cè)回調(diào)函數(shù),控制模塊通知核調(diào)用回調(diào)函數(shù),并在該回調(diào)函數(shù)中攜帶指向監(jiān)控裝置中存儲(chǔ)模塊內(nèi)存的指針。然后,核按照回調(diào)函數(shù)中的指針,將需要備份的數(shù)據(jù)傳輸?shù)奖O(jiān)控裝置中。
在完成處于異常狀態(tài)的核的數(shù)據(jù)備份后,監(jiān)控裝置向該核發(fā)送復(fù)位信號(hào)。然后,監(jiān)控裝置將自身保存的備份數(shù)據(jù)傳送給完成復(fù)位的核,以便該核恢復(fù)現(xiàn)場(chǎng),重新以正常狀態(tài)運(yùn)行。
在步驟706~707中,通知異常狀態(tài)相關(guān)的核進(jìn)行數(shù)據(jù)備份,復(fù)位異常狀態(tài)相關(guān)的核,并根據(jù)備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng),而后結(jié)束本監(jiān)控流程。
在處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略為相關(guān)核復(fù)位時(shí),復(fù)位策略中包含有需要被復(fù)位的核的信息,監(jiān)控裝置中的控制模塊在從復(fù)位策略中獲取需要被復(fù)位的核的信息后,通知上述核將需要備份的數(shù)據(jù)傳輸給監(jiān)控裝置,并在接收到來(lái)自于核的數(shù)據(jù)后,存儲(chǔ)于自身之中。同樣,這些核也可以預(yù)先在監(jiān)控裝置的控制模塊中注冊(cè)回調(diào)函數(shù),此處監(jiān)控裝置的控制模塊通知需要被復(fù)位的核調(diào)用回調(diào)函數(shù),并在該回調(diào)函數(shù)中攜帶指向監(jiān)控裝置中存儲(chǔ)模塊的內(nèi)存的指針。然后,上述核按照回調(diào)函數(shù)中的指針,將需要備份的數(shù)據(jù)傳輸?shù)奖O(jiān)控裝置中。
在完成被監(jiān)控核的數(shù)據(jù)備份后,監(jiān)控裝置的控制模塊向與異常狀態(tài)相關(guān)的核發(fā)送復(fù)位信號(hào)。然后,監(jiān)控裝置將自身保存的備份數(shù)據(jù)傳送給完成復(fù)位的核,完成恢復(fù)現(xiàn)場(chǎng)操作。
在步驟708中,對(duì)多核系統(tǒng)的所有核進(jìn)行復(fù)位,并結(jié)束本流程。
當(dāng)處于異常狀態(tài)的核采用系統(tǒng)復(fù)位策略時(shí),在本步驟中對(duì)多核系統(tǒng)的全部核進(jìn)行復(fù)位。具體而言,監(jiān)控裝置中的控制模塊將多核系統(tǒng)中的所有核復(fù)位,從而使得該多核系統(tǒng)重新以正常狀態(tài)開(kāi)始運(yùn)行。
至此,結(jié)束本實(shí)施例中的監(jiān)控流程。
本實(shí)施例在進(jìn)行恢復(fù)現(xiàn)場(chǎng)時(shí),同樣也可以以定時(shí)上報(bào)備份數(shù)據(jù)的方式替代回調(diào)函數(shù)的方式。換言之,多核系統(tǒng)中的各個(gè)核在正常運(yùn)行時(shí),定時(shí)將自身的備份數(shù)據(jù)傳輸給監(jiān)控裝置的存儲(chǔ)模塊,當(dāng)發(fā)現(xiàn)出現(xiàn)處于異常狀態(tài)的核時(shí),由于監(jiān)控裝置中已經(jīng)保存有需要被復(fù)位的核的備份數(shù)據(jù),則無(wú)需執(zhí)行步驟704和步驟706,而直接執(zhí)行步驟705或707。
可見(jiàn),本實(shí)施例與實(shí)施例1相似,監(jiān)控裝置對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,在出現(xiàn)處于異常狀態(tài)的核時(shí),按照該核對(duì)應(yīng)的復(fù)位策略執(zhí)行單核、相關(guān)核或者系統(tǒng)復(fù)位,則無(wú)論在流水線工作方式還是在并行工作方式下,均能夠及時(shí)有效地恢復(fù)多核系統(tǒng)的正常運(yùn)行。并且,本實(shí)施例中,在復(fù)位之前對(duì)要被復(fù)位的核進(jìn)行了數(shù)據(jù)備份,在完成復(fù)位之后,能夠利用備份數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng),以便這些核從出現(xiàn)故障之前的正常進(jìn)程開(kāi)始運(yùn)行。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多核系統(tǒng)中的監(jiān)控方法,其特征在于,預(yù)先為該多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略,該方法包括對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位。
2.如權(quán)利要求1所述的方法,其特征在于,所述多核系統(tǒng)中的核包括監(jiān)控核和被監(jiān)控核,所述預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略為將監(jiān)控核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位,并根據(jù)所執(zhí)行任務(wù)的特性,將被監(jiān)控核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位、單核復(fù)位或者相關(guān)核復(fù)位。
3.如權(quán)利要求2所述的方法,其特征在于,預(yù)先為監(jiān)控核設(shè)置系統(tǒng)監(jiān)控變量,為被監(jiān)控核設(shè)置上次更新變量和本次更新變量,該方法進(jìn)一步包括監(jiān)控核在正常狀態(tài)下對(duì)所述系統(tǒng)監(jiān)控變量定期更新,并且監(jiān)控核和被監(jiān)控核在正常狀態(tài)下按照預(yù)先設(shè)置的該被監(jiān)控核的更新周期,分別對(duì)所述上次更新變量和本次更新變量進(jìn)行更新;所述對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視為根據(jù)所述系統(tǒng)監(jiān)控變量確定監(jiān)控核的運(yùn)行狀態(tài),根據(jù)所述上次更新變量和本次更新變量確定被監(jiān)控核的工作狀態(tài)。
4.如權(quán)利要求3所述的方法,其特征在于,所述監(jiān)控核在正常狀態(tài)下對(duì)所述系統(tǒng)監(jiān)控變量定期更新為監(jiān)控核在處于正常狀態(tài)時(shí)定期將系統(tǒng)監(jiān)控變量清零;所述上次更新變量的初始值比當(dāng)前更新變量的初始值小1,則所述監(jiān)控核和被監(jiān)控核在正常狀態(tài)下對(duì)所述上次更新變量和本次更新變量進(jìn)行更新為監(jiān)控核按照所述被監(jiān)控核的更新周期,將上次更新變量對(duì)應(yīng)的數(shù)值加1,被監(jiān)控核按照所述更新周期,將當(dāng)前更新變量對(duì)應(yīng)的數(shù)值加1;所述根據(jù)系統(tǒng)監(jiān)控變量確定監(jiān)控核的運(yùn)行狀態(tài)為判斷系統(tǒng)監(jiān)控變量是否溢出,如果是,則判定監(jiān)控核處于異常狀態(tài),否則,判定監(jiān)控核處于正常狀態(tài);所述根據(jù)上次更新變量和本次更新變量確定被監(jiān)控核的工作狀態(tài)為判斷上次更新變量是否大于等于本次更新變量,如果是,則判定該被監(jiān)控核處于異常狀態(tài),否則,判定該被監(jiān)控核處于正常狀態(tài)。
5.如權(quán)利要求2所述的方法,其特征在于,所述確定核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位包括A1.判斷處于異常狀態(tài)的核是否為監(jiān)控核,如果是,則將該核對(duì)應(yīng)的復(fù)位策略確定為系統(tǒng)復(fù)位,并對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位;否則,執(zhí)行步驟B1;B1.判斷處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則對(duì)所述處于異常狀態(tài)的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是相關(guān)核復(fù)位,則根據(jù)復(fù)位策略確定與異常狀態(tài)相關(guān)的被監(jiān)控核,對(duì)所確定的被監(jiān)控核進(jìn)行復(fù)位,并結(jié)束本流程;如果是系統(tǒng)復(fù)位,則對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位。
6.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)先為多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略為根據(jù)所述核所執(zhí)行任務(wù)的特性,將核對(duì)應(yīng)的復(fù)位策略設(shè)置為系統(tǒng)復(fù)位、單核復(fù)位或者相關(guān)核復(fù)位。
7.如權(quán)利要求6所述的方法,其特征在于,預(yù)先為所述核設(shè)置上次更新變量和本次更新變量,該方法進(jìn)一步包括按照預(yù)先設(shè)置的該核的更新周期對(duì)上次更新變量進(jìn)行更新,并且核在正常狀態(tài)下按照所述更新周期,對(duì)本次更新變量進(jìn)行更新;所述對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視為根據(jù)所述上次更新變量和本次更新變量確定核的工作狀態(tài)。
8.如權(quán)利要求7所述的方法,其特征在于,所述上次更新變量的初始值比當(dāng)前更新變量的初始值小1,則所述對(duì)上次更新變量進(jìn)行更新為按照預(yù)先設(shè)置的核的更新周期,將上次更新變量對(duì)應(yīng)的數(shù)值加1;所述對(duì)本次更新變量進(jìn)行更新為核按照所述更新周期,將當(dāng)前更新變量對(duì)應(yīng)的數(shù)值加1;所述根據(jù)上次更新變量和本次更新變量確定核的工作狀態(tài)為判斷上次更新變量是否大于等于本次更新變量,如果是,則判定該核處于異常狀態(tài),否則,判定該核處于正常狀態(tài)。
9.如權(quán)利要求6所述的方法,其特征在于,所述確定核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位為判斷處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略是單核復(fù)位、相關(guān)核復(fù)位還是系統(tǒng)復(fù)位,如果是單核復(fù)位,則對(duì)所述處于異常狀態(tài)的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是相關(guān)核復(fù)位,則根據(jù)復(fù)位策略確定與異常狀態(tài)相關(guān)的核,對(duì)所確定的核進(jìn)行復(fù)位,并結(jié)束本流程;如果是系統(tǒng)復(fù)位,則對(duì)所述多核系統(tǒng)中的所有核進(jìn)行復(fù)位。
10.如權(quán)利要求1所述的方法,其特征在于,所述按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位之前,進(jìn)一步包括需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份;所述按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位之后,進(jìn)一步包括利用所備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
11.如權(quán)利要求10所述的方法,其特征在于,所述需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份為將需備份的數(shù)據(jù)的存儲(chǔ)位置通知給所述需要被復(fù)位的核,該核按照將自身的數(shù)據(jù)傳輸至所述存儲(chǔ)位置,進(jìn)行保存。
12.如權(quán)利要求10所述的方法,其特征在于,預(yù)先確定需備份的數(shù)據(jù)的存儲(chǔ)位置,則所述需要被復(fù)位的核對(duì)自身的數(shù)據(jù)進(jìn)行備份為需要被復(fù)位的核在正常狀態(tài)下定期將需備份的數(shù)據(jù)傳輸至所述存儲(chǔ)位置,進(jìn)行保存。
13.一種對(duì)多核系統(tǒng)進(jìn)行監(jiān)控的監(jiān)控裝置,其特征在于,該監(jiān)控裝置包括系統(tǒng)監(jiān)控模塊、核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊,其中,系統(tǒng)監(jiān)控模塊用于對(duì)多核系統(tǒng)中監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,將監(jiān)視結(jié)果提供給控制模塊,在監(jiān)控核處于異常狀態(tài)時(shí)或者接收到來(lái)自于控制模塊的系統(tǒng)復(fù)位通知時(shí),對(duì)多核系統(tǒng)中的所有核進(jìn)行復(fù)位;所述核監(jiān)控模塊用于對(duì)多核系統(tǒng)中被監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給控制模塊;所述控制模塊用于從系統(tǒng)監(jiān)控模塊和核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核或與異常狀態(tài)相關(guān)的核進(jìn)行復(fù)位,或者根據(jù)復(fù)位策略并通過(guò)系統(tǒng)復(fù)位通知來(lái)指示系統(tǒng)監(jiān)控模塊對(duì)多核系統(tǒng)進(jìn)行復(fù)位;所述存儲(chǔ)模塊用于保存所述多核系統(tǒng)中所有核對(duì)應(yīng)的復(fù)位策略。
14.如權(quán)利要求13所述的監(jiān)控裝置,其特征在于,所述核監(jiān)控模塊包括與被監(jiān)控核數(shù)目相同的核監(jiān)控子模塊,用于分別對(duì)每個(gè)被監(jiān)控核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給所述控制模塊。
15.如權(quán)利要求13所述的監(jiān)控裝置,其特征在于,所述存儲(chǔ)模塊進(jìn)一步用于存儲(chǔ)要被復(fù)位的被監(jiān)控核的備份數(shù)據(jù);所述控制模塊進(jìn)一步用于從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的被監(jiān)控核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
16.如權(quán)利要求13至15中任意一項(xiàng)所述的監(jiān)控裝置,其特征在于,所述核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊位于所述監(jiān)控核中。
17.一種對(duì)多核系統(tǒng)進(jìn)行監(jiān)控的監(jiān)控裝置,其特征在于,該監(jiān)控裝置包括核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊,其中,所述核監(jiān)控模塊用于監(jiān)視所述多核系統(tǒng)中核的運(yùn)行狀態(tài),并將監(jiān)視結(jié)果提供給所述控制模塊;所述控制模塊用于從核監(jiān)控模塊中獲取監(jiān)視結(jié)果,確定處于異常狀態(tài)的核,從存儲(chǔ)模塊中讀取處于異常狀態(tài)的核對(duì)應(yīng)的復(fù)位策略,并根據(jù)復(fù)位策略對(duì)處于異常狀態(tài)的核、與異常狀態(tài)相關(guān)的核或者多核系統(tǒng)中的所有核進(jìn)行復(fù)位;所述存儲(chǔ)模塊用于保存所述核對(duì)應(yīng)的復(fù)位策略。
18.如權(quán)利要求17所述的監(jiān)控裝置,其特征在于,所述核監(jiān)控模塊包括與核數(shù)目相同的核監(jiān)控子模塊,用于分別對(duì)每個(gè)核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,并將監(jiān)視結(jié)果提供給所述控制模塊。
19.如權(quán)利要求17或18所述的監(jiān)控裝置,其特征在于,所述存儲(chǔ)模塊進(jìn)一步用于存儲(chǔ)要被復(fù)位的核的備份數(shù)據(jù);所述控制模塊進(jìn)一步用于從存儲(chǔ)模塊中獲取備份數(shù)據(jù),對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
20.一種多核系統(tǒng),其特征在于,該系統(tǒng)包括核以及監(jiān)控裝置,其中,所述核用于執(zhí)行處理任務(wù);所述監(jiān)控裝置用于保存該多核系統(tǒng)中的每個(gè)核對(duì)應(yīng)的復(fù)位策略,對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位。
21.如權(quán)利要求20所述的系統(tǒng),其特征在于,所述監(jiān)控裝置進(jìn)一步用于通知需要被復(fù)位的核對(duì)數(shù)據(jù)進(jìn)行備份,并根據(jù)所備份的數(shù)據(jù)對(duì)被復(fù)位的核進(jìn)行恢復(fù)現(xiàn)場(chǎng)。
全文摘要
本發(fā)明公開(kāi)了一種多核系統(tǒng)的監(jiān)控方法,預(yù)先為該多核系統(tǒng)中的每個(gè)核設(shè)置對(duì)應(yīng)的復(fù)位策略,該方法包括對(duì)多核系統(tǒng)中所有核的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,當(dāng)出現(xiàn)處于異常狀態(tài)的核時(shí),確定該核對(duì)應(yīng)的復(fù)位策略,并按照所確定的復(fù)位策略對(duì)需要被復(fù)位的核進(jìn)行復(fù)位。本發(fā)明還公開(kāi)了一種包括系統(tǒng)監(jiān)控模塊、核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊的監(jiān)控裝置,以及一種包括核監(jiān)控模塊、控制模塊和存儲(chǔ)模塊的監(jiān)控裝置。另外,本發(fā)明又公開(kāi)了一種多核系統(tǒng),該系統(tǒng)包括核以及監(jiān)控裝置。本發(fā)明的上述技術(shù)方案能夠在多核系統(tǒng)中的核出現(xiàn)異常的情況下,及時(shí)有效地恢復(fù)系統(tǒng)運(yùn)行。
文檔編號(hào)G06F11/00GK1916858SQ200610127590
公開(kāi)日2007年2月21日 申請(qǐng)日期2006年9月19日 優(yōu)先權(quán)日2006年9月19日
發(fā)明者郭昕 申請(qǐng)人:杭州華為三康技術(shù)有限公司