未收到判斷結(jié)果,則一直等待,系統(tǒng)安全輸出。
[0031] 有益效果:
[0032] (1)四個處理器系統(tǒng)之間采用同步串行通道進行連接,能夠在各處理器間建立快 速信息傳輸通道,用以傳送狀態(tài)請求及需要表決的信息;采用處理器狀態(tài)同步的方式確保 各處理器系統(tǒng)在各表決點能步調(diào)一致發(fā)出啟動信號,達到任務(wù)級同步運行;根據(jù)同步和表 決結(jié)果,識別是否存在故障處理器,確定哪個處理器是當(dāng)班機;在發(fā)生故障的情況下,管理 系統(tǒng)降級,隔離故障處理器系統(tǒng),并在降級模式下繼續(xù)工作。
[0033] (2)提高故障處理器定位準(zhǔn)確度:在四機模式、三機模式下,均可準(zhǔn)確定位故障處 理器,為后續(xù)系統(tǒng)資源調(diào)度、降級管理、故障隔離等提供了技術(shù)基礎(chǔ)。
[0034] (3)提高系統(tǒng)資源利用率:由于提高了故障處理器定位精度,可以獲知通道中哪 個處理器處于完好狀態(tài)并再加以利用,避免了現(xiàn)有技術(shù)通道整體切換造成的資源浪費。 [0035] (4)消除系統(tǒng)單點故障隱患:通過四機間的信息交互及在每個處理器內(nèi)實現(xiàn)表決 機制,確定系統(tǒng)正確輸出結(jié)果,完成故障處理器定位,當(dāng)班處理器確定,并由當(dāng)班處理器完 成輸出控制等,避免了現(xiàn)有技術(shù)對外部獨立仲裁單元的需求,消除了系統(tǒng)單點故障隱患,提 高了系統(tǒng)可靠性。
[0036] (5)提升系統(tǒng)容錯能力:本發(fā)明使系統(tǒng)的容錯能力從一次故障工作,二次故障安全 提升到二次故障工作,三次故障安全。
【附圖說明】
[0037] 圖1為現(xiàn)有的非相似雙余度四機架構(gòu)示意圖。
[0038] 圖2為本發(fā)明的非相似雙余度四機自監(jiān)控架構(gòu)示意圖。
[0039] 圖3為本發(fā)明控制方法下非相似雙余度四機的工作模式狀態(tài)轉(zhuǎn)移示意圖。
[0040] 圖4為當(dāng)班機與一個處理器系統(tǒng)的信息交互通路故障,仍保持四機模式。其中,(a) 四機模式下,處理器A當(dāng)班;(b)A收不到B信息;(c)B收不到A信息;(d)A、B收不到對方信息。
[0041] 圖5為當(dāng)班處理器故障,四機模式降為三機模式。其中,(a)處理器A發(fā)出錯誤數(shù)據(jù); (b)處理器A無數(shù)據(jù)發(fā)出;(c)與兩個處理器系統(tǒng)信息交互通路故障。
[0042]圖6為當(dāng)班機幾種線路故障,保持三機模式。其中,(a)C收不到B信息;(b)B收不到C 信息;(c)B、C收不到對方信息;(d)B收不到D信息,C收不到B信息,D收不到C信息;(e)B、C收 不到對方信息,同時B收不到D信息。
[0043]圖7為當(dāng)班機故障,三機模式降級為雙機模式。(a)處理器B發(fā)出錯誤數(shù)據(jù);(b)處 理器B無數(shù)據(jù)發(fā)出。
【具體實施方式】
[0044]下面結(jié)合附圖并舉實施例,對本發(fā)明進行詳細描述。
[0045]本發(fā)明提供了一種非相似雙余度四機自監(jiān)控容錯控制方法,四個處理器同時執(zhí)行 相同的任務(wù),各處理器系統(tǒng)之間采用CCDL進行兩兩之間的信息交互,各處理器系統(tǒng)依據(jù)其 收到的其他處理器發(fā)送的任務(wù)運算結(jié)果和自己完成的任務(wù)運算結(jié)果,進行對比,確定最終 的運算結(jié)果,并按照預(yù)先設(shè)置的處理器優(yōu)先級順序,判斷當(dāng)前任務(wù)的當(dāng)班機,由當(dāng)班機輸出 該任務(wù)的最終運算結(jié)果,當(dāng)班機輸出的最終運算結(jié)果即為非相似雙余度四機系統(tǒng)的該任務(wù) 最終運算結(jié)果,如圖2所示。
[0046] 將四個處理器分別編號為A、B、C、D,任意時刻,僅有一個處理器作為當(dāng)班機,即作 為主控處理器,預(yù)設(shè)的當(dāng)選當(dāng)班機的處理器的優(yōu)先級順序由高至低依次為A>B>C>D,即處理 器A優(yōu)先級最高,處理器D優(yōu)先級最低。四個處理器系統(tǒng)之間采用同步串行通道進行連接,每 個處理器都設(shè)有三個信息發(fā)送通路,用于向其它三個處理器發(fā)送信息,以及三個信息接收 通路,用于接收其它三個處理器的信息。每個通路有兩條信號線,一條為時鐘線,一條數(shù)據(jù) 線,時鐘信號與數(shù)據(jù)信號均由發(fā)送方負(fù)責(zé)驅(qū)動。
[0047]將整個任務(wù)周期按功能需求劃分成若干個子任務(wù)周期,四個處理器同時執(zhí)行相同 的子任務(wù),每個處理器都可通過同步串行通道與其它處理器進行信息交互,獲取另外三個 處理器的運行狀態(tài)和運算結(jié)果,同時將自己的運行狀態(tài)和運算結(jié)果發(fā)送給另外三個處理 器。由于各處理器之間的處理速度不同,導(dǎo)致相同子任務(wù)的完成時間不同,因此,將每個子 任務(wù)分配固定的完成時間片,在每個子任務(wù)的起始處設(shè)置任務(wù)開始同步點。其中,子任務(wù)的 完成時間片長度一般可以設(shè)置為運算速度最慢的處理器完成該子任務(wù)所需時間的預(yù)估值 和一段冗余時間之和。設(shè)置任務(wù)開始同步點時,4個處理器通過發(fā)送、接收同步請求,實現(xiàn)子 任務(wù)的同步執(zhí)行。
[0048]各處理器同時從任務(wù)開始同步點開始執(zhí)行相同的子任務(wù),完成子任務(wù)后,將自己 的運行狀態(tài)和運算結(jié)果發(fā)送給另外三個處理器,等待并接收其他處理器發(fā)來的運行狀態(tài)和 運算結(jié)果,當(dāng)該子任務(wù)的完成時間片結(jié)束后,各處理器將自己的運算結(jié)果和收到的運算結(jié) 果進行少數(shù)服從多數(shù)的判決,形成一致的最終運算結(jié)果,并判斷與最終運算結(jié)果不一致的 處理器為故障機,判斷當(dāng)前優(yōu)先級最高的非故障機為當(dāng)班機,并將故障機和當(dāng)班機判斷結(jié) 果發(fā)送至其他處理器;各處理器接收其他處理發(fā)送的判斷結(jié)果,對所有判斷結(jié)果進行少數(shù) 服從多數(shù)的判決,形成一致的最終的當(dāng)班機和故障機判斷結(jié)果。最終判斷為故障機的處理 器不參與之后的子任務(wù)運算結(jié)果的對比。最終判斷為當(dāng)班機的處理器輸出最終運算結(jié)果。 當(dāng)各處理器認(rèn)定的當(dāng)班機均不一致時,系統(tǒng)輸出預(yù)設(shè)的安全信號。
[0049] 由于處理器不管運算速度快慢,均需要等待子任務(wù)的完成時間片結(jié)束后才進行當(dāng) 班機和故障機的判定,因此,可以選擇處理速度最慢的處理器為優(yōu)先級最高,處理速度最快 的處理器為優(yōu)先級最低,從而可以讓處理速度快的處理器在完成當(dāng)前子任務(wù)的運算后,去 做其他的運算,提高系統(tǒng)的資源利用率。
[0050] 下面以處理器A為例壽命具體的工作流程,處理器B、處理器C和處理器D做同樣操 作:
[0051 ] (1)第i個子任務(wù)的起始處,處理器A通過CCDL向其它三個處理器發(fā)出同步請求 Req-a-Ι,等待其它三個處理器的同步請求;轉(zhuǎn)步驟(2);
[0052] (2)分四種情況:
[0053] (2.1)收到其它三個處理器的同步請求后,處理器A產(chǎn)生自己的子任務(wù)啟動信號, 并根據(jù)自身時鐘執(zhí)行任務(wù);轉(zhuǎn)步驟(3);
[0054] (2.2)只收到兩個處理器的響應(yīng),則繼續(xù)等待另一處理器,同時啟動超時計數(shù)器, 如規(guī)定的超時時間內(nèi)未接收該處理器響應(yīng),則設(shè)置該處理器故障標(biāo)志Fault-a-x,處理器A 產(chǎn)生自己的子任務(wù)啟動信號,并根據(jù)自身時鐘執(zhí)行任務(wù);轉(zhuǎn)步驟(3);
[0055] (2.3)只收到一個處理器的響應(yīng),則繼續(xù)等待另兩個處理器,同時啟動超時計數(shù) 器,如果在規(guī)定的超時時間內(nèi)收到兩個處理器響應(yīng),則處理器A產(chǎn)生自己的子任務(wù)啟動信 號,并根據(jù)自身時鐘執(zhí)行任務(wù),轉(zhuǎn)步驟(3);如果在規(guī)定的超時時間內(nèi)只收到一個處理器響 應(yīng),則設(shè)置未響應(yīng)的處理器故障標(biāo)志Fault-a-x,處理器A產(chǎn)生自己的子任務(wù)啟動信號,并根 據(jù)自身時鐘執(zhí)行任務(wù),轉(zhuǎn)步驟(3);如在規(guī)定的超時時間內(nèi)未接收到任何響應(yīng),則處理器A- 直等待,處理器A無法進行下面的步驟,在之后的表決點處會被其它處理器識別并標(biāo)識為故 障;
[0056] (2.4)無其它處理器響應(yīng)到達,則處理器A-直等待;處理器A無法進行下面的步 驟,在之后的表決點處會被其它處理器識別并標(biāo)識為故障;
[0057] (3)處理器A完成子任務(wù)后,通過CCDL將運算結(jié)果Result-a及握手請求信號Req-a- 2發(fā)送給其它三個處理器,等待其它處理器的運算結(jié)果及握手請求信號;轉(zhuǎn)步驟(4);
[0058] (4)分四種情況:
[0059] (4.1)在收到其它三個處理器的運算結(jié)果及握手請求信號后,處理器A對接收到的 所有輸出結(jié)果進行少數(shù)服從多數(shù)的表決,形成一致的、正確的輸出結(jié)果Result;轉(zhuǎn)步驟(5); [0060] (4.2)只收到兩個處理器的運算結(jié)果及握手請求信號,則繼續(xù)等待另一處理器,同 時啟動超時計數(shù)器,如規(guī)定的超時時間內(nèi)未接收該處理器響應(yīng),則設(shè)置該處理器故障 Fault-a-x,并用無效數(shù)據(jù)代替其運算結(jié)果,處理器A對接收到的所有運算結(jié)果進行少數(shù)服 從多數(shù)的表決,形成