楊夏
摘 要:AADL和MARTE都支持對實時嵌入式系統(tǒng)形式化建模的分析。利用MARTE的時間模型設(shè)備,研究MARTE是如何對實時嵌入式系統(tǒng)的建模和分析的,能夠比較準(zhǔn)確的通過事件或者數(shù)據(jù)端口的端到端流延遲分析,表達(dá)AADL周期性或非周期性任務(wù)。
關(guān)鍵詞:AADL;MARTE;流延遲
中圖分類號:TP202 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
現(xiàn)代嵌入式系統(tǒng)必須支持在異構(gòu)架構(gòu)上部署異構(gòu)應(yīng)用。因此,根據(jù)所施加的實時限制,對配對早期性能進(jìn)行估計,非常必要。這就要求設(shè)計一個即是應(yīng)用程序也是系統(tǒng)結(jié)構(gòu)的模型,該模型是定義應(yīng)用性功能映射到體系結(jié)構(gòu)的資源和服務(wù)的有效手段。
AADL和MARTE是具備這樣功能的兩個的模型框架。雖然他們有許多相似的功能,但MARTE在建模方面更為詳細(xì)??刹豢捎肕ARTE模型框架代替AADL模型框架進(jìn)行嵌入式系統(tǒng)建模呢?前提是MARTE必須解決的一個問題是:如何表現(xiàn)AADL提供的任務(wù)之間的特定通信方案。AADL在原來的諧波或者獨立期情況下,任務(wù)可以是周期性的或非周期性的,任務(wù)之間的通信可以使用事件數(shù)據(jù)或純數(shù)據(jù)端口進(jìn)行。
讓MARTE代表所有周期性與非周期性,事件觸發(fā)與采樣數(shù)據(jù)等類型的通信雖然是挑戰(zhàn),但同時也有機(jī)會提供建??蚣軆?nèi)的實時語義。使用MARTE時間模型構(gòu)建語義[1]結(jié)構(gòu)的目的是,以一種正式的方式為計算和通信定義一個新的計時領(lǐng)域。本文的主要目的是,AADL在終端到終端的流量延時分析中,MARTE具體如何實現(xiàn),這種實現(xiàn)是否可納入正式的標(biāo)準(zhǔn)附件。
2 AADL的MoCC與 MARTE.(AADL MoCC with
MARTE)
MoCC(Model of Computation & Communication)即計算和通信模型。在MARTE中除了模型元素,時間語義元素也必須被定義。一方面是計算模型中的時間語義,即計算的開始、完成或中止時的時間語義。另一方面是通信模型中的時間語義,即什么樣的通信被使用。MARTE的時間語義子信息,從標(biāo)簽系統(tǒng)的原理中得到啟發(fā),提供了一組通用的機(jī)制來定義MoCC??梢允褂迷蜁r鐘約束作為MARTE的約束,它派生自UML的約束元類。使用在時鐘約束上的語言叫做時鐘約束規(guī)范語言CCSL,它被定義為MARTE規(guī)格的附件。
在AADL中兩種通信都是可能的:其一是數(shù)據(jù)驅(qū)動的通信,是指給定任務(wù)的執(zhí)行是通過前面的多個任務(wù)所產(chǎn)生的數(shù)據(jù)的可用性而觸發(fā)的。這里的前面是指在控制流定義的順序中處于前面。其二是采樣通信,其中的純數(shù)據(jù)僅被作為采樣和用來表示任務(wù)是否被激活時使用。數(shù)據(jù)驅(qū)動的通信存在于鏈中,這個鏈可以通過兩種方式存在:其一,通過事件或事件的數(shù)據(jù)端口連接的非周期的任務(wù)、設(shè)備或線程組成。其二,通過一個即時連接的數(shù)據(jù)端口將同步的周期性任務(wù)連接起來。在第二種情況下,耗時的任務(wù)變?yōu)榉侵芷谛裕瑫r,它的執(zhí)行是通過在完成生產(chǎn)任務(wù)時被觸發(fā)的。CCSL時鐘關(guān)系與數(shù)據(jù)驅(qū)動通信模型交替更迭。
step1.finishalternatesWithstep2.start (1)
式(1)說明了從第1步到第2步的數(shù)據(jù)驅(qū)動通信。注意,該約束是不對稱的,步驟1的完成可能導(dǎo)致步驟2的執(zhí)行,反之不一定成立。
采樣通信發(fā)生在不同的情況下。例如,當(dāng)兩個異步的任務(wù)通信時,或者是當(dāng)兩個同步周期性任務(wù)通過一個延遲連接的數(shù)據(jù)端口而被連接時都可能發(fā)生采樣通信。
step2.start = step1.finish sampledTo^step2 (2)
式(2)顯示了從第一步到第二步的采樣通信。^step2表示步驟2的激活條件。如果步驟2是一個周期性的線程,那么它的激活條件可以使用CCSL中的isPeriodicOn關(guān)系來定義,見式(3)和式(4)。
C100=idealClkdiscretizedBy 0.01 (3)
^step2 isPeriodicOn C100 period=10 (4)
idealClk在MARTE中被定義為時間庫,代表一個有密集計時功能的(有關(guān)物理時間)完美(沒有抖動或其他任何瑕疵)時鐘。式(3)由離散idealClk定義C100。idealClk的默認(rèn)單位是秒,所以C100是一個100Hz的離散計時時鐘。第二步對C100定義周期為10,見式(4),這使得第二步是一個10Hz的離散計時時鐘。另外,第二步是一個非周期性線程,它的激活狀態(tài)不會一直綁定在邏輯時鐘上。
3 舉例(An example)
3.1 AADL的描述
選取了一個系統(tǒng)進(jìn)行說明[2]。該系統(tǒng)由一個傳感器裝置的Ds,兩個進(jìn)程P1和P2,以及執(zhí)行設(shè)備Da組成。進(jìn)程P1包含一個單獨的線程T1,進(jìn)程P2包含兩個線程T2和T3。端到端的流從Ds開始,流經(jīng)T1、T2和T3,最后再Da結(jié)束[3]。如圖1所示。
圖1 一個AADL模型(從傳感器經(jīng)過三個線程到達(dá)執(zhí)行器)
的流示例圖
Fig.1 Flow extracted from an AADL model
將上述AADL模型部署在基于AADL的OSATE Eclipse插件的環(huán)境中,如圖2所示。流從一個傳感器開始,經(jīng)過三個進(jìn)程,最后匯集在執(zhí)行器。傳感器和執(zhí)行器都是非周期性裝置,是執(zhí)行平臺的一部分。每個進(jìn)程執(zhí)行一個線程。另外,通過總線(DB1)通信的有兩個處理器(CPU1和CPU2),該主機(jī)有三個進(jìn)程,這些進(jìn)程帶有一些約束。這三個進(jìn)程可以由任何一個處理器處理,也可以是組合執(zhí)行。
圖2 系統(tǒng)實例在OSATE平臺上的部署圖
Fig.2 The system in OSATE
3.2 用MARTE表示同步采樣流
用UML的活動圖描述模型算法,如圖3的上半部分所示。所有的通信都通過無限隊列的事件數(shù)據(jù)端口進(jìn)行。與圖1相比,把獲取和釋放兩個動作看作設(shè)備的行為。
在圖3的中間部分和下部,利用類組合結(jié)構(gòu)圖,對AADL軟件和執(zhí)行平臺組件進(jìn)行建模。從MARTE的stereotypes提取的信息,可以確定適當(dāng)?shù)臅r鐘約束,如圖4所示。
圖3 用MARTE模型描述所有周期情況圖
Fig.3 All periodic case MARTE model
圖4 所有周期情況的CCSL約束圖
Fig.4 All periodic case of CCSL constraints
由于示例中的所有線程都有周期性和同步性,所以,前三次通信:從獲取到第一步,從步驟1至步驟2,從步驟2到步驟3,將被進(jìn)行采樣通信。最后的通信,即從步驟3到釋放,是數(shù)據(jù)驅(qū)動的,這是因為設(shè)備是非周期性的。
式5聲明了所有周期性線程的共同時鐘。圖4用等效圖形表示CCSL約束。綠色箭頭表示通信。虛線箭頭表示即時關(guān)系。平原箭頭表示嚴(yán)格的優(yōu)先級,而空箭頭表示沒有嚴(yán)格的優(yōu)先級。用式(6)和式(7)可以解釋。
獲取(Ds)完成(Ds.finish)動作的瞬間被置于兩個任務(wù)的時鐘之間[4],這個瞬間稱為clki(第6式)這意味著,操作步驟1必須緊跟在任務(wù)clki+1,如式(7)。
clk≡idealClkdiscretizedBy P (5)
(i∈N*)(Ds.finish∈[clki,clki+1]) (6)
step1.start [clki+1,clki+2]) (7)
這是一個異步采樣的定義。異步設(shè)備Ds發(fā)出的數(shù)據(jù)通過同步線程T1取樣,這個過程遵循它自己的時鐘clk。
AADL的綁定機(jī)制等價于MARTE的配置包。首先,行為和對象節(jié)點以軟件組件的形式被分配,如圖4的虛線箭頭。第二,軟件組件被分配給執(zhí)行平臺的模型元素。
所有這些注釋,都可以用模型驅(qū)動工程技術(shù)提取,并送入實時分析工具,包括AADL延時分析工具。圖5所示是UML和MARTE的時序圖,加粗的水平線表示執(zhí)行時間,它等于設(shè)備的延遲加上最小執(zhí)行時間和線程的截止時間之間的值域。兩條水平線之間的斜線代表通信和采樣延遲。對于采樣通信,相當(dāng)于等待接收時鐘的下一個時鐘滴答的時間總和。最大采樣延遲出現(xiàn)在為了完整的采樣周期而進(jìn)行的通信等待時,因為有可能前面滴答剛好錯過。從圖中的分析結(jié)果來看,MARTE比AADL有一些優(yōu)勢。
以下的這些公式可以作為AADL延遲分析工具。
End-to-End Flow Latency=Ds.latency+flow latency+Da.latency
Flow Latencyworst-case=t1.period+t2.period+t3.period +ts.deadline
Flow LatencyBest-case=t1.period+t2.period+t3.period+t3.MinExecTime
Latency jitter=t3.deadline-t3.MinExecTime
圖5 所有周期情況的時序圖
Fig.5 All periodic case of timing diagrams
4 結(jié)論(Conclusion)
本文中,我們展示了如何將MARTE用于模擬具有周期性和非周期性任務(wù)的混合系統(tǒng)中,這對嵌入式系統(tǒng)建模來說,是一個比較重要的問題。另外,還比較了MARTE與AADL,得出的結(jié)論是:MARTE可以用公式計算流延遲。更為重要的是,MARTE及其時間模型可以用于模擬計算和通信的各種定時模型。
參考文獻(xiàn)(References)
[1] André C,Mallet F,de Simone R(2007):ModelingTime(s).
Springer LNCS 4735:559-573.
[2] Faugère M,Bourbeau T,de Simone R,Gérard S(2007):
MARTE:Also an UML Profile for Modeling AADLApplications.
ICECCS:359-364.
[3] Feiler P.H,Hansson J:Flow Latency Analysis with the
Architecture Analysis and Design Language(AADL).Carnegie
Mellon University,Technical Note CMU/SEI-2007-TN-
010,June 2007.
[4] André C,Mallet F,de Simone R(2007):Modeling ofImmediate
vs.Delayed Data Communications:from AADLto UML
MARTE". ECSI FDL 2007.
作者簡介:
楊 夏(1976-),女,碩士,副教授.研究領(lǐng)域:嵌入式系統(tǒng)與
編譯優(yōu)化.