專利名稱:一種高效安全的計(jì)算機(jī)在線自檢方法及自檢裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種安全(Safety)領(lǐng)域內(nèi)設(shè)備自檢方法及裝置,尤其是涉及一種高效安全的計(jì)算機(jī)在線自檢方法及自檢裝置。
背景技術(shù):
在線自檢是實(shí)現(xiàn)計(jì)算機(jī)平臺(tái)安全運(yùn)行的基礎(chǔ)。一般是對(duì)計(jì)算機(jī)平臺(tái)的CPU、內(nèi)存進(jìn)行周期式的檢測(cè),確保計(jì)算機(jī)平臺(tái)的安全性,在檢測(cè)到硬件失效后及時(shí)、有效地進(jìn)行必要的干預(yù)。CPU檢測(cè)通常執(zhí)行效率很高,可以在很短的時(shí)間內(nèi)完成;內(nèi)存檢測(cè)通常待測(cè)區(qū)域非常大,高安全的檢測(cè)算法復(fù)雜度較高,往往耗時(shí)非常長(zhǎng)。
隨著嵌入式領(lǐng)域?qū)Π踩絹碓街匾?,安全?jì)算機(jī)通信數(shù)據(jù)量大、通信行為的不確定性和應(yīng)用處理時(shí)間較長(zhǎng),往往使CPU占用率過高,用于執(zhí)行內(nèi)存檢測(cè)的時(shí)間非常短,而內(nèi)存待測(cè)區(qū)域又非常大。那么就會(huì)面臨下列問題:
1、自檢周期的問題:隨著通信量的增加和應(yīng)用的豐富,計(jì)算機(jī)平臺(tái)會(huì)使用更大的內(nèi)存,以滿足日益增長(zhǎng)的通信和應(yīng)用開銷。在線自檢所花費(fèi)的時(shí)間會(huì)越來越多,自檢周期往往會(huì)達(dá)到數(shù)小時(shí)級(jí)甚至數(shù)十小時(shí)級(jí)別。
2、診斷覆蓋率的問題:為了保證在線自檢的高效,在線自檢通常會(huì)采用診斷覆蓋率相對(duì)較低的技術(shù),在提高在線自檢效率的同時(shí)會(huì)犧牲一定的安全性。對(duì)于未使用到的內(nèi)存,現(xiàn)有的技術(shù)通常使用Abraham算法進(jìn)行檢測(cè),或是不對(duì)其進(jìn)行測(cè)試。使用Abraham算法檢測(cè)使得內(nèi)存的檢測(cè)周期非常的長(zhǎng),尤其是通信量的增大和應(yīng)用的豐富,使得內(nèi)存容量達(dá)到數(shù)百M(fèi)B甚至幾GB。往往達(dá)到數(shù)小時(shí)級(jí)別甚至數(shù)十小時(shí)級(jí)別。不對(duì)未使用的內(nèi)存進(jìn)行檢測(cè)會(huì)使整個(gè)內(nèi)存的診斷覆蓋率降低,無法達(dá)到算法預(yù)期的99%。
3、現(xiàn)有的高安全性在線檢測(cè)算法執(zhí)行效率問題:對(duì)于使用到的內(nèi)存檢測(cè)通常采用Abraham算法,使用32位處理器對(duì)一個(gè)N個(gè)字長(zhǎng)的內(nèi)存塊進(jìn)行檢測(cè),目前最優(yōu)算法的復(fù)雜度為30NXm,其中,算法復(fù)雜度為30N,需要采用m組測(cè)試數(shù)據(jù)。在帶有cache的處理器中,內(nèi)存檢測(cè)的時(shí)候會(huì)直接讀取cache中的數(shù)據(jù),無法真正起到檢測(cè)內(nèi)存的目的,會(huì)給算法的診斷覆蓋率帶來一定的影響。為了保證cache不影響到內(nèi)存檢測(cè)算法的有效性,會(huì)采用禁用cache和等待cache數(shù)據(jù)過期的辦法,這樣的方法會(huì)導(dǎo)致內(nèi)存檢測(cè)的耗時(shí)過長(zhǎng)。
4、在線自檢的內(nèi)存資源與其它功能耦合強(qiáng)的問題:在線自檢作為安全計(jì)算機(jī)的一部分,往往會(huì)將使用的內(nèi)存與計(jì)算機(jī)其它功能和操作系統(tǒng)所使用內(nèi)存相互混合在一起,增加了數(shù)據(jù)存儲(chǔ)的耦合性。發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種自檢周期短、診斷覆蓋率高、執(zhí)行效率高、內(nèi)存資源獨(dú)立的高效安全的計(jì)算機(jī)在線自檢方法及自檢裝置。
本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
一種高效安全的計(jì)算機(jī)在線自檢方法,包括以下步驟:
I)啟動(dòng)在線自檢裝置,設(shè)備初始化模塊初始化在線自檢任務(wù),并分配各在線自檢任務(wù)所需使用的內(nèi)存空間;
2)獲取在線自檢的內(nèi)存測(cè)試所必須的內(nèi)存信息;
3)獲取預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果;
4)設(shè)備初始化模塊判斷是否獲取到繼續(xù)執(zhí)行在線自檢的信號(hào),若為是,則執(zhí)行步驟5);若為否,則繼續(xù)執(zhí)行步驟4);
5) CPU檢測(cè)模塊進(jìn)行CPU檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟6);若檢測(cè)到故障,則執(zhí)行步驟8);
6)內(nèi)存檢測(cè)模塊對(duì)不可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟7);若檢測(cè)到故障,則執(zhí)行步驟8);
7)內(nèi)存檢測(cè)模塊對(duì)可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟4);若檢測(cè)到故障,則執(zhí)行步驟8);
8)失效處理:失效處理模塊對(duì)檢測(cè)到的故障進(jìn)行相應(yīng)處理,并將故障信息進(jìn)行顯示報(bào)警和記錄。
所述的CPU檢測(cè)寄存器測(cè)試和指令測(cè)試。
所述的內(nèi)存檢測(cè)模塊可變內(nèi)存測(cè)試和不可變內(nèi)存測(cè)試。
所述的寄存器測(cè)試的測(cè)試內(nèi)容包括各寄存器的固定故障和寄存器之間的耦合故障。
所述的指令測(cè)試具體為:根據(jù)預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果,以測(cè)試數(shù)據(jù)作為輸入源,判斷輸入源運(yùn)算得到的結(jié)果與輸入源對(duì)應(yīng)的預(yù)期結(jié)果是否一致,若是,則指令測(cè)試通過,若否,則指令測(cè)試不通過。
所述的可變內(nèi)存測(cè)試采用的算法在不降低診斷覆蓋率的前提下降低算法復(fù)雜度,且無需考慮cache的影響。
所述的不可變內(nèi)存測(cè)試采用的算法為在不降低診斷覆蓋率的前提下復(fù)雜度為32N的校驗(yàn)算法。
一種高效安全的計(jì)算機(jī)在線裝置,包括設(shè)備初始化模塊、CPU檢測(cè)模塊、內(nèi)存檢測(cè)模塊和失效處理模塊,所述的設(shè)備初始化模塊、CPU檢測(cè)模塊、內(nèi)存檢測(cè)模塊依次連接,失效處理模塊分別連接CPU檢測(cè)模塊和內(nèi)存檢測(cè)模塊。
所述的失效處理模塊人機(jī)接口和失效記錄裝置。
所述的內(nèi)存檢測(cè)模塊連接有外部校驗(yàn)裝置。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
1、自檢周期縮短:結(jié)合內(nèi)存所存儲(chǔ)的數(shù)據(jù)特點(diǎn),分別優(yōu)化內(nèi)存檢測(cè)算法,提高了內(nèi)存檢測(cè)算法的執(zhí)行效率,極大的縮短了自檢周期;
2、診斷覆蓋率高:通過對(duì)未使用的內(nèi)存采用校驗(yàn)算法,對(duì)全部?jī)?nèi)存進(jìn)行了檢測(cè),內(nèi)存檢測(cè)仍然維持在高診斷覆蓋率的水準(zhǔn);
3、在線檢測(cè)算法執(zhí)行效率高:通過對(duì)Abraham算法的優(yōu)化和校驗(yàn)算法的使用,降低了算法的復(fù)雜度,減少了內(nèi)存檢測(cè)的操作,在保證診斷覆蓋率的同時(shí),還提高了內(nèi)存檢測(cè)的執(zhí)行效率;
4、內(nèi)存資源獨(dú)立:采用獨(dú)立模塊加載的方式,保證了在線自檢所使用的內(nèi)存獨(dú)立于操作系統(tǒng)和其它功能所使用的內(nèi)存。
圖1為本發(fā)明方法的流程示意圖;圖1為本發(fā)明裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
如圖1所示,一種高效安全的計(jì)算機(jī)在線自檢方法,包括以下步驟:
步驟1:啟動(dòng)在線自檢裝置,設(shè)備初始化模塊初始化在線自檢任務(wù),并分配各在線自檢任務(wù)所需使用的內(nèi)存空間;
步驟2:獲取在線自檢的內(nèi)存測(cè)試所必須的內(nèi)存信息;
步驟3:獲取預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果;
步驟4:設(shè)備初始化模塊判斷是否獲取到繼續(xù)執(zhí)行在線自檢的信號(hào),若為是,則執(zhí)行步驟5 ;若為否,則繼續(xù)執(zhí)行步驟4 ;
步驟5 =CPU檢測(cè)模塊進(jìn)行CPU檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟6 ;若檢測(cè)到故障,則執(zhí)行步驟8;
步驟6:內(nèi)存檢測(cè)模塊對(duì)不可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟7 ;若檢測(cè)到故障,則執(zhí)行步驟8;
步驟7:內(nèi)存檢測(cè)模塊對(duì)可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟4 ;若檢測(cè)到故障,則執(zhí)行步驟8;
步驟8:失效處理:失效處理模塊對(duì)檢測(cè)到的故障進(jìn)行相應(yīng)處理(包括啟動(dòng)備用設(shè)備、重啟或重新安裝等),并將故障信息進(jìn)行顯示報(bào)警和記錄,通過人機(jī)接口,可以對(duì)外顯示報(bào)警:通過失效記錄裝置,可以記錄下失效信息,供后期分析使用。
在Abraham算法中,第N次對(duì)內(nèi)存進(jìn)行操作,然后對(duì)第N次的內(nèi)存操作結(jié)果進(jìn)行檢測(cè),如果未檢測(cè)到失效,則等待一定時(shí)間或者將cache刷新。在第(i+1)步首先對(duì)第i次內(nèi)存操作結(jié)果進(jìn)行檢測(cè)。在本方法中,利用總線偵聽技術(shù),保證了 cache中數(shù)據(jù)和內(nèi)存的一致性,無須在內(nèi)存檢測(cè)過程中考慮cache帶來的影響,對(duì)cache —致性前后的運(yùn)算進(jìn)行優(yōu)化,每處優(yōu)化降低的復(fù)雜度為N,共計(jì)優(yōu)化6處,算法的復(fù)雜度優(yōu)化為24N。改進(jìn)后的Abraham算法仍然采用m組測(cè)試數(shù)據(jù),復(fù)雜度共計(jì)為24NXm,僅為當(dāng)前算法的復(fù)雜度的80%,同時(shí)無須考慮cache帶來的影響。對(duì)于未使用到的內(nèi)存,使用32位校驗(yàn)算法計(jì)算內(nèi)存數(shù)據(jù),得到一個(gè)32位的校核字。該算法的復(fù)雜度僅為32N。本方法既減少了內(nèi)存檢測(cè)的操作,提高了效率,又保證了內(nèi)存檢測(cè)的診斷覆蓋率。
如圖2所示,執(zhí)行上述高效安全的計(jì)算機(jī)在線方法的裝置包括設(shè)備初始化模塊a、CPU檢測(cè)模塊b、內(nèi)存檢測(cè)模塊c和失效處理模塊d,所述的設(shè)備初始化模塊a、CPU檢測(cè)模塊b、內(nèi)存檢測(cè)模塊c依次連接,失效處理模塊d分別連接CPU檢測(cè)模塊b和內(nèi)存檢測(cè)模塊C,內(nèi)存檢測(cè)模塊c連接有外部校驗(yàn)裝置e,失效處理模塊d人機(jī)接口 f和失效記錄裝置g。
對(duì)各模塊進(jìn)行闡述:
1、設(shè)備初始化模塊a:
設(shè)備初始化模塊a用來初始化CPU檢測(cè)模塊b、內(nèi)存檢測(cè)模塊c所需要使用到的硬件資源,同時(shí)還會(huì)配置外部設(shè)備,用以確定外部校驗(yàn)裝置e、人機(jī)接口 f、失效記錄裝置g的連接。設(shè)備初始化模塊a還會(huì)預(yù)先獲取CPU測(cè)試和內(nèi)存測(cè)試所需要的測(cè)試數(shù)據(jù)、預(yù)期結(jié)果、地址信息,并初始化在線自檢結(jié)果。
2、CPU 檢測(cè)模塊 b:
CPU檢測(cè)模塊b對(duì)PowerPC架構(gòu)的CPU進(jìn)行檢測(cè)。根據(jù)PowerPC架構(gòu)的指令集特征,分別在用戶模式下進(jìn)行寄存器測(cè)試和指令測(cè)試。
寄存器測(cè)試包括通用寄存器測(cè)試和與運(yùn)算相關(guān)的特殊寄存器測(cè)試。寄存器測(cè)試不僅檢測(cè)寄存器的固定故障,還會(huì)檢測(cè)寄存器之間的耦合故障;指令測(cè)試將PowerPC精簡(jiǎn)指令集結(jié)合安全計(jì)算機(jī)平臺(tái)的應(yīng)用所使用到的指令,按照指令的功能分為運(yùn)算、邏輯操作、移位、跳轉(zhuǎn)等若干類。根據(jù)預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果,依據(jù)EN50129標(biāo)準(zhǔn)的要求準(zhǔn)備若干組高診斷覆蓋率的數(shù)據(jù)作為輸入源。輸入源運(yùn)算得到的結(jié)果與輸入源對(duì)應(yīng)的預(yù)期結(jié)果比較,如果一致,則指令測(cè)試通過,如果有任意不一致,則指令測(cè)試不通過。
3、內(nèi)存檢測(cè)模塊c:
內(nèi)存測(cè)試模塊c對(duì)內(nèi)存進(jìn)行檢測(cè)。待測(cè)內(nèi)存區(qū)域由設(shè)備初始化模塊a獲取的內(nèi)存測(cè)試信息得到,分別對(duì)不可變內(nèi)存和可變內(nèi)存進(jìn)行檢測(cè)。所述的可變內(nèi)存測(cè)試采用的算法在不降低診斷覆蓋率的前提下降低算法復(fù)雜度,且無需考慮cache的影響。所述的不可變內(nèi)存測(cè)試采用的算法為在不降低診斷覆蓋率的前提下復(fù)雜度為32N的校驗(yàn)算法。
不可變內(nèi)存通過計(jì)算冗余校驗(yàn)碼與預(yù)期結(jié)果進(jìn)行比較,若一致,則不可變內(nèi)存測(cè)試通過,若不一致,則不可變內(nèi)存不通過;可變內(nèi)存測(cè)試采用優(yōu)化后的高診斷覆蓋率算法實(shí)現(xiàn),若算法結(jié)果通過,則將在線自檢的結(jié)果發(fā)送給外部校驗(yàn)裝置e進(jìn)行進(jìn)一步的安全防護(hù),若算法結(jié)果不通過,則可變內(nèi)存測(cè)試不通過。
4、失效處理模塊d:
失效處理模塊d將讓安全計(jì)算機(jī)進(jìn)入“失效-安全”狀態(tài),并保持“失效-安全”狀態(tài)。根據(jù)設(shè)備初始化模塊a的配置,選擇性地對(duì)人機(jī)接口 f提供顯式報(bào)警和在失效記錄裝置g中記錄失效信息。
本發(fā)明已經(jīng)被應(yīng)用于軌道交通信號(hào)領(lǐng)域的安全等級(jí)達(dá)到SIL4的安全計(jì)算機(jī)平臺(tái)中。在該安全計(jì)算機(jī)平臺(tái)的實(shí)際運(yùn)行中,本發(fā)明每周期在確定的時(shí)間段對(duì)CPU和2GB的內(nèi)存進(jìn)行檢測(cè),每周期的檢測(cè)不超過30毫秒,對(duì)所有待測(cè)對(duì)象完成一次完整的測(cè)試不超過30分鐘。本發(fā)明適用于嵌入式系統(tǒng)的所有安全計(jì)算機(jī)平臺(tái)。
權(quán)利要求
1.一種高效安全的計(jì)算機(jī)在線自檢方法,其特征在于,包括以下步驟: 1)啟動(dòng)在線自檢裝置,設(shè)備初始化模塊初始化在線自檢任務(wù),并分配各在線自檢任務(wù)所需使用的內(nèi)存空間; 2)獲取在線自檢的內(nèi)存測(cè)試所必須的內(nèi)存信息; 3)獲取預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果; 4)設(shè)備初始化模塊判斷是否獲取到繼續(xù)執(zhí)行在線自檢的信號(hào),若為是,則執(zhí)行步驟5);若為否,則繼續(xù)執(zhí)行步驟4); 5)CPU檢測(cè)模塊進(jìn)行CPU檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟6);若檢測(cè)到故障,則執(zhí)行步驟8); 6)內(nèi)存檢測(cè)模塊對(duì)不可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟7);若檢測(cè)到故障,則執(zhí)行步驟8); 7)內(nèi)存檢測(cè)模塊對(duì)可變內(nèi)存進(jìn)行檢測(cè),若未檢測(cè)到故障,則執(zhí)行步驟4);若檢測(cè)到故障,則執(zhí)行步驟8); 8)失效處理:失效處理模塊對(duì)檢測(cè)到的故障進(jìn)行相應(yīng)處理,并將故障信息進(jìn)行顯示報(bào)警和記錄。
2.根據(jù)權(quán)利要求1所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的CPU檢測(cè)寄存器測(cè)試和指令測(cè)試。
3.根據(jù)權(quán)利要求1所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的內(nèi)存檢測(cè)模塊可變內(nèi)存測(cè)試和不可變內(nèi)存測(cè)試。
4.根據(jù)權(quán)利要求2所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的寄存器測(cè)試的測(cè)試內(nèi)容包括各寄存器的固定故障和寄存器之間的耦合故障。
5.根據(jù)權(quán)利要求2所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的指令測(cè)試具體為:根據(jù)預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果,以測(cè)試數(shù)據(jù)作為輸入源,判斷輸入源運(yùn)算得到的結(jié)果與輸入源對(duì)應(yīng)的預(yù)期結(jié)果是否一致,若是,則指令測(cè)試通過,若否,則指令測(cè)試不通過。
6.根據(jù)權(quán)利要求3所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的可變內(nèi)存測(cè)試采用的算法在不降低診斷覆蓋率的前提下降低算法復(fù)雜度,且無需考慮cache的影響。
7.根據(jù)權(quán)利要求3所述的一種高效安全的計(jì)算機(jī)在線方法,其特征在于,所述的不可變內(nèi)存測(cè)試采用的算法為在不降低診斷覆蓋率的前提下復(fù)雜度為32N的校驗(yàn)算法。
8.—種如權(quán)利要求1所述的高效安全的計(jì)算機(jī)在線裝置,其特征在于,包括設(shè)備初始化模塊、CPU檢測(cè)模塊、內(nèi)存檢測(cè)模塊和失效處理模塊,所述的設(shè)備初始化模塊、CPU檢測(cè)模塊、內(nèi)存檢測(cè)模塊依次連接,失效處理模塊分別連接CPU檢測(cè)模塊和內(nèi)存檢測(cè)模塊。
9.根據(jù)權(quán)利要求8所述的一種高效安全的計(jì)算機(jī)在線裝置,其特征在于,所述的失效處理模塊人機(jī)接口和失效記錄裝置。
10.根據(jù)權(quán)利要求8所述的一種高效安全的計(jì)算機(jī)在線裝置,其特征在于,所述的內(nèi)存檢測(cè)模塊連接有外部校驗(yàn)裝置。
全文摘要
本發(fā)明涉及一種高效安全的計(jì)算機(jī)在線自檢方法及自檢裝置,所述的自檢方法包括設(shè)備初始化模塊初始化在線自檢任務(wù),并分配各在線自檢任務(wù)所需使用的內(nèi)存空間,獲取在線自檢的內(nèi)存測(cè)試所必須的內(nèi)存信息及預(yù)先設(shè)計(jì)好的測(cè)試數(shù)據(jù)和預(yù)期結(jié)果;獲取到繼續(xù)執(zhí)行在線自檢的信號(hào)后,依次執(zhí)行CPU檢測(cè)、內(nèi)存檢測(cè),并在檢測(cè)到故障時(shí)執(zhí)行失效處理,同時(shí)將故障信息進(jìn)行顯示報(bào)警和記錄;所述的自檢裝置包括設(shè)備初始化模塊、CPU檢測(cè)模塊、內(nèi)存檢測(cè)模塊和失效處理模塊。與現(xiàn)有技術(shù)相比,本發(fā)明結(jié)合內(nèi)存所存儲(chǔ)的數(shù)據(jù)特點(diǎn),對(duì)現(xiàn)有算法進(jìn)行優(yōu)化,具有自檢周期短、診斷覆蓋率高、執(zhí)行效率高、內(nèi)存資源獨(dú)立等優(yōu)點(diǎn)。
文檔編號(hào)G06F11/22GK103176876SQ20131008883
公開日2013年6月26日 申請(qǐng)日期2013年3月19日 優(yōu)先權(quán)日2013年3月19日
發(fā)明者孫軍峰, 王瀾, 崔丹, 耿進(jìn)龍, 張磊, 徐軍, 汪明新 申請(qǐng)人:卡斯柯信號(hào)有限公司