梁欣穎,王旭昊
(中國航空工業(yè)集團公司西安航空計算技術(shù)研究所,西安 710065)
時間調(diào)度表是一種基于時間分區(qū)的調(diào)度方法,該方法將處理器時間劃分區(qū),分區(qū)之間采用時間窗口調(diào)度機制,通過時間調(diào)度表進行配置,分區(qū)間沒有優(yōu)先級之分[1]。余度系統(tǒng)一般采用雙握手的同步方法消除雙通道間的時間差[2],在基于時間調(diào)度表的雙通道系統(tǒng)中,加電同步采用傳統(tǒng)的同步方法可以消除系統(tǒng)上電后進入實時處理前的時間差,但是周期同步是在實時任務(wù)中處理的,實時任務(wù)本身被劃分在某個時間窗口內(nèi),該時間窗口固定,因此雙握手方法失效。為解決該問題,本文提出了一種基于時間調(diào)度表的雙通道同步方法。
該雙通道系統(tǒng)的任務(wù)周期可分為10ms和40ms,如系統(tǒng)控制功能和重構(gòu)系統(tǒng)的任務(wù)的周期為10ms;該系統(tǒng)與其他系統(tǒng)的信息通信、部分控制計算功能周期為40ms。為保證通道間數(shù)據(jù)的一致性以及數(shù)據(jù)的延時,采用基于時間調(diào)度表的確定性的時序調(diào)度,具體時序見圖1。我們將實時任務(wù)定為一個大幀周期為40ms,可分為4個小幀,每個小幀10ms。每個小幀被劃分為5個時間窗P1到P5,T1到T5為五個任務(wù)隊列,分別對應(yīng)五個時間窗。每小幀的任務(wù)隊列必須在對應(yīng)的時間窗口內(nèi)完成。其中T4任務(wù)隊列的周期為40ms,且T4任務(wù)隊列若順序執(zhí)行,其執(zhí)行時間大于10ms,故將T4任務(wù)隊列組劃分為四個子任務(wù)隊列,T4-1到T4-4,每小幀的P4窗口僅執(zhí)行一個子任務(wù)隊列。
為保證兩通道的每個小幀同時開始執(zhí)行,需要每小幀進行周期同步,這種同步方式,我們稱為小幀同步,小幀同步屬于T1任務(wù)。對于其他任務(wù),這樣的策略可以滿足同步的要求,但對于T4任務(wù),需進行大幀同步。為保證雙通道間T4任務(wù)的一致性,我們對大幀的四個小幀增加一個小幀號,根據(jù)小幀號決定當(dāng)前時間窗執(zhí)行哪個子任務(wù),即保證雙通道的小幀號一致。大幀同步也屬于T1任務(wù)隊列。
圖1 控制時序圖
若采用傳統(tǒng)的雙握手策略,假設(shè)A、B通道當(dāng)前系統(tǒng)時間差為TD,第一次握手采用確定時間的高電平輸出,第二次握手采用低電平,一旦檢測到對方為低,則第二次握手結(jié)束,最長等待時間一定,當(dāng)?shù)竭_如圖2所示的同步點時,雙通道暫時達到了同步的目的,其余的T1任務(wù)可認(rèn)為是同一時刻執(zhí)行。由于T1任務(wù)處于時間窗P1,雙通道的P1相同,當(dāng)P1的時間窗結(jié)束時,時間差TD’重新出現(xiàn),小幀同步失效。
為消除時間窗對雙握手策略的影響,分區(qū)P1采用可調(diào)整的時間窗。第一次握手前,先檢測對方通道是否先執(zhí)行小幀同步任務(wù)(即檢測到對方輸出高電平),若對方通道先執(zhí)行,則將本通道的分區(qū)P1時間窗減小若干個調(diào)度周期。這樣,當(dāng)P1的時間窗口結(jié)束時,不會出現(xiàn)新的較大的時間差,見圖3。
圖2 P1調(diào)整前
圖3 P1調(diào)整后
大幀同步的目的在于雙通道間的小幀號一致,使得在相同時刻大任務(wù)幀內(nèi)P4窗口執(zhí)行的T4的子任務(wù)相同。在小幀同步成功后,大幀同步通過通道間通訊來讀取對方通道的小幀序號來進行同步判斷。
在大任務(wù)幀的最后一幀(即第4小幀)進行一次大幀同步,從交叉?zhèn)鬏數(shù)臄?shù)據(jù)中獲取對方通道的小幀號,與本通道小幀號對比,若一致則大幀同步成功,否則大幀同步失敗。大幀同步應(yīng)在小幀同步后進行。
(1)小幀再同步。當(dāng)小幀失步(即小幀同步失敗,雙握手不成功)后,需遵循備份跟隨主控的原則讓備份跟上主控的節(jié)拍,該處理措施稱為小幀再同步。再同步過程中需關(guān)閉中斷,故不需要再對時間窗口進行調(diào)整。
主控通道失步后,主控通道不進行同步恢復(fù);備份通道失步后,應(yīng)立即再握手,第一次握手查詢時間應(yīng)大于正常同步查詢時間,第二次握手查詢時間遠大于正常同步查詢時間;若再握手失敗,備份通道可以取消小幀同步并上報小幀再同步失敗。為了增加小幀再同步成功的概率,可以將小幀再同步的握手過程重復(fù)若干次。
(2)大幀同步恢復(fù)。當(dāng)大幀同步失敗后,也遵循備份跟隨主控的原則讓備份跟上主控的節(jié)拍。具體方法為主控通道不做處理,備用通道將本通道的小幀號設(shè)置為主通道的小幀號,直到最后一幀再次檢測到大幀同步成功。
本文通過對采用分區(qū)調(diào)度時間的確定性雙余度系統(tǒng)同步需求的分析,提出了一種可調(diào)整分區(qū)的雙通道同步方法。該方法采用小幀同步和大幀同步相結(jié)合的周期同步策略,并給出了同步失敗后的同步恢復(fù)處理措施。為雙余度系統(tǒng)的高可靠性提供基石。該方法可廣泛應(yīng)用于采用確定性時間調(diào)度的余度系統(tǒng)的同步機制中。