袁海英,王翌晨
(北京工業(yè)大學(xué)信息學(xué)部,北京 100000)
航電網(wǎng)絡(luò)負(fù)責(zé)航電系統(tǒng)各組件之間的互連通信,執(zhí)行任務(wù)時,網(wǎng)絡(luò)通信必須保持穩(wěn)定性、耐久性和安全性[1]。時間觸發(fā)以太網(wǎng)(TTE)在標(biāo)準(zhǔn)以太網(wǎng)IEEE 802.3基礎(chǔ)上,加入時間觸發(fā)(TT)機(jī)制,建立全局時鐘同步,具有高帶寬和高實時特點(diǎn),從而廣泛應(yīng)用于安全關(guān)鍵系統(tǒng)中[2],成為新一代航空航天網(wǎng)絡(luò)技術(shù)發(fā)展的新趨勢。TTE消息由TT消息、速率受限(RC)消息和盡力傳(BE)消息構(gòu)成。服務(wù)質(zhì)量要求最高的TT消息,根據(jù)靜態(tài)調(diào)度表執(zhí)行發(fā)送和轉(zhuǎn)發(fā)任務(wù),確保通信具有嚴(yán)格的時間確定性。較低優(yōu)先級的RC消息,利用TT消息傳輸?shù)目臻e時隙發(fā)送,最低優(yōu)先級的BE消息盡力傳輸,從而滿足不同服務(wù)質(zhì)量要求的信息傳輸需求。兼顧其他消息傳輸性能,合理建立TT消息靜態(tài)調(diào)度表是TTE調(diào)度問題的研究熱點(diǎn)。
文獻(xiàn)[3]提出SMT求解法,通過建立一組約束條件,實現(xiàn)靜態(tài)調(diào)度表求解?;诟咝阅躍MT求解器生成靜態(tài)調(diào)度表的方法有Z3[4]和Boolector[5]。在SMT基礎(chǔ)上,文獻(xiàn)[6]提出了逐級迭代沖突回溯方法,進(jìn)一步優(yōu)化了調(diào)度結(jié)果;文獻(xiàn)[7-8]采用啟發(fā)式算法生成靜態(tài)調(diào)度表,求解速度更快,但求解結(jié)果不一定為最優(yōu)解;文獻(xiàn)[9]創(chuàng)新性地使用了IBM Ilog Cplex求解器求解調(diào)度表;文獻(xiàn)[10-11]分別通過對TT流量進(jìn)行增量化調(diào)度和對實時任務(wù)調(diào)度時間進(jìn)行分塊,將調(diào)度模型轉(zhuǎn)化為一個具有更少決策變量的約束規(guī)劃模型,相較于SMT大幅度提升了求解速度。上述方法在建立TT消息調(diào)度表時忽略TT消息對RC消息的影響。文獻(xiàn)[12]通過對各端系統(tǒng)的時刻調(diào)度表進(jìn)行分區(qū),整合網(wǎng)絡(luò)資源,減少了RC流量的延遲;文獻(xiàn)[13]在SMT求解的基礎(chǔ)上,采用基于貪婪隨機(jī)自適應(yīng)搜索法的TTE通信調(diào)度算法,降低了RC消息的端到端延遲。
基于約束規(guī)劃的TTE調(diào)度算法設(shè)計思想,本文提出了一種基于快速增量的TTE優(yōu)化調(diào)度技術(shù),有效提升RC消息傳輸性能。
TTE在各個通信設(shè)備間采用雙工通信,星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。該網(wǎng)絡(luò)具有6個通信設(shè)備節(jié)點(diǎn),其中,交換機(jī)節(jié)點(diǎn)1個,終端設(shè)備節(jié)點(diǎn)5個,帶有雙向箭頭的實線代表支持雙工通信的物理鏈路。
圖1 TTE網(wǎng)絡(luò)拓?fù)銯ig.1 TTE network topology
TTE網(wǎng)絡(luò)模型定義如下。
采用無向圖G=(V,E)表示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。其中,集合V={v1,…,vm}表示該網(wǎng)絡(luò)具有m個通信設(shè)備(終端設(shè)備和交換機(jī));集合E= {[va,vb],[vb,vc],…,[vy,vz]}表示該網(wǎng)絡(luò)數(shù)據(jù)鏈路集合,其元素為相鄰?fù)ㄐ旁O(shè)備組成的數(shù)組。
TT消息集合由TM={tm,0,…,tm,n-1}表示,每個TT消息由tm,i={st,m,i,tt,m,i,lt,m,i,ft,m,i}表示。其中:st,m,i表示該消息的幀長;tt,m,i表示該消息的發(fā)送周期;lt,m,i表示該消息容忍的最大端到端延遲;ft,m,i表示該消息在網(wǎng)絡(luò)中的傳播路徑。
RC消息集合由RM={rm,0,…,rm,n-1}表示,每個RC消息由rm,i={sr,m,i,tr,m,i,lr,m,i,fr,m,i}表示。其中:sr,m,i表示該消息的幀長;tr,m,i表示該消息的發(fā)送間隔;lr,m,i表示該消息容忍的最大端到端延遲;fr,m,i表示該消息在網(wǎng)絡(luò)中的傳播路徑。
終端v1向交換機(jī)v4發(fā)送TT消息tm,1和RC消息rm,1,tm,1={12 208, 4.9216E-5, 9.8432E-5,{[v1,v3],[v3,v4]}},rm,1={12 208,4.9216E-5,9.8432E-5,{[v1,v3],[v3,v4]}}。終端v2向交換機(jī)v4發(fā)送TT消息tm,2,tm,2={12 208,9.8432E-5,9.8432E-5,{[v2,v3],[v3,v4]}}。假設(shè)TTE通信速率為1 Gibit/s,則1.2304E-5 s為一個基本調(diào)度單元。假設(shè)交換機(jī)轉(zhuǎn)發(fā)延遲為1.2304E-5 s,交換機(jī)發(fā)送端口的緩沖區(qū)所能容納的最長時間為4.9216E-5 s。
TT消息對RC消息的影響如圖2所示。
圖2 TT消息對RC消息的影響Fig.2 Influence of TT messages on RC messages
圖2(a)展示了未考慮RC消息端到端延遲時生成的TT消息調(diào)度情況,RC 消息最大端到端延遲為 4.9216E-5 s。調(diào)整tm,2發(fā)送偏移量,優(yōu)化后的消息調(diào)度情況見圖2(b)。在未改變TT消息端到端延遲的情況下,增加tm,1和tm,2的發(fā)送偏移量間隔,減少了rm,1因長時間等待高優(yōu)先級TT消息傳輸而造成的端到端延遲,rm,1的最大端到端延遲減少至3.6912E-5 s,平均端到端延遲也隨之減小。這表明降低TT消息對RC消息傳輸性能影響的問題可以轉(zhuǎn)化為:在保障TT消息可調(diào)度的前提下,將同一鏈路上任意兩個TT消息的發(fā)送間隔盡可能增大,通過縮短RC消息的等待時間,減少RC消息的端到端延遲,提升網(wǎng)絡(luò)傳輸性能。
基于約束規(guī)劃思想,設(shè)置TT消息傳輸約束,通過對基本調(diào)度單元采取乘二放大和加一放大,更新TT消息調(diào)度表,快速增大TT消息的發(fā)送偏移量間隔。采用回溯算法修正因基本調(diào)度單元增大而導(dǎo)致的延遲誤差?;厮輹r,對TT消息在基本調(diào)度單元中的位置進(jìn)行調(diào)整,得到優(yōu)化后靜態(tài)調(diào)度表。
通常,航空航天綜合電子系統(tǒng)等安全關(guān)鍵系統(tǒng)內(nèi)部各個組件之間通信關(guān)鍵消息的負(fù)載較小[11],此時每個通信消息對應(yīng)一個TT消息。以最長以太網(wǎng)幀的傳輸時間作為最小基本調(diào)度單元進(jìn)行求解,調(diào)度時刻和調(diào)度周期皆為基本調(diào)度單元的倍數(shù)關(guān)系。通過將靜態(tài)調(diào)度表求解問題轉(zhuǎn)化為混合整數(shù)規(guī)劃問題,減少約束變量,提高了求解速度。
調(diào)度表求解算法通過IBM Ilog Cplex求解器實現(xiàn),并將其封裝為CpoModel模塊,求解器需要添加以下3個約束。
1) 鏈路無沖突約束。任意兩個TT消息在數(shù)據(jù)鏈路不會發(fā)生時間上的沖突,即
(1)
2) 多跳約束。TT消息在本跳的完成時刻應(yīng)該早于下一跳的開始時刻。多跳約束最大值為交換機(jī)的發(fā)送緩沖區(qū)大小,最小值為交換機(jī)的轉(zhuǎn)發(fā)延遲,即
(2)
式中,mem_bound和fwd_delay分別為交換機(jī)發(fā)送端口緩沖區(qū)所能容納的最長時間和交換機(jī)轉(zhuǎn)發(fā)延遲與基本調(diào)度單元的商。
3) 端到端延遲約束。TT消息的端到端延遲小于通信設(shè)備上實時應(yīng)用所能容忍的最大端到端延遲,即
(3)
式中,max_latency為最大端到端延遲與基本調(diào)度單元長度的商。
快速增量過程如下。
input:networkG,message setMand basic dispatching unitb
output:schedule number setR
1 basic dispatching unittb←b;
2 schedule number setN←NULL;
5foreachmessageminMdo
7ifIsNotInteger(GetDispatchingUnit(m))then
9end
一個燥熱的夏日,我握住筆的手微微顫抖,看著滿是紅叉的試卷,努力控制著情緒。抬眼撞上小宇那玩世不恭的神情,怒火不可遏制地席卷而來。我揚(yáng)起手,怒目圓睜,他卻將臉迎向我,露出無所畏懼的表情,仿佛在說:“你打我又如何?”就這樣,伴隨著窗外學(xué)生嬉笑打鬧、穿梭奔跑的喧嘩聲,師生間進(jìn)行著沒有硝煙的對峙。
10end
11ifi≠Truethen
13end
14else
16N←CpoModel(G,M).solve();
17tb←tb×2;
18end
19whileN=NULL;
20do
22foreachmessageminMdo
24ifIsNotInteger(GetDispatchingUnit(m))then
26end
27end
28ifi≠Truethen
30end
31else
33N←CpoModel(G,M).solve();
34tb←tb+b;
35end
36whileN=NULL;
輸入網(wǎng)絡(luò)拓?fù)淠P虶、TT消息模型M和初始基本調(diào)度單元長度b,得到靜態(tài)調(diào)度表R。首先對基本調(diào)度單元采取乘二放大,即循環(huán)放大基本調(diào)度單元至當(dāng)前基本調(diào)度單元的2倍?;菊{(diào)度單元放大時,TT消息周期不變,調(diào)度周期會減小,故遍歷TT消息,使用GetDispatchingUnit()得到各消息調(diào)度周期。若調(diào)度周期不為整數(shù),跳過此次放大操作;若為整數(shù),使用UpdateMessage()更新調(diào)度周期,然后使用調(diào)度表求解模塊CpoModel(G,M).solve()解得當(dāng)前基本調(diào)度單元下靜態(tài)調(diào)度表R并保存。停止循環(huán)的判斷條件為不能得到滿足約束的TT消息靜態(tài)調(diào)度表,即R為空。結(jié)束乘二放大后,開始加一放大,即在當(dāng)前基本調(diào)度單元的基礎(chǔ)上循環(huán)增加初始基本調(diào)度單元。放大過程以及停止循環(huán)的判斷條件與乘二放大相同。完成所有放大操作后,該基本調(diào)度單元為滿足TT消息可調(diào)度的最大基本調(diào)度單元。在1 Gibit/s傳輸速率下初始基本調(diào)度單元設(shè)置為1.2304E-5 s。
多跳TTE中,每次經(jīng)過交換機(jī),都將交換機(jī)處理延遲計入TT消息調(diào)度時間。由于傳輸時間按照基本調(diào)度單元進(jìn)行切片劃分,設(shè)置的交換機(jī)處理延遲隨著基本調(diào)度單元的增加而增加,因此需要修正這種偏差。
修正過程采用回溯方式,輸入TT消息模型M和靜態(tài)調(diào)度表R。遍歷TT消息,使用GetLastLink() 得到各TT消息最后一跳的調(diào)度序號傳入前端或者后端復(fù)位函數(shù)Reset()進(jìn)行處理,然后使用GetPriorLink()回溯至上一跳,每當(dāng)經(jīng)過一個交換機(jī)時,使用SetTime()函數(shù)更新當(dāng)前TT消息調(diào)度時刻以及該TT消息后續(xù)跳轉(zhuǎn)的調(diào)度時刻,直至回溯至源端通信設(shè)備,最終得到優(yōu)化后的TT消息靜態(tài)調(diào)度表R。
由于基本調(diào)度單元不斷放大,TT消息實際長度不變,因此需要對TT消息在基本調(diào)度單元中的位置進(jìn)行復(fù)位調(diào)整。復(fù)位函數(shù)Reset()可分為前端復(fù)位和后端復(fù)位。前端復(fù)位函數(shù)為
r=b×s+d
(4)
后端復(fù)位函數(shù)為
r=b×s+(b÷d-1)×b
(5)
其中:r為真實調(diào)度時刻;b為增量后基本調(diào)度單元長度;s為調(diào)度序號;d為基本調(diào)度單元初始長度。
對基于快速增量的TTE優(yōu)化調(diào)度技術(shù)進(jìn)行性能仿真,仿真平臺為Windows10,Intel?CoreTMi7-10710U CPU@1.10 GHz,16 GiB RAM。
按照圖1構(gòu)建網(wǎng)絡(luò)拓?fù)?,目?biāo)網(wǎng)絡(luò)為具有1個交換機(jī)和5個終端設(shè)備的星形拓?fù)浣Y(jié)構(gòu),交換機(jī)與終端設(shè)備通過數(shù)據(jù)鏈路相鄰。設(shè)置該網(wǎng)絡(luò)中存在10條廣播TT消息,源端設(shè)備隨機(jī)生成,TT消息周期從集合{2.4608E-4, 4.9216E-4}中隨機(jī)選擇。TT消息設(shè)置以及基于約束規(guī)劃和快速增量調(diào)度算法的靜態(tài)調(diào)度表見表1,該表僅展示基于兩種調(diào)度算法的TT消息源端設(shè)備發(fā)送時刻,而交換機(jī)接收、發(fā)送時刻可由此推得。
表1 基于兩種調(diào)度算法的TT消息對比Table 1 Comparison of TT messages based on two scheduling algorithms s
根據(jù)網(wǎng)絡(luò)拓?fù)?、消息情況以及靜態(tài)調(diào)度表設(shè)置仿真環(huán)境。仿真環(huán)境包括開源網(wǎng)絡(luò)仿真軟件OMNeT++5.5.1以及框架INET-Framework和CoRE4INET。為模擬真實網(wǎng)絡(luò)環(huán)境,所有通信節(jié)點(diǎn)的晶振最大漂移值設(shè)置為200×10-6,晶振周期漂移變化范圍為uniform(-100×10-6,100×10-6)。物理鏈路設(shè)置為長10 m、物理傳輸速率2E+8 m/s的光纖,帶寬配置為1 Gibit/s。仿真最小時間單位為16 ns,即各節(jié)點(diǎn)的晶振周期為62.5 MHz。
設(shè)置5條RC消息,源端設(shè)備為v2、末端設(shè)備為v4,消息發(fā)送間隔從2E-4 s開始依次增加2E-4 s,消息長度從4E+3 bit開始依次減少8E+2 bit。
圖3(a)和圖3(b)分別為基于約束規(guī)劃和基于快速增量的調(diào)度算法得到的RC消息rm,1的端到端延遲?;诩s束規(guī)劃的調(diào)度算法最小延遲和最大延遲時間分別為6.153 8E-5 s和8.516 1E-6 s,平均值為1.557 3E-5 s?;诳焖僭隽康恼{(diào)度算法最小延遲和最大延遲時間分別為2.520 2E-5 s和8.516 3E-6 s,平均值為1.287 8E-5 s?;诳焖僭隽颗c基于約束規(guī)劃的調(diào)度算法相比,RC消息rm,1的最大端到端延遲降低59.05%,平均端到端延遲降低26.96%。
圖3 基于兩種算法RC消息rm,1的端到端延遲比較Fig.3 End-to-end latency comparison of RC message rm,1 based on two algorithms
采用基于約束規(guī)劃和快速增量調(diào)度算法,RC消息的端到端延遲如圖4所示。
圖4 基于兩種算法RC消息端到端延遲比較Fig.4 End-to-end latency comparison of RC messages based on two algorithms
RC消息的最壞端到端延遲減小44.81%,平均端到端延遲減小17.31%。在小型網(wǎng)絡(luò)配置中,基于快速增量的TTE優(yōu)化調(diào)度技術(shù)有效減小了RC消息的端到端延遲。
為了驗證算法的擴(kuò)展性,采用逐次增加網(wǎng)絡(luò)消息數(shù)量的方式檢驗算法的性能。參考時間觸發(fā)航電系統(tǒng)架構(gòu)[14]構(gòu)建航電系統(tǒng)TTE,其拓?fù)淠P腿鐖D5所示,包括11個節(jié)點(diǎn)和6個交換機(jī)。
圖5 航電系統(tǒng)架構(gòu)TTE拓?fù)淠P?/p>
網(wǎng)絡(luò)中TT消息由10條逐次增加至50條,RC 消息數(shù)量為25,TT消息周期與RC消息周期在{2.4608E-4 s,4.9216E-4 s}中隨機(jī)選擇,消息的幀長范圍為 64~1518 B,鏈路帶寬配置為1 Gibit/s。
基于兩種算法的RC消息平均端到端延遲和最壞端到端延遲如表2所示。
表2 基于兩種算法的RC消息端到端延遲對比Table 2 End-to-end latency comparison of RC messages based on two algorithms
相較于約束規(guī)劃算法,采用快速增量算法可使RC消息平均端到端延遲最高優(yōu)化14.08%,最壞端到端延遲最高優(yōu)化22.86%。在網(wǎng)絡(luò)拓?fù)涓鼜?fù)雜、負(fù)載量更大的情況下,該算法可以減少RC消息的端到端延遲,有效提升整網(wǎng)的實時性能。
為了優(yōu)化TTE網(wǎng)絡(luò)性能,基于約束規(guī)劃的TTE調(diào)度思想,本文提出了一種基于快速增量的TTE優(yōu)化調(diào)度技術(shù)。輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和TT消息集合,通過快速增量基本調(diào)度單元,回溯修正多跳延遲,得到優(yōu)化后的TT消息靜態(tài)調(diào)度表。本文算法在保障TT消息可調(diào)度前提下,有效提升了RC消息傳輸性能。經(jīng)過多組實驗驗證了算法的有效性和可擴(kuò)展性:
1) 在基本拓?fù)渚W(wǎng)絡(luò)模型中,RC消息的平均端到端延遲減小了17.31%,最壞端到端延遲減小了24.24%,算法有效提高了網(wǎng)絡(luò)數(shù)據(jù)傳輸性能;
2) 通過TT消息增量化實驗可得,該算法適用于負(fù)載量更大的時間觸發(fā)航電系統(tǒng)網(wǎng)絡(luò)拓?fù)淠P?,RC消息的平均端到端延遲最高優(yōu)化了14.08%,最壞端到端延遲最高優(yōu)化了22.86%。