鄭 磊, 高曉光, 張國全
(西北工業(yè)大學(xué)電子信息學(xué)院,西安 710129)
隨著軟件和微電子技術(shù)的高度發(fā)展,航空電子架構(gòu)正由聯(lián)合式計(jì)算控制單元向高度綜合化的計(jì)算處理模塊轉(zhuǎn)變,綜合模塊化航空電子[1](Integrated Modular Avionics,IMA)就是其中的典型代表之一。IMA引入了魯棒的時(shí)間和空間分區(qū)機(jī)制使各種航電功能高度綜合在一起,使其在共享系統(tǒng)資源時(shí)具有相互獨(dú)立性,在保證系統(tǒng)安全性的前提下減少了航電系統(tǒng)的重量和體積,并一定程度地增強(qiáng)了系統(tǒng)的可維護(hù)性[2]。系統(tǒng)復(fù)雜度的增加使得對(duì)其安全性的保障尤為重要,IMA的測試和驗(yàn)證活動(dòng)要伴隨著整個(gè)IMA的生命周期過程[3]。
IMA帶來的航電新特性主要是由其航電功能的空間和時(shí)間的分區(qū)[4-5]來實(shí)現(xiàn)的。時(shí)間分區(qū)主要由IMA的系統(tǒng)級(jí)調(diào)度實(shí)現(xiàn),這一機(jī)制給每個(gè)分區(qū)分配了一定的執(zhí)行時(shí)間,從而使各個(gè)分區(qū)輪流得到執(zhí)行。一個(gè)健壯的分區(qū)系統(tǒng)要滿足不同關(guān)鍵等級(jí)的分區(qū)在同一個(gè)模塊中執(zhí)行時(shí)不會(huì)在空間和時(shí)間上互相影響,這樣的結(jié)構(gòu)使系統(tǒng)具有了高度的容錯(cuò)性。
本文提出一種時(shí)間分區(qū)測試的方法,并采用IMA分區(qū)調(diào)度模型對(duì)該方法進(jìn)行分析,最后對(duì)模擬測試結(jié)果的時(shí)序特性進(jìn)行總結(jié)。
IMA的測試環(huán)境主要由測試系統(tǒng)和待測系統(tǒng)組成:測試系統(tǒng)主要進(jìn)行測試指令的發(fā)送以及測試結(jié)果的接收和分析;待測試系統(tǒng)接收測試系統(tǒng)的測試指令,完成測試動(dòng)作后向測試系統(tǒng)返回測試結(jié)果。
在IMA的系統(tǒng)綜合測試階段[6],可以將待測系統(tǒng)看成是配置和應(yīng)用的組合:配置分為測試配置和真實(shí)配置;應(yīng)用分為測試應(yīng)用和真實(shí)應(yīng)用。根據(jù)測試的階段和目標(biāo),IMA模塊可以使用測試配置或者是部分或全部的真實(shí)配置;運(yùn)行在各個(gè)分區(qū)中的應(yīng)用可以是真實(shí)應(yīng)用也可以是測試應(yīng)用。為了測試IMA模塊的時(shí)間分區(qū)特性,時(shí)間分區(qū)測試采用的是測試配置和測試應(yīng)用。
時(shí)間分區(qū)測試需求就是當(dāng)某一個(gè)或多個(gè)分區(qū)發(fā)生故障導(dǎo)致分區(qū)停止運(yùn)行時(shí),其他分區(qū)的運(yùn)行狀態(tài)不會(huì)受到性能或功能上的影響[7]。為了觀察到發(fā)生故障時(shí)其他分區(qū)的運(yùn)行狀態(tài),要使用某種方式使系統(tǒng)的運(yùn)行狀態(tài)能夠顯式地表現(xiàn)出來,測試應(yīng)用可以完成這一任務(wù)。為了說明測試應(yīng)用在測試過程中的行為,本文以一個(gè)具有4個(gè)分區(qū)的IMA待測平臺(tái)為例進(jìn)行說明,如圖1所示。
圖1 測試應(yīng)用行為Fig.1 The behavior of test application
這里的測試應(yīng)用由3個(gè)非周期的測試進(jìn)程組成。當(dāng)待測平臺(tái)接收到由測試系統(tǒng)發(fā)出的測試開始指令時(shí),當(dāng)前運(yùn)行的分區(qū)就開始執(zhí)行預(yù)定的進(jìn)程。比如待測平臺(tái)接收到測試開始指令時(shí),分區(qū)B正在運(yùn)行,那么測試應(yīng)用B中的測試進(jìn)程a首先要記錄接收到指令的時(shí)間,并生成一個(gè)包括這個(gè)時(shí)間信息的消息和CRC校驗(yàn)信息,然后將這個(gè)消息向測試進(jìn)程b發(fā)送;測試進(jìn)程b接收到這個(gè)消息后首先要記錄接收到消息的時(shí)間,校驗(yàn)消息的CRC,然后將接收時(shí)間加入到這一消息中生成一個(gè)新的消息并連同新的CRC校驗(yàn)信息一起發(fā)送到測試進(jìn)程c;測試進(jìn)程c重復(fù)測試進(jìn)程b的動(dòng)作,最后將具有各個(gè)階段生成的時(shí)間信息的消息發(fā)送回測試系統(tǒng)。當(dāng)所有的測試應(yīng)用都完成這一過程后,就可以獲得4個(gè)分區(qū)的當(dāng)前運(yùn)行狀態(tài)信息。觀察某一分區(qū)發(fā)生故障的情況下其他分區(qū)的運(yùn)行狀態(tài),可以通過調(diào)用操作系統(tǒng)的API來向待測系統(tǒng)發(fā)送測試指令,使某一分區(qū)關(guān)閉。
這樣,測試結(jié)果由3個(gè)時(shí)間信息組成,分別是測試進(jìn)程a的任務(wù)開始時(shí)間Ta,測試進(jìn)程b收到消息的時(shí)間Tb和進(jìn)程c收到消息的時(shí)間Tc。但是由于存在分區(qū)調(diào)度,各個(gè)分區(qū)測試進(jìn)程的執(zhí)行會(huì)受到分區(qū)時(shí)間窗口的限制。如圖2所示,分區(qū)A中,測試進(jìn)程b的運(yùn)行被分區(qū)A與分區(qū)B的時(shí)間窗口WAB打斷。這樣一來,當(dāng)分區(qū)A中的測試進(jìn)程c接收到消息時(shí),時(shí)間已經(jīng)延后了WDA-WAB,而這屬于系統(tǒng)運(yùn)行的正常現(xiàn)象,并不是分區(qū)處理性能受到影響造成的。所以,為了更加準(zhǔn)確地表現(xiàn)系統(tǒng)的運(yùn)行狀態(tài),各個(gè)測試進(jìn)程除了要記錄接收到消息的時(shí)刻,還要記錄被分區(qū)窗口打斷的時(shí)刻和進(jìn)程恢復(fù)運(yùn)行的時(shí)刻(分別對(duì)應(yīng)一個(gè)分區(qū)段的結(jié)束和開始)。
圖2 分區(qū)A中測試進(jìn)程b被分成兩部分Fig.2 Test prosess b was divided into two parts in partition A
測試系統(tǒng)獲得的消息可以用一個(gè)向量來描述(Ta,Wa1,Wa2,Tb,Wb1,Wb2,Tc,Wc1Wc2)。其中:Ta,Tb,Tc分別為測試進(jìn)程a的任務(wù)開始時(shí)間,測試進(jìn)程b接收到消息的時(shí)間和進(jìn)程c接收到消息的時(shí)間;Wa1,Wb1,Wc1分別為測試進(jìn)程a,b,c遭遇分區(qū)窗口中斷的時(shí)刻;Wa2,Wb2,Wc2分別為進(jìn)程遭遇中斷后恢復(fù)運(yùn)行的時(shí)間。
從測試結(jié)果中可以獲得兩方面的信息:1)各個(gè)分區(qū)中測試進(jìn)程b接收到測試進(jìn)程a發(fā)送的消息的時(shí)間間隔Tab和測試進(jìn)程c接收到測試進(jìn)程b發(fā)送的消息的時(shí)間間隔Tbc;2)各個(gè)分區(qū)的時(shí)間窗口信息。
Tab與Tbc可分別按式(1)和式(2)計(jì)算。
其中:MX為分區(qū)X相鄰兩次運(yùn)行的時(shí)間間隔;取,分別為各個(gè)分區(qū)段的期望運(yùn)行時(shí)間。
如果分區(qū)方式如圖2所示,那么在一個(gè)主幀時(shí)間范圍內(nèi)包含的分區(qū)節(jié)點(diǎn)依次分別為 WAB,WBC,WCD,WDA,它們的值分別為各個(gè)分區(qū)的 Wa1,Wb1,Wc1中第一個(gè)非零值。
在測試方法設(shè)計(jì)的早期階段,使用真實(shí)的待測平臺(tái)和測試系統(tǒng)會(huì)增加不必要的工作量,使用待測平臺(tái)的仿真模型可以解決這一問題。為了表明時(shí)間分區(qū)測試結(jié)果的時(shí)序特性,使用IMA的分區(qū)調(diào)度模型可以生成符合IMA時(shí)序特征的數(shù)據(jù)。
分區(qū)調(diào)度實(shí)質(zhì)上為無占先限制的無搶占調(diào)度[8],文獻(xiàn)[9]中給出了分區(qū)調(diào)度設(shè)計(jì)的方法。設(shè)P為m個(gè)分區(qū)的集合,即 P={p1,p2,…,pm}。對(duì)任一分區(qū) pj∈P,Dj為分區(qū)pj的執(zhí)行時(shí)間,Mj為分區(qū)pj的運(yùn)行周期,顯然有Dj≤Mj。當(dāng)任一分區(qū)開始執(zhí)行后,不會(huì)受到相同模塊上的其他分區(qū)的干擾。這里的時(shí)間由時(shí)間單元來度量,時(shí)間單元也就是相等長度的時(shí)間區(qū)間,以Δt表示時(shí)間單元長度。以s(pj)表示分區(qū)pj的開始時(shí)間,若其在時(shí)間單元t開始運(yùn)行,有s(pj)=t,其中t=1,2,…。已知分區(qū)pj的運(yùn)行時(shí)間為Dj個(gè)時(shí)間單元,那么實(shí)際開始運(yùn)行時(shí)間就是時(shí)間單元t的起始時(shí)間,運(yùn)行結(jié)束時(shí)間則為時(shí)間單元t+Dj-1的結(jié)束時(shí)間。類似的,以 pj[k]表示分區(qū) pj的第 k 次運(yùn)行,若 pj[k]在時(shí)間單元t開始運(yùn)行,那么pj[k+1]就在時(shí)間單元t+Mj開始運(yùn)行,也就是說分區(qū)pj每Mj個(gè)時(shí)間單元之后運(yùn)行一次。由于分區(qū)運(yùn)行的周期性,只要確定了各個(gè)分區(qū)的開始運(yùn)行時(shí)間,分區(qū)的各次運(yùn)行時(shí)間也就確定了。因此,分區(qū)調(diào)度S可由一個(gè)m維向量S=(s(p1),s(p2),…,s(pm))來確定,其中1≤s(pj)≤Mj。分區(qū)調(diào)度本身也是周期性的,一個(gè)分區(qū)調(diào)度的重復(fù)周期叫做主幀MAF[10],等于各個(gè)分區(qū)周期的最小公倍數(shù),即FMAF=lcm(T1,T2,…,Tm)。
圖3所示為IMA分區(qū)調(diào)度模型,主要由3部分組成。
圖3 IMA分區(qū)調(diào)度模型Fig.3 IMA partition scheduling model
1)任務(wù)時(shí)間預(yù)更新:根據(jù)當(dāng)前系統(tǒng)時(shí)間,判斷系統(tǒng)的當(dāng)前時(shí)間窗口和活動(dòng)分區(qū)。選擇當(dāng)前活動(dòng)分區(qū)中下一個(gè)測試進(jìn)程,并獲得這一測試進(jìn)程的運(yùn)行時(shí)間與當(dāng)前系統(tǒng)時(shí)間的累加值。
2)調(diào)度邏輯判斷:根據(jù)時(shí)間預(yù)更新的結(jié)果,判斷進(jìn)程是否被分區(qū)窗口打斷。
3)任務(wù)時(shí)間更新:若進(jìn)程未被分區(qū)窗口打斷,更新并記錄當(dāng)前分區(qū)當(dāng)前進(jìn)程的開始時(shí)刻與結(jié)束時(shí)刻;反之則更新并記錄當(dāng)前分區(qū)當(dāng)前進(jìn)程的開始時(shí)刻和分區(qū)時(shí)間窗口中斷時(shí)刻,保存當(dāng)前分區(qū)中被分區(qū)中斷的進(jìn)程的剩余執(zhí)行時(shí)間信息,并指定下一個(gè)分區(qū)窗口所屬的分區(qū)為當(dāng)前活動(dòng)分區(qū)。
利用上述調(diào)度仿真模型,可以生成時(shí)間分區(qū)測試的模擬測試結(jié)果。
初始化一個(gè)具有4個(gè)分區(qū)的IMA待測模塊。分區(qū) A,B,C,D 的周期分別為 TA=100 ms,TB=100 ms,TC=100 ms,TD=200 ms;期望運(yùn)行時(shí)間分別為DA'=30 ms,DB'=20 ms,DC'=20 ms,,主幀 FMAF=200 ms,單位時(shí)間區(qū)間長度為Δt=1 ms,它的分區(qū)時(shí)間窗口如圖4所示。
圖4 分區(qū)時(shí)間窗口Fig.4 Partition time windows
圖4 中,一個(gè)主幀時(shí)間內(nèi)包含有10個(gè)分區(qū)節(jié)點(diǎn),依次分別為 WIA1,WAB1,WBC1,WCD1,WDI1,WIA2,WAB2,WBC2,WCD2,WDI2。當(dāng)測試開始于圖示位置時(shí),分區(qū)節(jié)點(diǎn)與測試結(jié)果的對(duì)應(yīng)關(guān)系見表1。其中:表示分區(qū)P的 Wa1、Wb1、Wc1中第 1 個(gè)非零值;表示分區(qū) P的Wa1、Wb1、Wc1中第 2 個(gè)非零值;與同理。
表1 分區(qū)節(jié)點(diǎn)與測試結(jié)果的對(duì)應(yīng)關(guān)系Table 1 The relationship between partition nodes and test results
各個(gè)分區(qū)中的測試應(yīng)用的執(zhí)行時(shí)間如表2所示,其中,Δ為隨機(jī)時(shí)間抖動(dòng),|Δ|=2 ms。
表3和表4分別列出了向待測系統(tǒng)發(fā)送關(guān)閉分區(qū)B指令前后的兩次測試結(jié)果,開始時(shí)刻分別為t1=1.853 s和 t2=2.253 s。
從表3與表4所列出的數(shù)據(jù)中可以看出分區(qū)A的數(shù)據(jù)出現(xiàn)了兩個(gè)問題:1)Wa1,Wb1,Wc1三個(gè)數(shù)據(jù)中只有一個(gè)非零值;2)Wa2,Wb2,Wc2三個(gè)數(shù)據(jù)中只有一個(gè)非零值。
表2 各個(gè)分區(qū)中的測試應(yīng)用的執(zhí)行時(shí)間Table 2 The execution time of process in different partitions
表3 分區(qū)關(guān)閉指令發(fā)送前一次測試結(jié)果Table 3 The test results before the order s
表4 分區(qū)B關(guān)閉指令后的一次測試結(jié)果Table 4 The test results after the order s
由于分區(qū)A中的3個(gè)測試進(jìn)程的累加運(yùn)行時(shí)間小于在一個(gè)主幀時(shí)間內(nèi)的分區(qū)運(yùn)行時(shí)間(2DA),導(dǎo)致在一個(gè)主幀時(shí)間內(nèi)只能得到一個(gè)非零。在關(guān)閉分區(qū)B指令發(fā)送前 ,可以從表4分區(qū)B的數(shù)據(jù)中獲得WAB1的值但是當(dāng)分區(qū)B關(guān)閉后無法獲得 WAB1的值,造成了數(shù)據(jù)的丟失。
由于分區(qū)A的前一個(gè)相鄰分區(qū)是空閑分區(qū),因此分區(qū)A時(shí)間窗口的開始時(shí)刻WIA1和WIA2只能由進(jìn)程遭遇中斷后恢復(fù)運(yùn)行的時(shí)間來記錄,但是當(dāng)測試開始于非A分區(qū)的其他分區(qū)時(shí),分區(qū)的第一次運(yùn)行無法獲得這一數(shù)據(jù)。此時(shí),應(yīng)當(dāng)將進(jìn)程a的開始時(shí)間算作分區(qū)A第一個(gè)時(shí)間窗口,即WIA2=TAa。
本文針對(duì)IMA時(shí)間分區(qū)測試問題建立了IMA分區(qū)調(diào)度仿真模型,使用該仿真模型進(jìn)行測試方法設(shè)計(jì)降低了系統(tǒng)復(fù)雜度,減少了不必要的工作量,適用于測試方案的早期設(shè)計(jì)。對(duì)IMA測試研究仍需要更加完備的實(shí)時(shí)硬件系統(tǒng)和操作系統(tǒng)的仿真。
[1] ARINC 651.Design guidance for integrated modular avionics[Z].1991.
[2] 陳娟.ARINC653分區(qū)操作系統(tǒng)在綜合模塊化航空電子系統(tǒng)中的應(yīng)用[J].電訊技術(shù),2009(5):89-92.
[3] RTCA DO-297.Guidance and certification considerations for integrated modular avionics[Z].2005.
[4] JOHNSON L A.Software considerations in airborne systems and equipment certification[Z].1992.
[5] RUSHBY J.Partitioning on avionics architectures:Requirements,mechanisms,and assurance[R].NASA,1999.
[6] VON ALIKI O.System testing in the avionics domain[DB/OL].http://www.informatlk.uni-bremen.de/~ tsio/papers/Aliki_Ott_dissertation.pdf,2007.
[7] ARINC 653-1.Avionics application software standard interface[Z].2003.
[8] KORST J.Periodic multiprocessor scheduling[D].Eindhoven the Netherlands:Eindhoven university of technology,1992.
[9] 何峰,宋麗茹,熊華鋼.航空電子分區(qū)層次調(diào)度模型及其優(yōu)化設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào),2009,19:6004-6008.
[10] LEE Y H.Resource scheduling in dependable integrated modular avionics[C]//NY USA,2000:14-23.