馬 錚,黃連麗,陶冰冰,周海鷹
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰 442002)
一種結(jié)合AADL和TPN的系統(tǒng)能耗建模方法
馬 錚,黃連麗,陶冰冰,周海鷹
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰 442002)
結(jié)構(gòu)分析設(shè)計(jì)語言(AADL)可以描述嵌入式系統(tǒng)的實(shí)時(shí)性、可靠性等關(guān)鍵性能特性,是嵌入式領(lǐng)域的體系結(jié)構(gòu)建模、分析和驗(yàn)證的重要手段。針對(duì)嵌入式系統(tǒng)能耗無法預(yù)知的問題,提出了一種基于AADL和TPN(時(shí)間Petri網(wǎng))的系統(tǒng)能耗建模與分析方法。該方法利用AADL基本語言建立了系統(tǒng)級(jí)架構(gòu)模型,通過系統(tǒng)能耗相關(guān)性能分析,利用AADL屬性集定義了能耗相關(guān)屬性。由于AADL只是一種半形式化的語言,對(duì)系統(tǒng)的執(zhí)行不夠精確,而Petri網(wǎng)能較好地描述和模擬離散事件系統(tǒng)的動(dòng)態(tài)行為及過程,為此,定義了AADL到TPN的模型轉(zhuǎn)換規(guī)則,實(shí)現(xiàn)了AADL到時(shí)間Petri網(wǎng)的模型變換。通過對(duì)TPN模型進(jìn)行嚴(yán)格的數(shù)學(xué)推導(dǎo)分析,得到系統(tǒng)整體能耗。為驗(yàn)證所提出的建模與分析方法,以某傳感器節(jié)點(diǎn)為實(shí)例建立了系統(tǒng)能耗模型。實(shí)例驗(yàn)證表明,所提出的嵌入式系統(tǒng)能耗建模與分析方法可行有效。
結(jié)構(gòu)分析設(shè)計(jì)語言;嵌入式系統(tǒng);時(shí)間Petri網(wǎng);能耗分析
目前,嵌入式系統(tǒng)在航空航天、智能交通、工業(yè)控制、醫(yī)療衛(wèi)生等領(lǐng)域應(yīng)用廣泛,嵌入式設(shè)備每年電力消耗達(dá)到1 000億 kw·h以上[1]。在全球提倡“節(jié)能減排”的背景下,如何降低嵌入式系統(tǒng)的軟、硬件能耗已成為嵌入式系統(tǒng)設(shè)計(jì)的熱點(diǎn)問題[2]。
傳統(tǒng)的能量評(píng)估技術(shù)主要從軟件[3]和硬件兩方面入手,然而僅從硬件或軟件著手分析系統(tǒng)的能耗是不完善的。嵌入式實(shí)時(shí)系統(tǒng)體系結(jié)構(gòu)分析與設(shè)計(jì)語言(AADL)[4]可以描述復(fù)雜嵌入式系統(tǒng)軟硬件的功能屬性及可靠性、安全性、可調(diào)度性等非功能屬性,在航空航天、汽車電子等復(fù)雜嵌入式系統(tǒng)中應(yīng)用廣泛。因此,利用AADL建立系統(tǒng)的軟硬件能耗模型并進(jìn)行預(yù)測(cè)分析將會(huì)是一重大突破。
在AADL能耗相關(guān)的研究中,E.Senn等[5-6]基于AADL以及CAT工具,給出一種進(jìn)程間通信(IPC)電量和能源消耗的建模方法,并通過建立以太網(wǎng)進(jìn)程間通信模型進(jìn)行驗(yàn)證。羅增等[7]針對(duì)AADL行為附件定義了能耗元素,通過元素與處理器虛擬指令之間的映射關(guān)系并借助處理器Strong ARM的虛擬指令能耗模型,構(gòu)建出一種面向AADL語言的移動(dòng)軟件能耗評(píng)估模型。上述方法僅考慮了軟件部分的能耗,而在實(shí)際應(yīng)用中硬件部分能耗是不可忽略的。綜上所述,AADL不僅可以作為模型描述語言還可借助其他工具對(duì)其能耗進(jìn)行分析。
為此,基于AADL嵌入式系統(tǒng)軟硬件的綜合考慮進(jìn)行建模,由于AADL屬于高層半形式化語言,需要將AADL模型轉(zhuǎn)換為更底層的形式化模型,而時(shí)間Petri網(wǎng)(TPN)[8-9]可以描述和模擬離散事件系統(tǒng)的動(dòng)態(tài)行為及過程。綜合AADL和時(shí)間Petri網(wǎng),根據(jù)系統(tǒng)需求分析建立了AADL的系統(tǒng)能耗模型,在利用AADL建模時(shí)主要用到了OSATE2建模工具;在定義了轉(zhuǎn)換規(guī)則后,利用Ocarina[10]工具實(shí)現(xiàn)了AADL模型到時(shí)間Petri網(wǎng)的轉(zhuǎn)換。基于TPN模型,以某傳感器節(jié)點(diǎn)為實(shí)例進(jìn)行了節(jié)點(diǎn)能耗仿真驗(yàn)證。結(jié)果表明,所提出的方法可行有效。
1.1 AADL
2004年,美國(guó)汽車工程師協(xié)會(huì)(Society of Automotive Engineers,SAE)在MetaH和UML的基礎(chǔ)上,提出了AADL[11]。AADL以組件為核心,將系統(tǒng)軟件及硬件都看作組件的集合,將整個(gè)系統(tǒng)描述為一組交互組件的集合。AADL定義了三種組件:軟件組件、執(zhí)行平臺(tái)組件以及系統(tǒng)組件。軟件組件包括數(shù)據(jù)、線程、線程組、子程序、進(jìn)程、進(jìn)程組;硬件組件包括處理器、設(shè)備、存儲(chǔ)器、總線。各組件定義為:類型和實(shí)現(xiàn)并且可以使用關(guān)鍵詞extends進(jìn)行繼承;組件類型描述輸入輸出接口,組件實(shí)現(xiàn)可詳細(xì)描述內(nèi)部結(jié)構(gòu)(子構(gòu)件、連接、屬性值等),一個(gè)組件類型可以有一個(gè)或多個(gè)實(shí)現(xiàn)。各個(gè)組件最終集成于系統(tǒng)實(shí)現(xiàn)中,可在系統(tǒng)實(shí)現(xiàn)中將軟件綁定硬件中,使軟件正確執(zhí)行。
1.2 時(shí)間Petri網(wǎng)簡(jiǎn)介
Petri[12]網(wǎng)具有強(qiáng)大的數(shù)學(xué)定義、嚴(yán)格規(guī)范的推導(dǎo)方法和直觀的圖形描述能力,非常適合描述系統(tǒng)的控制流、并發(fā)特性和異步行為。TPN通過在基本形式Petri網(wǎng)的變遷節(jié)點(diǎn)或位置節(jié)點(diǎn)中引入表征時(shí)間的參量,不僅能描述系統(tǒng)在邏輯層次上的關(guān)系,而且能夠表征系統(tǒng)在時(shí)間層次上的關(guān)系。結(jié)合AADL線程的時(shí)間屬性,給出時(shí)間Petri網(wǎng)的定義。
定義1:時(shí)間Petri網(wǎng)TPN=(P,T,F,K,M0,W,D)是一個(gè)一元組,其中:P={p1,p2,…,pn}(n≥0)是一個(gè)有限庫所集;T={t1,t2,…,tm}是一個(gè)有限變遷集,T=Timmediation∪Tdelay且Timmediation∩Tdelay=?,Timmediation是所有立即事件或變遷集,Tdelay是延時(shí)變遷;F?(P×T)∪(T×P)是所有狀態(tài)間轉(zhuǎn)移弧的集合;K是P上的容量函數(shù);M0是初始狀態(tài)集或滿足條件的狀態(tài)集;W是弧的容量函數(shù);D={D1,D2,…,DM}是一組Tdelay上相聯(lián)系的時(shí)延參量。
定義2:TPN在t中使能的定義:
{M(pi)≥W(pi,t)}∩{M(pj)+W(t,pj)≤K(pj)},?pi∈*t,?pj∈t*
定義3:立即變遷(Timmediation)即當(dāng)某一變遷的發(fā)生條件滿足時(shí),該變遷立即從相應(yīng)的輸入庫所中移走相應(yīng)的托肯,且得到發(fā)生后果。定義如下:
當(dāng)滿足定義2[13],則:
根據(jù)AADL中相關(guān)的時(shí)間屬性,將延時(shí)分為區(qū)域值延時(shí)與固定延時(shí),其中固定延時(shí)是區(qū)域值延時(shí)的一種特殊情況。對(duì)于任意的時(shí)延變遷t∈Tdelay,都有一個(gè)對(duì)偶區(qū)間[Tmin,Tmax]與之相對(duì)應(yīng)。當(dāng)變遷t在時(shí)刻b的發(fā)生條件成立時(shí),則t可在時(shí)間區(qū)間[b+Tmin,b+Tmax]內(nèi)執(zhí)行,其相應(yīng)的輸入庫所中的托肯將至少保留Tmin,最大保留Tmax;若超過該時(shí)間,則認(rèn)為變遷不能發(fā)生了;若Tmin=Tmax,則為固定值延時(shí)。
定義4:Tdelay(延時(shí)變遷),即當(dāng)某一個(gè)變遷的發(fā)生條件滿足時(shí),該變遷要延遲一段時(shí)間才從相應(yīng)的輸入庫所中移走相應(yīng)的token并得到發(fā)生后果。在此,不考慮延時(shí)變遷,即認(rèn)為一旦可執(zhí)行性條件滿足時(shí)立即發(fā)生。
基于AADL對(duì)系統(tǒng)能耗進(jìn)行建模和分析,圖1是一個(gè)完整的基于AADL的系統(tǒng)能耗與評(píng)估框架,其流程如下:首先對(duì)系統(tǒng)軟硬件進(jìn)行需求分析,建立AADL系統(tǒng)模型;然后定義AADL模型到時(shí)間Petri網(wǎng)模型的轉(zhuǎn)換規(guī)則,將AADL模型轉(zhuǎn)換為TPN模型;接著利用已有的TPN模型的分析方法和工具Tina,對(duì)轉(zhuǎn)換生成的TPN模型進(jìn)行仿真計(jì)算和分析。
以某傳感器節(jié)點(diǎn)為例,圖2給出了AADL的傳感器節(jié)點(diǎn)模型架構(gòu)方框圖。

