本發(fā)明涉及一種存儲(chǔ)器數(shù)據(jù)分層校驗(yàn)方法,尤其涉及一種針對(duì)宇航用計(jì)算機(jī)存儲(chǔ)器的數(shù)據(jù)分層校驗(yàn)方法。
背景技術(shù):
因宇航領(lǐng)域的不可維護(hù)性,要求宇航系統(tǒng)自身具有較高的可靠性。宇航用計(jì)算機(jī)一般通過冗余備份技術(shù)提高系統(tǒng)可靠性,實(shí)現(xiàn)方式包括硬件冗余、軟件冗余、信息冗余等。宇航用計(jì)算機(jī)針對(duì)存儲(chǔ)器的可靠性方式主要有存儲(chǔ)器硬件冗余、EDAC錯(cuò)誤檢測(cè)與糾正(信息冗余)等。受宇航用計(jì)算機(jī)使用環(huán)境中各類宇宙射線的影響,宇航用計(jì)算機(jī)經(jīng)常發(fā)生存儲(chǔ)器翻轉(zhuǎn)異常,如果不能及時(shí)準(zhǔn)確地檢測(cè)與修復(fù)發(fā)生翻轉(zhuǎn)異常的存儲(chǔ)器地址,則無法保障軟件存儲(chǔ)和運(yùn)行安全。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種存儲(chǔ)器數(shù)據(jù)分層校驗(yàn)方法,能快速準(zhǔn)確地定位發(fā)生存儲(chǔ)器多位翻轉(zhuǎn)異常的地址空間,能及時(shí)糾正存儲(chǔ)器單位翻轉(zhuǎn)異常和多位翻轉(zhuǎn)異常,保證存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù)持續(xù)穩(wěn)定可靠,軟件實(shí)現(xiàn)簡(jiǎn)單,成本低廉。
為了達(dá)到上述目的,本發(fā)明提供一種存儲(chǔ)器數(shù)據(jù)分層校驗(yàn)方法,包含以下步驟:
對(duì)存儲(chǔ)器的所有空間進(jìn)行讀操作,如果發(fā)現(xiàn)存儲(chǔ)器單位翻轉(zhuǎn)異常,將讀取的該單位翻轉(zhuǎn)異常地址的數(shù)據(jù)作為操作數(shù)回寫到該單位翻轉(zhuǎn)異常地址,完成對(duì)存儲(chǔ)器單位翻轉(zhuǎn)異常的修復(fù),如果發(fā)現(xiàn)存儲(chǔ)器多位翻轉(zhuǎn)異常,將該多位翻轉(zhuǎn)異常的地址本身作為操作數(shù)回寫到該多位翻轉(zhuǎn)異常地址,并標(biāo)記該多位翻轉(zhuǎn)異常地址,對(duì)該多位翻轉(zhuǎn)異常地址中存儲(chǔ)的三份完全相同的數(shù)據(jù)進(jìn)行“三取二”檢查,將“三取二”檢查結(jié)果作為操作數(shù)回寫到該多位翻轉(zhuǎn)異常地址。
在將“三取二”檢查結(jié)果作為操作數(shù)回寫到該多位翻轉(zhuǎn)異常地址后,進(jìn)行修復(fù)確認(rèn)操作,完成對(duì)存儲(chǔ)器多位翻轉(zhuǎn)異常的修復(fù);
所述的修復(fù)確認(rèn)操作是指:檢查該多位翻轉(zhuǎn)異常地址中的數(shù)據(jù)內(nèi)容是否為該多位翻轉(zhuǎn)異常地址本身。
本發(fā)明使用異常地址本身作為數(shù)據(jù)回寫,能快速準(zhǔn)確地定位發(fā)生存儲(chǔ)器多位翻轉(zhuǎn)異常的地址空間,進(jìn)而使其得以修復(fù),能及時(shí)糾正存儲(chǔ)器單位翻轉(zhuǎn)異常和多位翻轉(zhuǎn)異常,保證存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù)持續(xù)穩(wěn)定可靠,且不需要專用宇航計(jì)算機(jī)硬件外設(shè),軟件實(shí)現(xiàn)簡(jiǎn)單,成本低廉。
附圖說明
圖1是本發(fā)明的流程示意圖。
圖2是本發(fā)明的具體實(shí)施例的示意圖。
具體實(shí)施方式
以下根據(jù)圖1和圖2具體說明本發(fā)明的較佳實(shí)施例。
如圖1所示,本發(fā)明提供一種存儲(chǔ)器數(shù)據(jù)分層校驗(yàn)方法,包含以下步驟:
步驟S1、第一層校驗(yàn);
對(duì)存儲(chǔ)器的所有空間進(jìn)行讀操作,檢查存儲(chǔ)器中是否存在翻轉(zhuǎn)異常,如果發(fā)現(xiàn)存儲(chǔ)器單位翻轉(zhuǎn)異常,進(jìn)行步驟S2,如果發(fā)現(xiàn)存儲(chǔ)器多位翻轉(zhuǎn)異常,進(jìn)行步驟S3;
步驟S2、進(jìn)行單位異?;貙懖僮?,將讀取的該異常地址的數(shù)據(jù)作為操作數(shù)回寫到該異常地址,并返回步驟S1;
步驟S3、進(jìn)行多位異?;貙懖僮?,將該翻轉(zhuǎn)異常的地址本身作為操作數(shù)回寫到該異常地址,并標(biāo)記該異常地址,進(jìn)行步驟S4;
步驟S4、第二層校驗(yàn);
對(duì)存儲(chǔ)器中存儲(chǔ)的三份完全相同的數(shù)據(jù)(如執(zhí)行程序原碼、軟件參數(shù)、軟件運(yùn)行過程數(shù)據(jù))進(jìn)行字“三取二”檢查,當(dāng)檢索到已標(biāo)記的存儲(chǔ)器多位異常地址時(shí),將“三取二”檢查結(jié)果作為操作數(shù)回寫到該異常地址,完成對(duì)存儲(chǔ)器多位翻轉(zhuǎn)異常的修復(fù),并返回步驟S1。
如圖2所示,在本發(fā)明的一個(gè)具體實(shí)施例中,使用宇航用計(jì)算機(jī)中的EDAC模塊進(jìn)行第一層校驗(yàn)。
宇航用處理器執(zhí)行存儲(chǔ)器讀操作程序,從存儲(chǔ)器初始地址Aa1開始順序執(zhí)行讀操作,讀取數(shù)據(jù)Da1、Da2、……、Dan、Db1、Db2、……、Dbn、Dc1、Dc2、……、Dcn,其中,a、b、c為存儲(chǔ)器標(biāo)識(shí),代表三份完全相同的數(shù)據(jù),1~n為存儲(chǔ)器空間序號(hào)。
讀取已發(fā)生存儲(chǔ)器單位翻轉(zhuǎn)的地址Aij的數(shù)據(jù)Dij時(shí)(其中,i為存儲(chǔ)器標(biāo)識(shí),i=a、b、c,j為存儲(chǔ)器空間序號(hào),j=1~n),宇航用計(jì)算機(jī)中的EDAC模塊發(fā)出異常錯(cuò)誤提示,按照?qǐng)D1中①進(jìn)入EDAC單位異常服務(wù)程序,將讀取的數(shù)據(jù)Dij直接作為操作數(shù)回寫到地址Aij中,處理完成后按照?qǐng)D1中②返回到存儲(chǔ)器讀操作程序。
讀取已發(fā)生存儲(chǔ)器多位翻轉(zhuǎn)的地址Ai’j’的數(shù)據(jù)Di’j’時(shí)(其中,i’為存儲(chǔ)器標(biāo)識(shí),i’=a、b、c,j’為存儲(chǔ)器空間序號(hào),j’=1~n),宇航用計(jì)算機(jī)中的EDAC模塊發(fā)出異常錯(cuò)誤提示,按照?qǐng)D1中③進(jìn)入EDAC多位異常服務(wù)程序,將該翻轉(zhuǎn)異常的地址Ai’j’本身作為操作數(shù)回寫到地址Ai’j’中,標(biāo)記出該異常地址,處理完成后按照?qǐng)D1中④進(jìn)入到“三取二”檢查程序。
采用數(shù)據(jù)“三取二”方法進(jìn)行第二層校驗(yàn),宇航用處理器執(zhí)行“三取二”檢查修復(fù)程序,按順序讀存儲(chǔ)器中存儲(chǔ)的對(duì)應(yīng)存儲(chǔ)器地址Aaj、Abj、Acj的三份完全相同的字?jǐn)?shù)據(jù)Daj、Dbj、Dcj,若Daj=Dbj且Daj=Dcj,則繼續(xù)檢索,當(dāng)檢索到已標(biāo)記的異常地址時(shí),從異常地址對(duì)應(yīng)的三個(gè)存儲(chǔ)器地址Aaj’、Abj’、Acj’中讀取到數(shù)據(jù)Daj’、Dbj’、Dcj’,進(jìn)行“三取二”檢查,具體來說,若Daj’=Dbj’,且Daj’≠Dcj’,則將Daj’作為數(shù)據(jù)寫入Dcj’對(duì)應(yīng)的存儲(chǔ)器地址Acj’;若Daj’≠Dbj’,且Daj’=Dcj’,則將Daj’作為數(shù)據(jù)寫入Dbj’對(duì)應(yīng)的存儲(chǔ)器地址Abj’;若Dan≠Dbj’,且Dbj’=Dcj’,則將Dbj’作為數(shù)據(jù)寫入Daj’對(duì)應(yīng)的存儲(chǔ)器地址Aaj’,同時(shí)通過檢查異常地址的內(nèi)容為Ai’j’確認(rèn)修復(fù)過程,完成修復(fù)操作后,繼續(xù)檢索其他已標(biāo)記的異常地址,待全部檢查修復(fù)操作完成后按圖1中⑤返回到存儲(chǔ)器讀操作程序。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:使用異常地址本身作為數(shù)據(jù)回寫,能快速準(zhǔn)確地定位發(fā)生存儲(chǔ)器多位翻轉(zhuǎn)異常的地址空間,進(jìn)而使其得以修復(fù),能及時(shí)糾正存儲(chǔ)器單位翻轉(zhuǎn)異常和多位翻轉(zhuǎn)異常,保證存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù)持續(xù)穩(wěn)定可靠,且不需要專用宇航計(jì)算機(jī)硬件外設(shè),軟件實(shí)現(xiàn)簡(jiǎn)單,成本低廉。
盡管本發(fā)明的內(nèi)容已經(jīng)通過上述優(yōu)選實(shí)施例作了詳細(xì)介紹,但應(yīng)當(dāng)認(rèn)識(shí)到上述的描述不應(yīng)被認(rèn)為是對(duì)本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對(duì)于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護(hù)范圍應(yīng)由所附的權(quán)利要求來限定。