羅歡,徐律冠,陳文平
(南方電網數字電網研究院有限公司,廣東廣州 510507)
智能科技的快速發展,雖然為人們的生活帶來便利,但是也對不同異構混合系統造成了安全威脅[1-2]。傳統的嵌入式軟件自動代碼生成方法采用多范式的系統建模方法,該方法構建的模型雖然集成了多種模型轉換方法,也分析了混合模型的特點,但是由于混合的模型特點過多,具有復雜性,導致模型在嵌入式軟件代碼自動生成方法調用時的行為響應過慢[3-4]。
嵌入式自動軟件對于網絡發展有重要意義,在異構系統中,嵌入式自動軟件不僅可以提高軟件的工作效率,同時也可以增加軟件的擴展范圍,但是由于傳統的生成方法需要花費大量時間,所以嵌入式過程都難以達到應用要求。為了提高嵌入式軟件自動代碼生成方法的規范性和安全性,該文提出基于異構系統混合建模及嵌入式軟件代碼生產方法,并設計模型,研究了一種新的代碼生成過程。
為了達到嵌入式軟件代碼自動生成方法的設計目標,首先為異構系統混合模型設計模型框架,該文設計的混合異構系統框架主要由處理器、PPE(Power PC 處理器元件)、控制器、SPE(協同處理器元件)、SPU(協調處理單元)、通信器共同構成的“5+1”多功能框架[5]。
利用這一框架實時對框架內的功能進行移除和增加,增強異構系統工作的持久性。異構混合系統框架采用的處理器是新發行的處理器,該處理器可以支持多媒體領域所有異構混合系統的運行,處理器由一個主核模塊和五個輔核模塊組成,可以完成大型矢量的運算[6]。傳輸周期的計算公式如式(1)所示:
式中,CR表示發送請求的周期;CW表示等待周期;CD表示在異構系統中內部數據進行傳送的周期;M表示處理器內部文件的數據量;L表示處理器內部總線的寬度;P1表示得到的總線頻率;P2表示處理器的工作頻率[7-8]。
PPE 是框架內的核心模塊,采用雙線程的運行模式,可以同時發行四條指令,在必要時執行OS 協議,保證異構混合系統的運行速度。框架內控制器采用UH-99 類型的器件,該控制器的存儲內存為128 GB,可以觸發各種軟件的行為引擎,具有普遍性,異構系統混合模型賦予控制器直接讀寫和更改數據的功能。SPE 是復雜模塊,其主要的工作是與框架內的通信模塊進行信息的交換傳輸。SPU 的工作任務是連接框架內PPE、SPE 以及輸入輸出接口,連接點由數據環線和母線組成,如果其中一個連接線出現故障,那么SPU 不具有連接功能[9]。
在PPE 框架中實現切換,切換周期設定為Cx;x表示第x時刻,計算公式如式(2)所示:
式中,Cc表示在PPE 框架中切換的周期,PPE 框架內部的任務發送周期基本相等。
通信器由多個并行的數據傳輸收發模塊構成,根據混合異構系統的設計目標,在通信器內重新規范了基于原語的核間通信過程。該文在設計混合異構系統模型框架時,在內部設計了全局地址和本地地址,全局地址是存儲軟件運行代碼的地址,本地地址是存儲混合異構系統模塊內的有效地址,為了簡化模塊的通信流程,對兩種不同的地址采用同一個通信流程進行實現[10-12]。
根據框架切換周期構建混合模型,構建的混合模型表達公式為:
式中,Z表示求得的混合模型表達式。框架內基于原語的主核通信流程如圖1 所示。

圖1 基于原語的主核通信流程
根據圖1 可知,首先收集需要完成的嵌入式軟件代碼自動生成的需求信息,將需求信息進行格式轉換,傳輸到混合異構系統內,為觸發應用軟件執行功能奠定信息基礎[13]。然后,判斷系統框架內需要傳輸的線程隊列是否存在空閑。判斷依據是利用原語格式執行系統框架內的指令,讀取通信器通道內空閑地址的大小,查詢信道內目前通信隊列的長度,進行線程隊列狀態的判斷。如果存在空間,則判斷系統通信器內空間的大小,若空間大小大于需要傳輸信息的大小,則完成通信準備工作即可[14];如果相反,則等待通信器通信信道內其他進程結束后,空閑空間滿足傳輸信息要求時,再完成準備工作。最后,完成系統框架和應用嵌入式軟件內信息的傳輸。輸出框架內的ST 指令,伴隨需要傳遞的信息,投遞到通信器內部的通信信道內,并且攜帶通信的目的地址,即可等待信息的傳輸。
嵌入式軟件相比傳統的普通軟件可以實現部分代碼的封裝操作,使軟件自動生成的代碼具有安全性。從物理角度來說,嵌入式軟件是由多種組件搭建成的多功能集成軟件,其中具有代表性的組件為邏輯函數組件、文件組件以及程序段組件,因為嵌入式軟件的結構不同,可以對任何程度進行單獨的測試和集成,方便代碼的維護。
計算代碼節點之間的相似性,計算公式為:
式中,Ti表示初始代碼;Yj表示結束代碼;n表示代碼數量。
在軟件內部融入實時技術,利用嵌入式軟件替換傳統軟件統一格式的測試封裝功能,設定代碼生成任務,獨立地進行封裝測試,實現具體應用場景的應用。利用嵌入式軟件的可替換性,實現信息的重新分配。嵌入式軟件內的所有結構組件都是通過可拆卸連接組件連接而成的,如果組件出現更新或者替換需求時,通過變更軟件內的接口和結構,就可以實現軟件內功能的更新,具有可變性。利用信息軟件計算評估代碼來評估過程的風險程度,計算公式為:
式中,μ表示得到的評估風險程度;N表示評估的節點數量;vj表示評估次數。
根據嵌入式軟件的可擴展性,設置多個接口,嵌入式軟件可以通過擴展軟件內部的接口,實現組件功能的擴展,延長軟件的應用性,并保證軟件的功能。并行結構包括嵌入式軟件代碼自動生成必需的結構,分支結構輔助并行結構的功能完成代碼自動生成[15]。
采用深度遍歷算法完成代碼自動生成路徑的選擇,首先對嵌入式軟件的自動代碼生成的所有需求信息進行節點分割,根據代碼自動生成的要求,合理地設定出路徑遍歷深度,代碼原生信息越多,選擇路徑的覆蓋深度越大,可選擇的代碼自動生成路徑越多。
路徑覆蓋深度計算公式為:
式中,x表示路徑覆蓋深度。路徑生成過程如圖2 所示。

