[發(fā)明專利]面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法有效
| 申請?zhí)枺?/td> | 201110341733.8 | 申請日: | 2011-11-03 |
| 公開(公告)號: | CN102508742A | 公開(公告)日: | 2012-06-20 |
| 發(fā)明(設(shè)計)人: | 秦瑩;劉曉建;戴華東;吳慶波;孔金珠;顏躍進(jìn) | 申請(專利權(quán))人: | 中國人民解放軍國防科學(xué)技術(shù)大學(xué) |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 湖南兆弘專利事務(wù)所 43008 | 代理人: | 趙洪;譚武藝 |
| 地址: | 410073 湖南省長沙市硯瓦池正*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 面向 硬件 不可 恢復(fù) 內(nèi)存 故障 內(nèi)核 代碼 容錯 方法 | ||
1.一種面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于其實施步驟如下:
1)在操作系統(tǒng)將內(nèi)核代碼加載至物理內(nèi)存時,將所述內(nèi)核代碼標(biāo)記為主代碼,為每段所述內(nèi)核代碼設(shè)置多份代碼副本并將代碼副本加載至物理內(nèi)存中;
2)在操作系統(tǒng)運(yùn)行時,如果內(nèi)核代碼所在的內(nèi)存遇到內(nèi)存異常則定位當(dāng)前主代碼的出錯內(nèi)核頁,將出錯內(nèi)核頁的代碼與當(dāng)前主代碼對應(yīng)的代碼副本進(jìn)行比較,如果確定為出錯內(nèi)核頁的代碼發(fā)生錯誤,則暫停計算機(jī)運(yùn)行,修改所述出錯內(nèi)核頁的內(nèi)核代碼頁表,從當(dāng)前主代碼對應(yīng)的代碼副本中選擇一份正常的代碼副本代替當(dāng)前主代碼,然后繼續(xù)運(yùn)行計算機(jī)。
2.根據(jù)權(quán)利要求1所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述步驟2)中定位當(dāng)前主代碼的出錯內(nèi)核頁的具體步驟包括:首先檢測內(nèi)存異常類型,如果內(nèi)存異常類型為同步感知故障,則直接根據(jù)異常錯誤信息包含的內(nèi)存硬件地址信息定位出錯內(nèi)核頁;如果內(nèi)存異常類型為異步感知故障,則在當(dāng)前執(zhí)行棧中通過檢查調(diào)用指令進(jìn)行迭代棧回退定位出錯內(nèi)核頁。
3.根據(jù)權(quán)利要求2所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述在當(dāng)前執(zhí)行棧中通過檢查調(diào)用指令進(jìn)行迭代棧回退定位出錯內(nèi)核頁的具體步驟包括:
A)將迭代次數(shù)清零;
B)檢查當(dāng)前執(zhí)行棧,如果當(dāng)前執(zhí)行棧中子例程的入口地址包括當(dāng)前主代碼的內(nèi)存地址,則將所述內(nèi)存地址處的主代碼和相應(yīng)的代碼副本進(jìn)行特征比較,如果匹配則定位出錯內(nèi)核頁成功;如果均不匹配則檢查棧歷史中已執(zhí)行的代碼是否包含I/O指令或者寫指令,如果存在I/O指令或者寫指令則轉(zhuǎn)入步驟D),如果不存在I/O指令或者寫指令則轉(zhuǎn)入步驟C);
C)檢查迭代次數(shù),如果迭代次數(shù)沒有到達(dá)迭代上限則回退到上一級棧幀,迭代次數(shù)增加一次并繼續(xù)跳轉(zhuǎn)執(zhí)行步驟B);否則如果迭代次數(shù)到達(dá)上限,跳轉(zhuǎn)執(zhí)行步驟D);
D)停止故障處理過程并結(jié)束查找。
4.根據(jù)權(quán)利要求1所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于:所述步驟1)中將代碼副本加載至物理內(nèi)存中時,所述加載的代碼副本數(shù)量N為N=2f+1,其中f為大于0的整數(shù)。
5.根據(jù)權(quán)利要求4所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于:所述步驟1)中將代碼副本加載至物理內(nèi)存中時,所述加載至物理內(nèi)存中的代碼副本分別分散存儲于物理內(nèi)存中。
6.根據(jù)權(quán)利要求1所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述步驟2)中在操作系統(tǒng)運(yùn)行時還包括內(nèi)核代碼檢查維護(hù)的步驟,所述內(nèi)核代碼檢查維護(hù)的步驟包括:在操作系統(tǒng)空閑狀態(tài)時啟動內(nèi)核代碼比較線程,將各內(nèi)核模塊的主代碼和與其對應(yīng)的代碼副本進(jìn)行比較,根據(jù)所述比較結(jié)果對當(dāng)前主代碼對應(yīng)的代碼副本進(jìn)行檢查維護(hù),且根據(jù)所述比較結(jié)果對當(dāng)前主代碼的狀態(tài)進(jìn)行判斷,如果主代碼發(fā)生錯誤,則暫停計算機(jī)運(yùn)行,選擇一份正常的代碼副本替代操作系統(tǒng)的主代碼,然后繼續(xù)運(yùn)行計算機(jī)。
7.根據(jù)權(quán)利要求6所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述將內(nèi)核模塊的各主代碼和與其對應(yīng)的各代碼副本進(jìn)行比較的具體步驟包括:
Ⅰ)選定一個代碼副本作為主代碼副本,遍歷查找比較主代碼和主代碼副本之間的差異;
Ⅱ)如果主代碼和主代碼副本之間無差異,則判定主代碼正常,比較結(jié)束;如果主代碼和主代碼副本之間有差異,則將其他的代碼副本作為從代碼副本依次與主代碼進(jìn)行比較、將主代碼副本依次與各從代碼副本進(jìn)行比較,如果主代碼和主代碼副本、各從代碼副本均不一致,則判定主代碼出錯;如果所述主代碼副本與主代碼、各從代碼副本均不一致,則判定主代碼副本出錯。
8.根據(jù)權(quán)利要求7所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述根據(jù)所述比較結(jié)果對當(dāng)前主代碼對應(yīng)的代碼副本進(jìn)行檢查維護(hù)具體包括:如果所述比較結(jié)果得出主代碼副本出錯,則選擇一份正常的從代碼副本替代作為當(dāng)前的主代碼副本。
9.根據(jù)權(quán)利要求1~8中任意一項所述的面向硬件不可恢復(fù)內(nèi)存故障的內(nèi)核代碼軟容錯方法,其特征在于,所述步驟2)中在操作系統(tǒng)運(yùn)行時還包括內(nèi)核代碼定期替換的步驟,所述內(nèi)核代碼定期替換具體是指:在內(nèi)核代碼的當(dāng)前主代碼運(yùn)行正常的情況下,定時暫停計算機(jī)運(yùn)行,對當(dāng)前主代碼對應(yīng)的代碼副本進(jìn)行檢查維護(hù),從當(dāng)前主代碼對應(yīng)的代碼副本中輪流選擇一份正常的代碼副本代替當(dāng)前主代碼,然后繼續(xù)運(yùn)行計算機(jī)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科學(xué)技術(shù)大學(xué),未經(jīng)中國人民解放軍國防科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110341733.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





