羅歡,徐律冠,陳文平
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510507)
智能科技的快速發(fā)展,雖然為人們的生活帶來便利,但是也對(duì)不同異構(gòu)混合系統(tǒng)造成了安全威脅[1-2]。傳統(tǒng)的嵌入式軟件自動(dòng)代碼生成方法采用多范式的系統(tǒng)建模方法,該方法構(gòu)建的模型雖然集成了多種模型轉(zhuǎn)換方法,也分析了混合模型的特點(diǎn),但是由于混合的模型特點(diǎn)過多,具有復(fù)雜性,導(dǎo)致模型在嵌入式軟件代碼自動(dòng)生成方法調(diào)用時(shí)的行為響應(yīng)過慢[3-4]。
嵌入式自動(dòng)軟件對(duì)于網(wǎng)絡(luò)發(fā)展有重要意義,在異構(gòu)系統(tǒng)中,嵌入式自動(dòng)軟件不僅可以提高軟件的工作效率,同時(shí)也可以增加軟件的擴(kuò)展范圍,但是由于傳統(tǒng)的生成方法需要花費(fèi)大量時(shí)間,所以嵌入式過程都難以達(dá)到應(yīng)用要求。為了提高嵌入式軟件自動(dòng)代碼生成方法的規(guī)范性和安全性,該文提出基于異構(gòu)系統(tǒng)混合建模及嵌入式軟件代碼生產(chǎn)方法,并設(shè)計(jì)模型,研究了一種新的代碼生成過程。
為了達(dá)到嵌入式軟件代碼自動(dòng)生成方法的設(shè)計(jì)目標(biāo),首先為異構(gòu)系統(tǒng)混合模型設(shè)計(jì)模型框架,該文設(shè)計(jì)的混合異構(gòu)系統(tǒng)框架主要由處理器、PPE(Power PC 處理器元件)、控制器、SPE(協(xié)同處理器元件)、SPU(協(xié)調(diào)處理單元)、通信器共同構(gòu)成的“5+1”多功能框架[5]。
利用這一框架實(shí)時(shí)對(duì)框架內(nèi)的功能進(jìn)行移除和增加,增強(qiáng)異構(gòu)系統(tǒng)工作的持久性。異構(gòu)混合系統(tǒng)框架采用的處理器是新發(fā)行的處理器,該處理器可以支持多媒體領(lǐng)域所有異構(gòu)混合系統(tǒng)的運(yùn)行,處理器由一個(gè)主核模塊和五個(gè)輔核模塊組成,可以完成大型矢量的運(yùn)算[6]。傳輸周期的計(jì)算公式如式(1)所示:
式中,CR表示發(fā)送請(qǐng)求的周期;CW表示等待周期;CD表示在異構(gòu)系統(tǒng)中內(nèi)部數(shù)據(jù)進(jìn)行傳送的周期;M表示處理器內(nèi)部文件的數(shù)據(jù)量;L表示處理器內(nèi)部總線的寬度;P1表示得到的總線頻率;P2表示處理器的工作頻率[7-8]。
PPE 是框架內(nèi)的核心模塊,采用雙線程的運(yùn)行模式,可以同時(shí)發(fā)行四條指令,在必要時(shí)執(zhí)行OS 協(xié)議,保證異構(gòu)混合系統(tǒng)的運(yùn)行速度??蚣軆?nèi)控制器采用UH-99 類型的器件,該控制器的存儲(chǔ)內(nèi)存為128 GB,可以觸發(fā)各種軟件的行為引擎,具有普遍性,異構(gòu)系統(tǒng)混合模型賦予控制器直接讀寫和更改數(shù)據(jù)的功能。SPE 是復(fù)雜模塊,其主要的工作是與框架內(nèi)的通信模塊進(jìn)行信息的交換傳輸。SPU 的工作任務(wù)是連接框架內(nèi)PPE、SPE 以及輸入輸出接口,連接點(diǎn)由數(shù)據(jù)環(huán)線和母線組成,如果其中一個(gè)連接線出現(xiàn)故障,那么SPU 不具有連接功能[9]。
在PPE 框架中實(shí)現(xiàn)切換,切換周期設(shè)定為Cx;x表示第x時(shí)刻,計(jì)算公式如式(2)所示:
式中,Cc表示在PPE 框架中切換的周期,PPE 框架內(nèi)部的任務(wù)發(fā)送周期基本相等。
通信器由多個(gè)并行的數(shù)據(jù)傳輸收發(fā)模塊構(gòu)成,根據(jù)混合異構(gòu)系統(tǒng)的設(shè)計(jì)目標(biāo),在通信器內(nèi)重新規(guī)范了基于原語的核間通信過程。該文在設(shè)計(jì)混合異構(gòu)系統(tǒng)模型框架時(shí),在內(nèi)部設(shè)計(jì)了全局地址和本地地址,全局地址是存儲(chǔ)軟件運(yùn)行代碼的地址,本地地址是存儲(chǔ)混合異構(gòu)系統(tǒng)模塊內(nèi)的有效地址,為了簡(jiǎn)化模塊的通信流程,對(duì)兩種不同的地址采用同一個(gè)通信流程進(jìn)行實(shí)現(xiàn)[10-12]。
根據(jù)框架切換周期構(gòu)建混合模型,構(gòu)建的混合模型表達(dá)公式為:
式中,Z表示求得的混合模型表達(dá)式??蚣軆?nèi)基于原語的主核通信流程如圖1 所示。
圖1 基于原語的主核通信流程
根據(jù)圖1 可知,首先收集需要完成的嵌入式軟件代碼自動(dòng)生成的需求信息,將需求信息進(jìn)行格式轉(zhuǎn)換,傳輸?shù)交旌袭悩?gòu)系統(tǒng)內(nèi),為觸發(fā)應(yīng)用軟件執(zhí)行功能奠定信息基礎(chǔ)[13]。然后,判斷系統(tǒng)框架內(nèi)需要傳輸?shù)木€程隊(duì)列是否存在空閑。判斷依據(jù)是利用原語格式執(zhí)行系統(tǒng)框架內(nèi)的指令,讀取通信器通道內(nèi)空閑地址的大小,查詢信道內(nèi)目前通信隊(duì)列的長(zhǎng)度,進(jìn)行線程隊(duì)列狀態(tài)的判斷。如果存在空間,則判斷系統(tǒng)通信器內(nèi)空間的大小,若空間大小大于需要傳輸信息的大小,則完成通信準(zhǔn)備工作即可[14];如果相反,則等待通信器通信信道內(nèi)其他進(jìn)程結(jié)束后,空閑空間滿足傳輸信息要求時(shí),再完成準(zhǔn)備工作。最后,完成系統(tǒng)框架和應(yīng)用嵌入式軟件內(nèi)信息的傳輸。輸出框架內(nèi)的ST 指令,伴隨需要傳遞的信息,投遞到通信器內(nèi)部的通信信道內(nèi),并且攜帶通信的目的地址,即可等待信息的傳輸。
嵌入式軟件相比傳統(tǒng)的普通軟件可以實(shí)現(xiàn)部分代碼的封裝操作,使軟件自動(dòng)生成的代碼具有安全性。從物理角度來說,嵌入式軟件是由多種組件搭建成的多功能集成軟件,其中具有代表性的組件為邏輯函數(shù)組件、文件組件以及程序段組件,因?yàn)榍度胧杰浖慕Y(jié)構(gòu)不同,可以對(duì)任何程度進(jìn)行單獨(dú)的測(cè)試和集成,方便代碼的維護(hù)。
計(jì)算代碼節(jié)點(diǎn)之間的相似性,計(jì)算公式為:
式中,Ti表示初始代碼;Yj表示結(jié)束代碼;n表示代碼數(shù)量。
在軟件內(nèi)部融入實(shí)時(shí)技術(shù),利用嵌入式軟件替換傳統(tǒng)軟件統(tǒng)一格式的測(cè)試封裝功能,設(shè)定代碼生成任務(wù),獨(dú)立地進(jìn)行封裝測(cè)試,實(shí)現(xiàn)具體應(yīng)用場(chǎng)景的應(yīng)用。利用嵌入式軟件的可替換性,實(shí)現(xiàn)信息的重新分配。嵌入式軟件內(nèi)的所有結(jié)構(gòu)組件都是通過可拆卸連接組件連接而成的,如果組件出現(xiàn)更新或者替換需求時(shí),通過變更軟件內(nèi)的接口和結(jié)構(gòu),就可以實(shí)現(xiàn)軟件內(nèi)功能的更新,具有可變性。利用信息軟件計(jì)算評(píng)估代碼來評(píng)估過程的風(fēng)險(xiǎn)程度,計(jì)算公式為:
式中,μ表示得到的評(píng)估風(fēng)險(xiǎn)程度;N表示評(píng)估的節(jié)點(diǎn)數(shù)量;vj表示評(píng)估次數(shù)。
根據(jù)嵌入式軟件的可擴(kuò)展性,設(shè)置多個(gè)接口,嵌入式軟件可以通過擴(kuò)展軟件內(nèi)部的接口,實(shí)現(xiàn)組件功能的擴(kuò)展,延長(zhǎng)軟件的應(yīng)用性,并保證軟件的功能。并行結(jié)構(gòu)包括嵌入式軟件代碼自動(dòng)生成必需的結(jié)構(gòu),分支結(jié)構(gòu)輔助并行結(jié)構(gòu)的功能完成代碼自動(dòng)生成[15]。
采用深度遍歷算法完成代碼自動(dòng)生成路徑的選擇,首先對(duì)嵌入式軟件的自動(dòng)代碼生成的所有需求信息進(jìn)行節(jié)點(diǎn)分割,根據(jù)代碼自動(dòng)生成的要求,合理地設(shè)定出路徑遍歷深度,代碼原生信息越多,選擇路徑的覆蓋深度越大,可選擇的代碼自動(dòng)生成路徑越多。
路徑覆蓋深度計(jì)算公式為:
式中,x表示路徑覆蓋深度。路徑生成過程如圖2 所示。
圖2 路徑生成過程
根據(jù)圖2 可知,調(diào)用混合異構(gòu)系統(tǒng)將待自動(dòng)生成的代碼信息隨機(jī)分配到多個(gè)測(cè)試路徑集合內(nèi),對(duì)嵌入式軟件內(nèi)并發(fā)結(jié)構(gòu)的代碼自動(dòng)生成路徑與分支內(nèi)的結(jié)構(gòu)路徑進(jìn)行次序的排列,輸出有效的代碼自動(dòng)生成路徑,在生成的路徑內(nèi)以路徑最短為選取原則,選擇出最佳的嵌入式軟件自動(dòng)代碼生成路徑即可。
實(shí)驗(yàn)采用基于AADL 的航天嵌入式軟件Ada 代碼自動(dòng)生成方法(以下統(tǒng)稱為文獻(xiàn)[2]方法)和基于SysML 的嵌入式軟件系統(tǒng)建模與驗(yàn)證方法(以下統(tǒng)稱為文獻(xiàn)[3]方法)與該文方法共同完成實(shí)驗(yàn)的設(shè)計(jì),保證實(shí)驗(yàn)測(cè)試的準(zhǔn)確性和科學(xué)性。
此次測(cè)試實(shí)驗(yàn)的核心思想是隨機(jī)在數(shù)據(jù)庫內(nèi)采取3 750 條指令語句,然后錄入到不同模型的嵌入式軟件內(nèi),執(zhí)行自動(dòng)代碼生成方法的調(diào)用,最后通過分析不同方法生成代碼的結(jié)果,驗(yàn)證方法的性能。在實(shí)驗(yàn)測(cè)試的過程中,將采集的原始數(shù)據(jù)錄入到所設(shè)計(jì)的異構(gòu)系統(tǒng)混合模型中,生成的代碼作為此次實(shí)驗(yàn)的標(biāo)準(zhǔn)對(duì)照模板。
將三個(gè)測(cè)試方法生成的代碼與標(biāo)準(zhǔn)方法生成的代碼進(jìn)行對(duì)比,得到的代碼生成個(gè)數(shù)實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 代碼生成個(gè)數(shù)實(shí)驗(yàn)結(jié)果
根據(jù)圖3 可知,該文提出的基于異構(gòu)系統(tǒng)混合建模的嵌入式軟件自動(dòng)代碼生成方法代碼生成的個(gè)數(shù)為3 000 個(gè)語句,與標(biāo)準(zhǔn)模板的代碼語句個(gè)數(shù)最相近,相差小于100 條,其他兩個(gè)傳統(tǒng)方法生成代碼的個(gè)數(shù)與標(biāo)準(zhǔn)個(gè)數(shù)相差大于500 條。根據(jù)圖3 可知,該文方法與標(biāo)準(zhǔn)值相差較小,文獻(xiàn)[2]方法相差最大。由此可見,該文方法與實(shí)際值相符,得到的代碼數(shù)量更適合應(yīng)用于異構(gòu)系統(tǒng)中。
在確定代碼生成量后,當(dāng)進(jìn)度進(jìn)展到100%時(shí),表示代碼生成成功,確定代碼生成個(gè)數(shù),分析三個(gè)方法自動(dòng)生成代碼過程,其中代碼生成方法進(jìn)度實(shí)驗(yàn)圖如圖4 所示。
圖4 方法進(jìn)度實(shí)驗(yàn)圖
觀察圖4 可知,其中該文方法用時(shí)最短,文獻(xiàn)[2]方法用時(shí)最長(zhǎng)。觀察實(shí)驗(yàn)測(cè)試開始后10 min,文獻(xiàn)[2]方法的代碼生成效率最高,該文方法與文獻(xiàn)[3]方法的代碼生成效率幾乎相同。觀察實(shí)驗(yàn)10~20 min 內(nèi)的進(jìn)度情況,這時(shí)三個(gè)方法所完成代碼的效率就出現(xiàn)了變化,文獻(xiàn)[2]方法代碼的生產(chǎn)效率與10 min 的生產(chǎn)效率持續(xù)不變,文獻(xiàn)[3]方法的生成進(jìn)度提高了20%,該文方法的代碼生成進(jìn)度達(dá)到了82%。觀察實(shí)驗(yàn)進(jìn)行20~30 min 內(nèi)的進(jìn)度情況,發(fā)現(xiàn)實(shí)驗(yàn)測(cè)試進(jìn)行23 min 時(shí),該文方法已經(jīng)完成了代碼的自動(dòng)生產(chǎn),結(jié)束任務(wù)。實(shí)驗(yàn)進(jìn)行30 min 時(shí),文獻(xiàn)[2]方法和文獻(xiàn)[3]方法對(duì)于代碼自動(dòng)生成的進(jìn)度分別為76%和85%,最終兩個(gè)方法分別在33 min 和54 min 時(shí)完成測(cè)試任務(wù)。
代碼匹配度是驗(yàn)證自動(dòng)代碼生成方法的重要手段,匹配度計(jì)算公式為:
式中,C表示原始數(shù)據(jù);B表示生成的數(shù)據(jù);m表示數(shù)據(jù)匹配度。代碼生成的模型匹配度實(shí)驗(yàn)結(jié)果如圖5 所示。
圖5 代碼匹配度實(shí)驗(yàn)結(jié)果(將縱坐標(biāo)改為匹配度)
由圖5可知,該文方法代碼匹配度高于傳統(tǒng)方法,能夠更加精準(zhǔn)地把握信息,完成信息的匹配工作。
綜上所述,對(duì)比三個(gè)不同模型下的嵌入式軟件自動(dòng)代碼生成方法的工作效率、運(yùn)行穩(wěn)定性、代碼執(zhí)行的準(zhǔn)確率等因素,可以證明該文設(shè)計(jì)的基于異構(gòu)系統(tǒng)混合建模的嵌入式軟件自動(dòng)代碼生成方法具有可行性。
該文成功地重新定義并構(gòu)建了混合異構(gòu)系統(tǒng),將該系統(tǒng)應(yīng)用在嵌入式軟件的自動(dòng)代碼生成方法中,使得方法具有可變性和規(guī)范性,解決了傳統(tǒng)方法工作效率低下的問題。該文構(gòu)建的基于異構(gòu)系統(tǒng)混合的嵌入式軟件自動(dòng)代碼生成方法采用的模型語言是AADL 標(biāo)準(zhǔn)建模語言,避免了軟件代碼生成過程中出現(xiàn)亂碼的問題,其次該文利用實(shí)驗(yàn)分析驗(yàn)證了方法生成代碼的有效性?;诨旌袭悩?gòu)系統(tǒng)解決了軟件應(yīng)用平臺(tái)之間的差異問題,提高了嵌入式軟件代碼自動(dòng)生成方法的兼容性。在該文方法的基礎(chǔ)上,還可以進(jìn)一步充實(shí)異構(gòu)系統(tǒng)混合框架內(nèi)的內(nèi)容,完善方法的性能。