圖2 路徑生成過程
根據圖2 可知,調用混合異構系統將待自動生成的代碼信息隨機分配到多個測試路徑集合內,對嵌入式軟件內并發結構的代碼自動生成路徑與分支內的結構路徑進行次序的排列,輸出有效的代碼自動生成路徑,在生成的路徑內以路徑最短為選取原則,選擇出最佳的嵌入式軟件自動代碼生成路徑即可。
實驗采用基于AADL 的航天嵌入式軟件Ada 代碼自動生成方法(以下統稱為文獻[2]方法)和基于SysML 的嵌入式軟件系統建模與驗證方法(以下統稱為文獻[3]方法)與該文方法共同完成實驗的設計,保證實驗測試的準確性和科學性。
此次測試實驗的核心思想是隨機在數據庫內采取3 750 條指令語句,然后錄入到不同模型的嵌入式軟件內,執行自動代碼生成方法的調用,最后通過分析不同方法生成代碼的結果,驗證方法的性能。在實驗測試的過程中,將采集的原始數據錄入到所設計的異構系統混合模型中,生成的代碼作為此次實驗的標準對照模板。
將三個測試方法生成的代碼與標準方法生成的代碼進行對比,得到的代碼生成個數實驗結果如圖3所示。

圖3 代碼生成個數實驗結果
根據圖3 可知,該文提出的基于異構系統混合建模的嵌入式軟件自動代碼生成方法代碼生成的個數為3 000 個語句,與標準模板的代碼語句個數最相近,相差小于100 條,其他兩個傳統方法生成代碼的個數與標準個數相差大于500 條。根據圖3 可知,該文方法與標準值相差較小,文獻[2]方法相差最大。由此可見,該文方法與實際值相符,得到的代碼數量更適合應用于異構系統中。
在確定代碼生成量后,當進度進展到100%時,表示代碼生成成功,確定代碼生成個數,分析三個方法自動生成代碼過程,其中代碼生成方法進度實驗圖如圖4 所示。

圖4 方法進度實驗圖
觀察圖4 可知,其中該文方法用時最短,文獻[2]方法用時最長。觀察實驗測試開始后10 min,文獻[2]方法的代碼生成效率最高,該文方法與文獻[3]方法的代碼生成效率幾乎相同。觀察實驗10~20 min 內的進度情況,這時三個方法所完成代碼的效率就出現了變化,文獻[2]方法代碼的生產效率與10 min 的生產效率持續不變,文獻[3]方法的生成進度提高了20%,該文方法的代碼生成進度達到了82%。觀察實驗進行20~30 min 內的進度情況,發現實驗測試進行23 min 時,該文方法已經完成了代碼的自動生產,結束任務。實驗進行30 min 時,文獻[2]方法和文獻[3]方法對于代碼自動生成的進度分別為76%和85%,最終兩個方法分別在33 min 和54 min 時完成測試任務。
代碼匹配度是驗證自動代碼生成方法的重要手段,匹配度計算公式為:
式中,C表示原始數據;B表示生成的數據;m表示數據匹配度。代碼生成的模型匹配度實驗結果如圖5 所示。

圖5 代碼匹配度實驗結果(將縱坐標改為匹配度)
由圖5可知,該文方法代碼匹配度高于傳統方法,能夠更加精準地把握信息,完成信息的匹配工作。
綜上所述,對比三個不同模型下的嵌入式軟件自動代碼生成方法的工作效率、運行穩定性、代碼執行的準確率等因素,可以證明該文設計的基于異構系統混合建模的嵌入式軟件自動代碼生成方法具有可行性。
該文成功地重新定義并構建了混合異構系統,將該系統應用在嵌入式軟件的自動代碼生成方法中,使得方法具有可變性和規范性,解決了傳統方法工作效率低下的問題。該文構建的基于異構系統混合的嵌入式軟件自動代碼生成方法采用的模型語言是AADL 標準建模語言,避免了軟件代碼生成過程中出現亂碼的問題,其次該文利用實驗分析驗證了方法生成代碼的有效性。基于混合異構系統解決了軟件應用平臺之間的差異問題,提高了嵌入式軟件代碼自動生成方法的兼容性。在該文方法的基礎上,還可以進一步充實異構系統混合框架內的內容,完善方法的性能。