圖1 系統(tǒng)能耗評(píng)估框架

圖2 傳感器節(jié)點(diǎn)的AADL模型方框圖
該系統(tǒng)擁有兩個(gè)進(jìn)程P1和P2,進(jìn)程P1處理傳感器采集數(shù)據(jù),進(jìn)程P2處理外部接收數(shù)據(jù)。進(jìn)程P1包含三個(gè)線程:線程unpack1拆數(shù)據(jù)包;線程process1分析處理數(shù)據(jù)包;線程pack1壓縮封裝數(shù)據(jù)包。三個(gè)線程具有相同的地址空間,分別綁定在CPU上,進(jìn)程P2同樣擁有解包、處理、封裝三個(gè)線程。傳感器節(jié)點(diǎn)架構(gòu)所對(duì)應(yīng)的AADL系統(tǒng)代碼如下:
system implementation s_ss.impl
subcomponents
s_sensor:device sensor.impl;
p1:process p_sample.impl;
s_rf :device rf.impl;
cpu:processor cpu.impl;
s_rom:memory memory_1.impl;
bus_1:bus bus_1.impl;
p2:process p_receve.impl;
s1:device evt.impl;
connections
cn1:port p2.resout->s1.evt_data;
……
bn5:bus access bus_1->s_rf.ba1;
properties
Actual_Processor_Binding=>(reference(cpu))applies to p1.th_u,p1.th_p,p1.th_pro,p2.th_u,p2.th_p ,p2.th_pro;
Actual_Memory_Binding=>(reference(s_rom))applies to p1,p2;
end s_ss.impl;
線程unpack、process、pack之間通過數(shù)據(jù)、事件端口連接。數(shù)據(jù)、事件存儲(chǔ)于memory中,各設(shè)備(Sensor、RF)以及處理器(CPU)、存儲(chǔ)器(Mem)通過總線(Bus)互聯(lián)。線程部分代碼實(shí)現(xiàn)如下:
thread implementation processing.impl
calls main:{
opg:subprogram handle;};
connections
cn4:parameter RF_data->opg.d_handle ;
properties
Dispatch_Protocol=> periodic;
Period =>50 ms;
Initialize_Deadline =>50 ms;
compute_deadline=>50 ms;
Reference_Processor=>classifier (s_0::cpu);
end processing.impl;
定義線程processing為周期性線程,周期50 ms;compute_deadline為50 ms;initialize_deadline為50 ms。該線程描述了當(dāng)有數(shù)據(jù)或任務(wù)到來時(shí),激發(fā)處理器開始進(jìn)行拆包處理。
AADL屬于高層建模語言,不可直接用于能耗計(jì)算和分析,因此首先需要將AADL模型轉(zhuǎn)換到更低層次的形式化模型,進(jìn)而再進(jìn)行計(jì)算和分析。TPN具有直觀、形象等優(yōu)點(diǎn),能夠以圖形化的方式形象地描述一個(gè)復(fù)雜系統(tǒng)及其動(dòng)態(tài)行為,且具有許多優(yōu)良的數(shù)學(xué)性質(zhì),適用于描述及分析異步并發(fā)系統(tǒng)。TPN的結(jié)構(gòu)元素包括庫所(place)、變遷(transition)和弧(arc)等。鑒于AADL組件與TPN元素間存在的對(duì)應(yīng)關(guān)系,定義AADL到TPN的轉(zhuǎn)換規(guī)則成為節(jié)點(diǎn)建模分析的首要任務(wù)。
3.1 AADL到TPN的轉(zhuǎn)換規(guī)則
AADL行為主要由各組件數(shù)據(jù)、事件端口之間的交互進(jìn)行表征。由于線程具備行為描述能力,因此軟件組件轉(zhuǎn)換主要專注于線程轉(zhuǎn)換[10]。AADL模型基本元素和各組件狀態(tài)之間的變遷可以用有限自動(dòng)機(jī)模型描述,該自動(dòng)機(jī)模型和TPN模型之間存在映射關(guān)系,表征如下:
定義5:用有限自動(dòng)機(jī)描述的AADL模型表示為AM=(AS,AE,TR,IAS,F,T),其中:AS是所有組件狀態(tài)的集合,AS=(as1,as2,…,asn);AE是所有事件、動(dòng)作的集合,AE=AEi∪AEd且AEi∩AEd=?,AEi是所有立即事件、動(dòng)作集,AEd是所有延遲、周期事件動(dòng)作集;TR是所有狀態(tài)間轉(zhuǎn)移的集合,轉(zhuǎn)移函數(shù)TR(asi,atj)=ask;IAS是初始狀態(tài)集或滿足條件的狀態(tài)集;F是AM的終止?fàn)顟B(tài)集合;T是事件相關(guān)的時(shí)間屬性,包括period、Compute_Deadline、Compute_Execution_Time等。
根據(jù)定義5和TPN的定義,可實(shí)現(xiàn)AADL模型基本元素到TPN模型所對(duì)應(yīng)的函數(shù)TPN_AM的映射,表征如下:
定義6:AADL基本模型元素到TPN模型元素轉(zhuǎn)換:
(1)TPN_AM(as)=p,TPN_AM(AS)=P實(shí)現(xiàn)AADL模型各組件狀態(tài)到TPN中庫所之間的轉(zhuǎn)換。
(2)TPN_AM(at)=t,TPN_AM(ATi)=Ti,TPN_AM(ATd)=Td,即AADL模型中立即事件、動(dòng)作到TPN的瞬時(shí)變遷,AADL中延時(shí)事件、動(dòng)作到TPN中的延時(shí)變遷。
(3)TPN_AM(TR)=Ast∪Ats=F,將AADL中狀態(tài)之間的轉(zhuǎn)換對(duì)應(yīng)于TPN中庫所到變遷的弧和變遷到庫所的弧。

