專利名稱:星載計算機硬件掃描錯誤恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種星載計算機掃描錯誤恢復(fù)方法,特別是一種星載計算機硬 件掃描錯誤恢復(fù)方法。
背景技術(shù):
目前,國內(nèi)外許多衛(wèi)星在星載計算機上實現(xiàn)了糾檢錯功能,例如我國的小
衛(wèi)星系列的星務(wù)主機,"計算機工程與科學(xué)"2002年第24巻第2期的《TS-1.1 小衛(wèi)星星務(wù)計算機RAM糾檢錯電路的設(shè)計與實現(xiàn)其實現(xiàn)的方法》,其采用了專 用具有EDAC功能的芯片,外加緩存,和EDAC控制器組成,如圖1所示。 該設(shè)計方法使得系統(tǒng)較為復(fù)雜,同時在實現(xiàn)過程中需要計算機參與較為頻繁, 計算機時間緊張。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種星載計算機硬 件掃描錯誤恢復(fù)方法,該方法降低了計算機參與的頻率,提高了星載計算機的 利用效率。
本發(fā)明的技術(shù)解決方案星載計算才/U更件掃描錯誤恢復(fù)方法,其特點在于 在星載計算機處理器的內(nèi)部總線與外部存儲器數(shù)據(jù)總線之間加有糾檢錯模塊, 硬件掃描錯誤恢復(fù)模塊直接掛在處理器內(nèi)總線上,實現(xiàn)如下
(1 )計算處理單元CPU發(fā)起讀取外部存儲器的命令,糾檢錯模塊根據(jù)CPU 的命令讀取所述的外部存儲器中的數(shù)據(jù)并糾檢錯,然后將糾檢錯后的數(shù)據(jù)發(fā)至
處理器內(nèi)總線上;
(2) 由計算處理單元CPU根據(jù)需要設(shè)定硬件掃描錯誤恢復(fù)模塊的掃描區(qū) 域、掃描速率、使能,啟動硬件掃描錯誤恢復(fù)模塊;
(3) 如果CPU已經(jīng)啟動了硬件掃描錯誤恢復(fù)模塊,則硬件掃描錯誤恢復(fù) 模塊根據(jù)處理器內(nèi)總線的狀態(tài)進行錯誤故障恢復(fù)掃描處理;
(4)由硬件掃描錯誤恢復(fù)模塊按照計算處理單元CPU設(shè)定的掃描區(qū)域、 掃描速率,根據(jù)處理器內(nèi)總線的狀態(tài)將位于處理器內(nèi)總線上糾錯后的數(shù)據(jù)再經(jīng) 過糾檢錯模塊寫回至外部儲存器,實現(xiàn)錯誤恢復(fù)功能。
所述的硬件掃描錯誤恢復(fù)模塊的功能通過硬件描述語言固化到處理器內(nèi) 部,根據(jù)內(nèi)總線的狀態(tài)采用狀態(tài)機實現(xiàn),分為如下幾個狀態(tài)
a. 空閑狀態(tài),當(dāng)計算處理單元CPU的控制已啟動,硬件掃描錯誤恢復(fù)模 塊從空閑狀態(tài)切換到下一個狀態(tài),即總線請求狀態(tài);
b. 總線請求狀態(tài),請求處理器內(nèi)總線的控制權(quán),當(dāng)硬件掃描錯誤恢復(fù)模塊 獲得控制權(quán),從總線請求狀態(tài)切換到下一個狀態(tài),即凄t據(jù)讀取控制狀態(tài);
c. 數(shù)據(jù)讀取控制狀態(tài),硬件掃描錯誤恢復(fù)模塊通過處理器內(nèi)總線送出地址 信號和控制信號給糾4企錯模塊,讀取控制狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)讀等 待狀態(tài);
d. 數(shù)據(jù)讀等待狀態(tài),等待外部存儲器的數(shù)據(jù),即糾檢錯模塊將糾抬,錯后的 外部儲存器的數(shù)據(jù)發(fā)送至處理器內(nèi)總線上,當(dāng)硬件掃描錯誤恢復(fù)模獲得外部存 儲器的數(shù)據(jù),數(shù)據(jù)讀等待狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)寫等待狀態(tài);
e. 數(shù)據(jù)寫等待狀態(tài),等待寫才喿作完成,即當(dāng)硬件掃描錯誤恢復(fù)模塊將獲得 外部存儲器的數(shù)據(jù)通過糾檢錯模塊寫回至外部存儲器,從而寫操作完成時,數(shù) 據(jù)寫等待狀態(tài)切換到下一個狀態(tài),即空閑狀態(tài);
如此循環(huán),硬件掃描錯誤恢復(fù)模塊即完成將位于處理器內(nèi)總線上糾錯后的 數(shù)據(jù)寫回至外部儲存器。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于
(1 )本發(fā)明通過采用糾檢錯模塊、硬件掃描錯誤恢復(fù)模塊,實現(xiàn)了對星載 計算機外圍存儲器進行錯誤恢復(fù),且掃描錯誤恢復(fù)是在星載計算機空閑時期進 行掃描的,降低了計算機參與的頻率,提高了星載計算機利用效率。
(2)本發(fā)明中的星載計算機只需配置好掃描區(qū)域和掃描頻率,大大簡化了 實現(xiàn)任務(wù),且星載計算機硬件掃描錯誤恢復(fù)功能通過硬件語言固化到芯片內(nèi)部,系統(tǒng)組成筒單,減少了硬件人工參與電路圖設(shè)計和調(diào)試,提高了星載計算機的 可靠性和安全性,解決了衛(wèi)星在軌時系統(tǒng)出現(xiàn)存儲器故障時,通過硬件自動掃 描,實時錯誤恢復(fù)的手段實現(xiàn)衛(wèi)星在軌存儲器自動修復(fù)的實際問題。
圖1為傳統(tǒng)計算機EDAC糾檢錯電路原理圖; 圖2為本發(fā)明的星栽計算機硬件掃描糾錯原理圖; 圖3為本發(fā)明的糾4企錯原理框圖4為本發(fā)明的星載計算機硬件掃描錯誤恢復(fù)模塊狀態(tài)機的狀態(tài)轉(zhuǎn)換圖; 圖5為本發(fā)明的整個系統(tǒng)工作流程圖。
具體實施例方式
如圖2所示,星載計算機處理器計算處理單元是整個星載計算機的核心部 件,負(fù)責(zé)指令的讀取及分析調(diào)度等工作,其由五大部件組成取指令部件、指 令譯碼部件、執(zhí)行部件、存儲器訪問部件、數(shù)據(jù)寫回部件。與五大部件相對應(yīng)
的為5級流水結(jié)構(gòu),它們是指令讀取、指令譯碼、指令執(zhí)行、指令存儲以及指 令回寫等五級流水,該星載計算機處理器的計算處理單元通過處理器內(nèi)總線與 外部存儲模塊、糾檢錯模塊和硬件掃描錯誤恢復(fù)模塊連接,通過內(nèi)總線獲取和 控制各功能部件。由于本發(fā)明的重點不在于星栽計算機結(jié)構(gòu)本身,所以星栽計 算機本身的功能和結(jié)構(gòu)是本領(lǐng)域公知技術(shù),為了進一步闡述本發(fā)明在此之前進 行了一下簡單的介紹。
本發(fā)明的重點是將硬件掃描錯誤恢復(fù)模塊、糾檢錯模塊和星載計算計的計 算處理單元CPU通過處理器內(nèi)總線進行連接,其中外部存儲器通過數(shù)據(jù)總線 和糾檢錯模塊連接,糾檢錯模塊連接再通過地址總線掛在處理器內(nèi)總線上,硬 件掃描錯誤恢復(fù)模塊直接桂在處理器內(nèi)部總線上,硬件掃描錯誤恢復(fù)模塊掃描 時處理器內(nèi)部總線數(shù)據(jù)的傳輸為鎖定傳輸,保證其他總線設(shè)備不會在硬件掃描 錯誤恢復(fù)模掃描存儲器的某一個數(shù)據(jù)單元時,修改數(shù)據(jù),造成數(shù)據(jù)錯誤。處理 器內(nèi)總線采用AMBA總線或WISHBONE總線,計算處理單元CPU采用x86 系列、或SPARC系列、或8031系列、或8051系列微處理器。
如圖3所示,糾檢錯模塊的功能通過硬件描述語言固化到處理器內(nèi)部。糾 檢錯模塊通過外部配置,根據(jù)總線寬度選擇可進行8位、或16位、或32位、 或64位存儲器的糾枱r錯邏輯,可以通過多選一開關(guān)實現(xiàn)。
在星載計算機開始運行時,就設(shè)置好總線寬度8位,或16位、或32位、 或64位,然后根據(jù)該設(shè)置寬度,對應(yīng)的總線寬度糾檢錯模塊邏輯開始工作, 該8位、或16位、或32位、或64位糾枱r4晉邏輯采用hamming算法,實現(xiàn)糾 正1位數(shù)據(jù),檢測2位數(shù)據(jù)。
下面以16位的CPU數(shù)據(jù)總線為例說明hamming算法,對于8位、32位 和64位的糾檢錯邏輯采用hamming算法與16位的相似。
假定信息源的位數(shù)為16,要構(gòu)造一種能夠糾正一位錯誤,檢查兩位錯誤的 編碼方式。根據(jù)"糾錯定理",需要設(shè)計最小漢明距離>4的碼組??梢圆捎镁€形 分組碼,利用線性分組碼的概念可以構(gòu)造六位監(jiān)督碼,它們由如下線性關(guān)系產(chǎn) 生
廣C0 = d0 《 & & ia e <af10 is 13 q ■= do '(!! 2 @ d 3 d 5 《 ^: 4 d14 C2 = < ra 2 <af4 45 < d 9 t3 12 (3 15
C+ = c 3 d4 ^ @ ra 6 fl 7 d13 d14 4 、C5 = iaf8 tj 9 <^。 cf12 d13 a 14
其中,d0~d15為16位數(shù)據(jù)(15為最高位MSB, 0為最低位LSB), C0 C5 為產(chǎn)生的六位監(jiān)督碼,表示進行異或運算。在數(shù)據(jù)讀出時,只需要考察伴隨式 S=[S0S1 S2S3S4S5],其中
廣別=C*0 d 0 ^ <a 3 < de a 9 d10 af13 51 = q d。
d2 d3 <i5 心 ^ €> <a u d1+ 」£7 = '(73<a 2 d4 iaf5 a 7 ii9 <a 12 <i15 1 £T3 = C3 ii0 ^ af2 dfe df7 df1Q du d13 = C4 d 3 d 4 a 5 <a 6 af7 flf13 《■ .ia 15 、= C5 £3 8 d 9 《0 《 《2 o 13 <a 14 <a 15
很容易證明,根據(jù)伴隨式進行誤差診斷。
當(dāng)S二
時,數(shù)據(jù)正確無誤;
當(dāng)S =
時,數(shù)據(jù)錯一位,并且錯誤發(fā)生在d0位,可將d0位的 數(shù)據(jù)取反加以糾正;
當(dāng)S =
時,數(shù)據(jù)錯一位,并且錯誤發(fā)生在d1位,可將d1位的 數(shù)據(jù)取反加以糾正;
當(dāng)S=[1 1 01 OO]時,數(shù)據(jù)錯一位,并且錯誤發(fā)生在d15位,可將d15位 的數(shù)據(jù)取反加以糾正;
當(dāng)S =
時,數(shù)據(jù)錯一位,并且錯誤發(fā)生在C5位;
當(dāng)S為其它情況時,至少發(fā)生兩位錯誤。
可以看出,這種編碼方式可以滿足自動糾正一位錯誤,而發(fā)現(xiàn)兩位l晉誤的 要求。
如圖4所示,硬件掃描錯誤恢復(fù)模塊采用狀態(tài)機實現(xiàn),共有以下幾個狀態(tài) (1 )空閑狀態(tài)當(dāng)計算處理單元CPU的控制啟動位為1,并且暫停位為0
時,硬件掃描錯誤恢復(fù)模塊狀態(tài)機從空閑狀態(tài)切換到下一個狀態(tài),即總線請求
狀態(tài);
(2) 總線請求狀態(tài)用于請求內(nèi)總線的控制權(quán),當(dāng)硬件掃描錯誤恢復(fù)模塊 狀態(tài)機獲得控制權(quán)后,狀態(tài)機從總線請求狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)讀取 控制狀態(tài);
(3) 數(shù)據(jù)讀取控制狀態(tài)用于送出地址信號和控制信號等,當(dāng)硬件掃描錯 誤恢復(fù)模塊通過處理器內(nèi)總線送出地址信號和控制信號給糾4企錯模塊后,狀態(tài) 機的讀取控制狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)讀等待狀態(tài);
(4) 數(shù)據(jù)讀等待狀態(tài)用于等待外部存儲器的數(shù)據(jù),即糾檢錯模塊將糾檢 錯后的外部儲存器的數(shù)據(jù)發(fā)送至處理器內(nèi)總線上,當(dāng)硬件掃描錯誤恢復(fù)模獲得 外部存儲器的數(shù)據(jù),狀態(tài)機的數(shù)據(jù)讀等待狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)寫等 待狀態(tài);
(5) 數(shù)據(jù)寫等待狀態(tài)用于等待寫操作完成,即當(dāng)硬件掃描錯誤恢復(fù)模塊
將獲得外部存儲器的數(shù)據(jù)通過糾檢錯模塊寫回至外部存儲器,從而寫操作完成
時,狀態(tài)機的數(shù)據(jù)寫等待狀態(tài)切換到下一個狀態(tài),即空閑狀態(tài);
如此循環(huán),硬件掃描錯誤恢復(fù)模塊即完成將位于處理器內(nèi)部總線上糾錯后 的數(shù)據(jù)寫回至外部儲存器。
如圖5所示,整個系統(tǒng)工作流程為,開始運行時,星載計算^/L的計算處理 單元CPU初始化硬件掃描錯誤恢復(fù)模塊的掃描頻率,掃描區(qū)域,使能功能, 即開始掃描和掃描結(jié)束的設(shè)定;然后,CPU就可以進^f亍其他工作,不再參與掃 描恢復(fù)功能,由硬件掃描錯誤恢復(fù)自動進行完成恢復(fù)工作。
使能功能根據(jù)星載計算機的實際工作情況進行設(shè)計,通過地面遙控命令開 啟和結(jié)束掃描;掃描頻率根據(jù)星載計算機的時鐘頻率設(shè)置;掃描區(qū)域根據(jù)星載 計算機存儲在外部存儲器的有效數(shù)據(jù)區(qū)大小設(shè)置;該掃描模塊各參數(shù)的設(shè)定原
則主要就是根據(jù)星載計算機的實際需求,進行靈活的設(shè)計。
本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有 技術(shù)。
盡管為說明目的公開了本發(fā)明的最佳實施例和附圖,但是本領(lǐng)域的技術(shù)人 員可以理解在不脫離本發(fā)明及所附的權(quán)利要求的精神和范圍內(nèi),各種替換、 變化和修改都是可能的。因此,本發(fā)明不應(yīng)局限于最佳實施例和附圖所公開的 內(nèi)容。
權(quán)利要求
1、星載計算機硬件掃描錯誤恢復(fù)方法,其特征在于在星載計算機處理器的內(nèi)總線與外部存儲器數(shù)據(jù)總線之間加有糾檢錯模塊,硬件掃描錯誤恢復(fù)模塊直接掛在處理器內(nèi)總線上,實現(xiàn)如下(1)計算處理單元CPU發(fā)起讀取外部存儲器的命令,糾檢錯模塊根據(jù)CPU的命令讀取所述的外部存儲器中的數(shù)據(jù)并糾檢錯,然后將糾檢錯后的數(shù)據(jù)發(fā)至處理器內(nèi)總線上;(2)由計算處理單元CPU根據(jù)需要設(shè)定硬件掃描錯誤恢復(fù)模塊的掃描區(qū)域、掃描速率、使能,啟動硬件掃描錯誤恢復(fù)模塊;(3)如果CPU已經(jīng)啟動了硬件掃描錯誤恢復(fù)模塊,則硬件掃描錯誤恢復(fù)模塊根據(jù)處理器內(nèi)總線的狀態(tài)進行錯誤故障恢復(fù)掃描處理;(4)由硬件掃描錯誤恢復(fù)模塊按照計算處理單元CPU設(shè)定的掃描區(qū)域、掃描速率,根據(jù)處理器內(nèi)總線的狀態(tài)將位于處理器內(nèi)總線上糾錯后的數(shù)據(jù)再經(jīng)過糾檢錯模塊寫回至外部存儲器,實現(xiàn)錯誤恢復(fù)功能。
2、 根據(jù)權(quán)利要求1所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特征在 于所述的硬件掃描錯誤恢復(fù)模塊的功能通過硬件描述語言固化到處理器內(nèi)部, 根據(jù)處理器內(nèi)總線的狀態(tài)釆用狀態(tài)機實現(xiàn),分為如下幾個狀態(tài)a. 空閑狀態(tài),當(dāng)計算處理單元CPU的控制已啟動,硬件掃描錯誤恢復(fù)才莫 塊從空閑狀態(tài)切換到下一個狀態(tài),即總線請求狀態(tài);b. 總線請求狀態(tài),請求處理器內(nèi)總線的控制權(quán),當(dāng)硬件掃描錯誤恢復(fù)模塊 獲得控制權(quán),從總線請求狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)讀取控制狀態(tài);c. 數(shù)據(jù)讀取控制狀態(tài),硬件掃描錯誤恢復(fù)模塊通過處理器內(nèi)總線送出地址 信號和控制信號給糾檢錯模塊,然后讀取控制狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù) 讀等待狀態(tài);d. 數(shù)據(jù)讀等待狀態(tài),等待外部存儲器的數(shù)據(jù),即糾4企錯模塊將糾才企錯后的 外部儲存器的數(shù)據(jù)發(fā)送至處理器內(nèi)總線上,當(dāng)硬件掃描錯誤恢復(fù)模獲得外部存儲器的數(shù)據(jù),數(shù)據(jù)讀等待狀態(tài)切換到下一個狀態(tài),即數(shù)據(jù)寫等待狀態(tài);e.數(shù)據(jù)寫等待狀態(tài),等待寫操作完成,即當(dāng)硬件掃描錯誤恢復(fù)模塊將獲得外部存儲器的數(shù)據(jù)通過糾檢錯模塊寫回至外部存儲器,從而寫操作完成時,數(shù)據(jù)寫等待狀態(tài)切換到下一個狀態(tài),即空閑狀態(tài);如此循環(huán),硬件掃描錯誤恢復(fù)模塊即完成將位于處理器內(nèi)總線上糾錯后的數(shù)據(jù)寫回至外部儲存器。
3、 根據(jù)權(quán)利要求1或2所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特 征在于所述的硬件掃描錯誤恢復(fù)模塊掃描時處理器內(nèi)總線數(shù)據(jù)的傳輸為鎖定 傳輸,保證其他總線設(shè)備不會在硬件掃描錯誤恢復(fù)模掃描存儲器的某一個數(shù)據(jù) 單元時,修改數(shù)據(jù),造成數(shù)據(jù)錯誤。
4、 根據(jù)權(quán)利要求1或所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特征 在于所述的糾檢錯模塊的功能通過硬件描述語言固化到處理器內(nèi)部。
5、 根據(jù)權(quán)利要求1或4所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特 征在于所述的糾檢錯模塊根據(jù)總線寬度選擇8位糾檢錯邏輯、或16位糾檢 錯邏輯、或32位糾枱r錯邏輯、或64位糾抬r錯邏輯,通過多選一開關(guān)實現(xiàn)。
6、 根據(jù)權(quán)利要求5所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特征在 于所述的糾檢錯邏輯采用hamming算法實現(xiàn)糾正1位數(shù)據(jù),檢測2位數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特征在 于所述的處理器內(nèi)總線釆用AMBA總線或WISHBONE總線。
8、 根據(jù)權(quán)利要求1所述的星載計算機硬件掃描錯誤恢復(fù)方法,其特征在 于所述的計算處理單元CPU采用x86系列、或SPARC系列、或8031系列、 或8051系列微處理器。
全文摘要
星載計算機硬件掃描錯誤恢復(fù)方法(1)糾檢錯模塊讀取外部存儲器中的數(shù)據(jù)進行糾錯,并將糾錯后的數(shù)據(jù)發(fā)至處理器內(nèi)總線上,等待與處理器總線連接的計算處理單元CPU的命令;(2)CPU設(shè)定硬件掃描錯誤恢復(fù)模塊的掃描區(qū)域、掃描速率、使能功能,啟動硬件掃描錯誤恢復(fù)模塊;(3)由硬件掃描錯誤恢復(fù)模塊按照CPU確定的掃描區(qū)域、掃描速率,將位于處理器內(nèi)部總線上糾錯后的數(shù)據(jù)再經(jīng)過糾檢錯模塊寫回至外部儲存器,實現(xiàn)錯誤恢復(fù)功能。本發(fā)明提高了衛(wèi)星星載計算機的容錯性和可靠性,降低了衛(wèi)星在軌運行的風(fēng)險,解決了衛(wèi)星在軌時系統(tǒng)出現(xiàn)存儲器故障時,通過硬件自動掃描,實時錯誤恢復(fù)的手段實現(xiàn)衛(wèi)星在軌存儲器自動修復(fù)的實際問題。
文檔編號G06F11/10GK101349978SQ200810118040
公開日2009年1月21日 申請日期2008年8月7日 優(yōu)先權(quán)日2008年8月7日
發(fā)明者施思寒, 李孝同 申請人:航天東方紅衛(wèi)星有限公司