(5)TPNAM(t)=(tmin,tmax),TPNAM(T)=D將AADL中時(shí)間屬性轉(zhuǎn)換為TPN的時(shí)間延遲。
通過上述規(guī)則,可以得出AADL各組件的TPN模型。以傳感器節(jié)點(diǎn)為例,系統(tǒng)轉(zhuǎn)換如圖3所示。

圖3 系統(tǒng)轉(zhuǎn)換圖
3.2 系統(tǒng)能耗計(jì)算方法
假設(shè)如下:
(1)節(jié)點(diǎn)總能耗Etotal為各個(gè)能耗部件Esensor、Ecpu、Erf之和[14-15]:
Etotal=Esensor+Ecpu+Erf
(1)
(2)各個(gè)組件能耗為該組件各個(gè)狀態(tài)下能耗之和,對(duì)于CPU,如下所示:
Ecpu=Ecpu_run+Ecpu_idle+Ecpu_sleep
(2)
對(duì)其他耗能部件,能耗計(jì)算方法式(2)類似。
(3)在整個(gè)TPN模型中,存在多個(gè)庫所和變遷,只考慮對(duì)該狀態(tài)有影響的庫所和變遷。
(4)在token到達(dá)某庫所且其他條件都滿足時(shí),變遷才可發(fā)生;一旦firing之后,token到達(dá)下一個(gè)庫所為瞬時(shí)的。
(5)對(duì)于某一庫所,從token流入到流出時(shí)即為此次變遷在該庫所停留時(shí)間ti;對(duì)應(yīng)的實(shí)際含義為此次執(zhí)行在該狀態(tài)的消耗時(shí)間。在仿真一定時(shí)間后,每一庫所消耗的所有時(shí)間,即為該狀態(tài)在這段時(shí)間內(nèi)消耗的總時(shí)間Tsi,該狀態(tài)的功率為psi,則該狀態(tài)的耗能為:
Esi=Tsi*psi
(3)

(4)
(6)對(duì)于CPU,在運(yùn)行時(shí)有六個(gè)任務(wù),分別用來對(duì)傳感器采集的數(shù)據(jù)和RF接收數(shù)據(jù)進(jìn)行拆包、處理、封裝。能耗計(jì)算公式為:
(5)
至此,結(jié)合AADL和TPN的能耗建摸已完成,通過Tina工具可對(duì)節(jié)點(diǎn)TPN模型進(jìn)行仿真,通過計(jì)算出各個(gè)耗能部件所有狀態(tài)中Token所停留的時(shí)間,即可計(jì)算出整個(gè)系統(tǒng)在一定時(shí)間內(nèi)的能耗情況。
為了能及時(shí)預(yù)測(cè)分析嵌入式系統(tǒng)整體能耗,提出了一種結(jié)合AADL和TPN的嵌入式系統(tǒng)能耗建模方法。該方法綜合考慮系統(tǒng)軟硬件,建立了能耗模型,并通過嚴(yán)格的數(shù)學(xué)推導(dǎo)公式預(yù)測(cè)整個(gè)系統(tǒng)的能耗。以某傳感器節(jié)點(diǎn)為實(shí)例的驗(yàn)證結(jié)果表明,所提出的方法有效、可行。該方法在嵌入式系統(tǒng)設(shè)計(jì)初期對(duì)系統(tǒng)架構(gòu)的能耗分析具有很好的參考價(jià)值,方便設(shè)計(jì)人員根據(jù)能耗要求及時(shí)調(diào)整系統(tǒng)架構(gòu),節(jié)省設(shè)計(jì)的時(shí)間、物力成本。
[1] 郭 兵,沈 艷,邵子立.綠色計(jì)算的重定義與若干探討[J].計(jì)算機(jī)學(xué)報(bào),2009,32(12):2311-2319.
[2] 趙 霞,郭 耀,陳向群.軟件能耗優(yōu)化技術(shù)研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2011,48(12):2308-2316.
[3] Tiwari V,Maliks S,Solfe A.Power analysis of embedded software:a first step towards software power minimization[J].IEEE Transactions on Very Large Scale Integration,1994,2(4):437-444.
[4] 楊志斌,皮 磊,胡 凱,等.復(fù)雜嵌入式實(shí)時(shí)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)與分析語言:AADL[J].軟件學(xué)報(bào),2010,21(5):899-915.
[5] Blouin D,Senn E.CAT:an extensible system-level power consumption analysis toolbox for model-driven[C]//Newcas conference.[s.l.]:[s.n.],2010:33-36.
[6] Senn E,Douhib S,Blouin D,et al.Power and energy estimations in model-based design[M].Netherlands:Springer,2009:3-26.
[7] 羅 增.一種基于AADL語言的移動(dòng)軟件能耗評(píng)估方法[D].福州:福建師范大學(xué),2015.
[8] Wu Zhehui.Petrinetwork introduction[M].Beijing:Mechanical Industry Press,2006:47-64.
[9] Zhang Hongmei,Liu Fei,Yang Ming,et al.Simulation of time petri nets[C]//Fourth international conference on system science,engineering design and manufacturing.Guiyang:[s.n.],2013:26-27.
[10] Hugues J,Zalila B,Pautet L,et al.From the prototype to the final embedded system using the Ocarina AADL tool suite[J].ACM Transactions on Embedded Computing Systems,2008,7(4):1-25.
[11] Feiler P H,Gluch D P.Model-based engineering with AADL[M].[s.l.]:[s.n.],2012.
[12] Girault C,Valk R.Petri nets for systems engineering[M].[s.1.]:Springer-Verlag,2003.
[13] 吳育春,李蜀瑜.基于時(shí)間Petri網(wǎng)的AADL模型[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(2):88-91.
[14] 謝和平.基于排隊(duì)Petri網(wǎng)的感知網(wǎng)節(jié)點(diǎn)能耗建模技術(shù)研究與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[15] 周海鷹,徐 杰,高 妍,等.基于狀態(tài)轉(zhuǎn)移的感知節(jié)點(diǎn)能耗模型研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2012,29(9):3432-3436.
An Embedded System Energy Consumption Modeling Method Using AADL and TPN
MA Zheng,HUANG Lian-li,TAO Bing-bing,ZHOU Hai-ying
(School of Electrical & Information Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)
Architecture Analysis and Design Language (AADL) can describe key performance features such as the real time and reliability of embedded system,which is an important means of architecture modeling,analysis and verification in embedded field.In view of the unpredictable energy consumption problem of the embedded system,a system modeling and energy consumption analysis method has been put forward based on AADL and TPN (Time Petri Net).It sets up system level structure model with AADL basic language,through analysis of system energy consumption related performance and definition of energy consumption related properties with AADL property set.Since the AADL is just a semi-formal language,the execution of the system is not accurate,but the Petri net can well describe and simulate the dynamic behavior processes of the discrete event system.Therefore,AADL-TPN model transformation rules has been defined,and the transformation between AADL model and time Petri nets model has been realized.The system energy consumption can be obtained through strict mathematical deduction and analysis.For the validation of the proposed modeling and analysis method,a sensor node has been chosen as an example and system energy model has been established.The operation of the example shows that the proposed system modeling and energy consumption analysis method are both feasible and effective.
AADL;embedded systems;TPN;energy consumption analysis
2016-07-06
2016-10-19 網(wǎng)絡(luò)出版時(shí)間:2017-04-28
湖北省科技支撐計(jì)劃項(xiàng)目(對(duì)外合作)(2014BHE024)
馬 錚(1992-),女,碩士研究生,研究方向?yàn)槠囯娮印⑶度胧较到y(tǒng)設(shè)計(jì);周海鷹,教授,研究方向?yàn)榍度胧较到y(tǒng)、云計(jì)算。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170428.1703.052.html
TP311
A
1673-629X(2017)06-0151-05
10.3969/j.issn.1673-629X.2017.06.031