鄧竹莎??(中國(guó)西南電子技術(shù)研究所,成都610036)
基于VSIPL的跨平臺(tái)算法中間件軟件設(shè)計(jì)?
鄧竹莎??
(中國(guó)西南電子技術(shù)研究所,成都610036)
針對(duì)航空電子信息系統(tǒng)與通信數(shù)據(jù)鏈的嵌入式信息處理應(yīng)用中算法軟件移植性和可復(fù)用性差的問(wèn)題,提出基于VSIPL標(biāo)準(zhǔn)應(yīng)用編程接口的跨平臺(tái)算法中間件軟件設(shè)計(jì)模式,以增強(qiáng)多平臺(tái)多系統(tǒng)軟件可移植性及代碼重用性;利用Power-VSIPL的AltiVec矢量加速、數(shù)據(jù)并行設(shè)計(jì)及循環(huán)展開(kāi),在保持原有算法處理精度基礎(chǔ)上,提高軟件運(yùn)算效率1~5倍。
航空電子;信息系統(tǒng);通信數(shù)據(jù)鏈;跨平臺(tái)算法軟件中間件;矢量信號(hào)圖像處理標(biāo)準(zhǔn)庫(kù);矢量加速處理
鑒于硬件設(shè)備的飛速發(fā)展,航空及通信領(lǐng)域嵌入式信息處理軟件日益增多。由于與硬件綁定,此類軟件模塊定制性強(qiáng),且缺乏統(tǒng)一的基礎(chǔ)標(biāo)準(zhǔn),在不同平臺(tái)和環(huán)境中通用性差,重復(fù)開(kāi)發(fā)情況嚴(yán)重,資金和人力資源大量浪費(fèi),技術(shù)延續(xù)性和質(zhì)量穩(wěn)定性難以保證。
此外,在嵌入式信息處理軟件開(kāi)發(fā)過(guò)程中,通常需要在Matlab環(huán)境仿真驗(yàn)證算法,再移植到嵌入式目標(biāo)機(jī)運(yùn)行。每次環(huán)境變化都會(huì)導(dǎo)致大量軟件代碼重新編寫(xiě),而且一旦目標(biāo)機(jī)研制進(jìn)度拖延,后續(xù)軟件開(kāi)發(fā)和調(diào)試都會(huì)受到影響。
基于以上原因,本文針對(duì)航空和通信領(lǐng)域信息處理具體應(yīng)用提取坐標(biāo)轉(zhuǎn)換、目標(biāo)跟蹤、狀態(tài)估計(jì)及圖像處理算法基礎(chǔ)模塊,采用基于VSIPL的基礎(chǔ)中間件[1]開(kāi)發(fā)算法功能軟件包,通過(guò)底層硬件對(duì)矢量和矩陣運(yùn)算的加速處理、數(shù)據(jù)并行化設(shè)計(jì)及循環(huán)展開(kāi)等方式提高軟件運(yùn)行效率,為后續(xù)工程提供高效可靠的算法組件,使上層應(yīng)用系統(tǒng)只需修改少量代碼即可實(shí)現(xiàn)在不同平臺(tái)的快速開(kāi)發(fā)和移植。
VSIPL(Vector Signal Image Processing Library)是由美國(guó)國(guó)防部(DOD)下屬的DARPA支持發(fā)起制定的標(biāo)準(zhǔn)應(yīng)用編程接口,旨在建立一個(gè)嵌入式實(shí)時(shí)處理系統(tǒng)中可移植的高性能應(yīng)用程序向量、信號(hào)和圖像處理的工業(yè)標(biāo)準(zhǔn),從而最大程度地重用代碼,大大縮短嵌入式領(lǐng)域項(xiàng)目工程的開(kāi)發(fā)周期和維護(hù)時(shí)間。VSIPL的軟件結(jié)構(gòu)如圖1所示。
這個(gè)VSIPL API程序庫(kù)是目前嵌入式處理領(lǐng)域事實(shí)上的標(biāo)準(zhǔn),主要用于軍用級(jí)別的高端嵌入式信號(hào)、信息和圖像處理。它通過(guò)為所有支持平臺(tái)提供一致的API和一個(gè)公共的數(shù)學(xué)函數(shù)集合,可以方便地處理向量、矩陣、張量等對(duì)象,增強(qiáng)了應(yīng)用程序的平臺(tái)可移植性,同時(shí)通過(guò)代碼重用,也加快了新技術(shù)的開(kāi)發(fā)速度,大大縮短軟硬件的開(kāi)發(fā)周期。
目前硬件和軟件供應(yīng)商已經(jīng)開(kāi)發(fā)出許多VSIPL產(chǎn)品,作為開(kāi)發(fā)高效率和可移植信號(hào)和圖像處理應(yīng)用計(jì)算程序的中間件,正被日益廣泛地使用。
VSIPL具有較好的跨平臺(tái)特性和硬件加速特性,但作為一個(gè)基礎(chǔ)中間件,缺少面向領(lǐng)域和應(yīng)用的工具箱接口,不利于二次開(kāi)發(fā)。本文在算法中間件設(shè)計(jì)過(guò)程中,一方面希望發(fā)揮VSIPL的標(biāo)準(zhǔn)化及硬件加速特性,另一方面旨在面向特定領(lǐng)域需求開(kāi)發(fā)功能軟件包,并針對(duì)數(shù)據(jù)特點(diǎn)進(jìn)行優(yōu)化,提升軟件模塊運(yùn)行速度,提高可用性。
2.1 功能化組件模塊設(shè)計(jì)
算法中間件設(shè)計(jì)時(shí),首先需要?jiǎng)澐周浖δ堋\浖6雀鶕?jù)需要可以是獨(dú)立運(yùn)行的子系統(tǒng),也可以是程序模塊。如果軟件劃分粒度太大,會(huì)造成功能復(fù)雜,升級(jí)困難,很難實(shí)現(xiàn)重用;如果粒度太小,又會(huì)造成組件數(shù)量太多,組件之間交互復(fù)雜,管理困難,性能低下。因此,功能化組件的劃分粒度是軟件設(shè)計(jì)的基礎(chǔ)[2-3]。
通常軟件功能劃分可分為系統(tǒng)、應(yīng)用、業(yè)務(wù)組件和模塊4層,如圖2所示。
針對(duì)航空和通信等領(lǐng)域的具體需求及現(xiàn)有工程經(jīng)驗(yàn),本文主要生成模塊級(jí)面向應(yīng)用的基礎(chǔ)算法組件(如濾波算法、圖像分割算法等),供上層業(yè)務(wù)組件(如目標(biāo)跟蹤、狀態(tài)估計(jì)等)調(diào)用,為后續(xù)工程應(yīng)用開(kāi)發(fā)提供可復(fù)用的軟件模塊。
擬開(kāi)發(fā)的功能組件分為坐標(biāo)轉(zhuǎn)換、目標(biāo)跟蹤、狀態(tài)估計(jì)、圖像處理四大類,分別實(shí)現(xiàn)空間坐標(biāo)轉(zhuǎn)換、航跡濾波、航跡關(guān)聯(lián)/融合、圖像分割、圖像壓縮等具體功能,軟件包劃分及運(yùn)行環(huán)境如圖3所示。
2.2 跨平臺(tái)軟件設(shè)計(jì)
功能組件的跨平臺(tái)設(shè)計(jì)通過(guò)各算法中間件一致的軟件接口實(shí)現(xiàn)。針對(duì)目前嵌入式信息處理軟件實(shí)際的開(kāi)發(fā)流程,主要考慮Matlab仿真環(huán)境、PowerPC刀片環(huán)境及PowerPC嵌入式環(huán)境下算法中間件軟件設(shè)計(jì)。通過(guò)調(diào)用Matlab-VSIPL、Power-VSIPL和Realtime-VSIPL三部分基礎(chǔ)組件,算法中間件屏蔽底層硬件平臺(tái)及操作系統(tǒng),為上層應(yīng)用提供統(tǒng)一的標(biāo)準(zhǔn)API,以確保不同平臺(tái)不同系統(tǒng)間的無(wú)縫移植。
基于VSIPL的算法中間件開(kāi)發(fā)流程如圖4所示。其中,Matlab環(huán)境算法中間件主要用于算法研究和仿真;PowerPC刀片環(huán)境算法中間件實(shí)現(xiàn)模擬目標(biāo)環(huán)境下的算法驗(yàn)證;PowerPC嵌入式環(huán)境算法中間件則針對(duì)嵌入式環(huán)境的實(shí)時(shí)處理要求,完成從算法仿真到目標(biāo)機(jī)實(shí)現(xiàn)的最終移植。
算法中間件的基本結(jié)構(gòu)如圖5所示[4-5]。
2.3 算法并行運(yùn)算優(yōu)化
算法中間件的優(yōu)化處理,一方面依賴于PowerPC系列處理器自身的AltiVec矢量加速技術(shù),另一方面采用數(shù)據(jù)處理“并行化”[6]的設(shè)計(jì)思路,充分發(fā)揮VSIPL基礎(chǔ)庫(kù)對(duì)矢量/矩陣運(yùn)算的處理優(yōu)勢(shì),將多點(diǎn)組成矢量或矩陣同時(shí)處理,縮短讀取和存儲(chǔ)數(shù)據(jù)的時(shí)間,增強(qiáng)運(yùn)算能力。
以坐標(biāo)轉(zhuǎn)換為例,按照原有設(shè)計(jì)思路,坐標(biāo)轉(zhuǎn)換模塊對(duì)接收到的傳感器目標(biāo)數(shù)據(jù)根據(jù)先后順序?qū)崟r(shí)排序,逐一處理,只有等第一個(gè)目標(biāo)的坐標(biāo)完成轉(zhuǎn)換以后,第二個(gè)目標(biāo)才會(huì)開(kāi)始處理。原有處理流程如圖6所示[7-8],經(jīng)過(guò)優(yōu)化處理后,坐標(biāo)轉(zhuǎn)換模式如圖7所示。
此外,算法模塊(特別是狀態(tài)估計(jì))中循環(huán)遍歷會(huì)占用大量計(jì)算時(shí)間,以目標(biāo)關(guān)聯(lián)為例,若10個(gè)傳感器探測(cè)1 000個(gè)目標(biāo),為計(jì)算關(guān)聯(lián)程度,極限情況下需完成107次運(yùn)算,大大延遲了處理時(shí)間。本算法中間件設(shè)計(jì)時(shí),通過(guò)循環(huán)展開(kāi),減小循環(huán)次數(shù),充分發(fā)揮處理器本身流水線和指令預(yù)取技術(shù)的優(yōu)勢(shì),達(dá)到軟件加速的目的。
3.1 可移植性實(shí)現(xiàn)
算法中間件移植性實(shí)驗(yàn)選取3種代表性運(yùn)行環(huán)境,從Intel+Matlab算法仿真平臺(tái)將應(yīng)用模塊移植到Linux+PowerPC刀片環(huán)境,只需將m代碼轉(zhuǎn)換為對(duì)應(yīng)的C代碼,將其中調(diào)用的Matlab-VSIPL函數(shù)替換為對(duì)應(yīng)的Power-VSIPL函數(shù);從Linux+PowerPC刀片環(huán)境移植到VxWorks+PowerPC嵌入式目標(biāo)機(jī)環(huán)境只需更換系統(tǒng)頭文件,軟件模塊無(wú)需修改,大大縮短了開(kāi)發(fā)周期。
3.2 運(yùn)算性能分析
在VxWorks+PowerPC嵌入式目標(biāo)機(jī)環(huán)境分別對(duì)目標(biāo)位置坐標(biāo)轉(zhuǎn)換、目標(biāo)跟蹤、狀態(tài)估計(jì)及圖像處理模塊進(jìn)行性能測(cè)試,對(duì)各模塊優(yōu)化前后的處理時(shí)效進(jìn)行比較。
實(shí)驗(yàn)一:將目標(biāo)位置從經(jīng)緯高轉(zhuǎn)換到俯仰、方位、距離,再?gòu)母┭觥⒎轿?、距離轉(zhuǎn)換到經(jīng)緯高,分別對(duì)隨機(jī)產(chǎn)生的10 000、90 000、100 000和900 000個(gè)點(diǎn)計(jì)算平均處理時(shí)間,處理后的轉(zhuǎn)換精度達(dá)到10-7,計(jì)算時(shí)間見(jiàn)表1。從測(cè)試結(jié)果可以看出,在保持原有計(jì)算精度的前提下,新的坐標(biāo)轉(zhuǎn)換模塊處理效率較過(guò)去提升2~4倍。
實(shí)驗(yàn)二:目標(biāo)作勻加速運(yùn)動(dòng),對(duì)傳感器探測(cè)到的目標(biāo)量測(cè)數(shù)據(jù)進(jìn)行濾波處理。輸入1 000個(gè)量測(cè)值,優(yōu)化前后跟蹤算法耗時(shí)分別為16 516μs和9 183μs,處理效率提升約1.8倍。
實(shí)驗(yàn)三:采用最近鄰算法對(duì)4個(gè)目標(biāo)600組數(shù)據(jù)進(jìn)行關(guān)聯(lián)融合處理,優(yōu)化前總處理時(shí)間為4.2 s,優(yōu)化后處理時(shí)間0.78 s,處理效率提升約5.4倍。
實(shí)驗(yàn)四:采用分水嶺圖像分割算法對(duì)256×256圖像進(jìn)行分割,優(yōu)化前后耗時(shí)分別為27.956 6 s和18.743 3 s,處理效率提升約1.5倍。
本文旨在采用VSIPL中間件,面向航空和通信領(lǐng)域具體需求開(kāi)發(fā)算法中間件,并采用數(shù)據(jù)并行、循環(huán)展開(kāi)等方式進(jìn)行加速和優(yōu)化,實(shí)現(xiàn)嵌入式信息處理軟件在多平臺(tái)多系統(tǒng)上的快速開(kāi)發(fā)和移植。數(shù)值性能仿真說(shuō)明,按照此模式設(shè)計(jì)的跨平臺(tái)算法中間件可在保證計(jì)算精度的前提下大大提高處理時(shí)效,為信息處理嵌入式軟件并行化設(shè)計(jì)與優(yōu)化處理提供了新思路。
[1]Janka R,Judd R,Lebak J,et al.VSIPL:an object-based open standard API for vector,signal,and image processing[C]//Proceedings of 2001 IEEE Interntional Conference on Acoustics,Speech,and Signal Processing.Salt Lake City,UT:IEEE,2001:949-952.
[2]鄒斌.基于構(gòu)件技術(shù)的嵌入式實(shí)時(shí)操作系統(tǒng)的研究[D].南京:南京航空航天大學(xué),2010:6-13. ZOU Bin.The Research on Component-based Real-time Embedded Operation System[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2010:6-13.(in Chinese)
[3]華盈韜.嵌入式Linux系統(tǒng)驅(qū)動(dòng)構(gòu)件的研究[D].武漢:華中科技大學(xué),2010:8-11. HUA Ying-tao.Research on Driver Component of Embedded Linux System[D].Wuhan:Huazhong University of Science and Technology,2010:8-11.(in Chinese)
[4]戴鴻君.基于異構(gòu)多核體系與組件化軟件的嵌入式系統(tǒng)研究[D].浙江:浙江大學(xué),2007:70-74. DAIHong-jun.An Embedded SysteMwith the Architecture of Chip Multiprocessor and Component-Based Software[D]. Zhejiang:Zhejiang University,2007:70-74.(in Chinese)
[5]李超.面向嵌入式領(lǐng)域的構(gòu)件組裝平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011:12-17. LIChao.Design and Implementation of Components Assembly PlatforMin Embedded Oriented Field[D].Xi′an:Xi′an University of Electronic Technology,2011:12-17.(in Chinese)
[6]周偉明.多核計(jì)算與程序設(shè)計(jì)[M].武漢:華中科技大學(xué)出版社,2009:316-322. ZHOU Wei-ming.Multi-core Computing and Programming[M].Wuhan:Huazhong University of Science and Technology Press,2009:316-322.(in Chinese)
[7]李鋒,金宏斌,馬建朝.多雷達(dá)數(shù)據(jù)處理中坐標(biāo)轉(zhuǎn)換的新方法[J].微計(jì)算機(jī)信息,2007,23(2-1):303-305. LIFeng,JIN Hong-bin,MA Jian-chao.A New Method of Coordinate Transformation UnderMulti-Radar Data Processing System[J].Microcomputer Information,F(xiàn)ebruary 2007,23(2-1):303-305.(in Chinese)
[8]廖鳴,李鵬,陳毅平,等.地心直角坐標(biāo)和大地坐標(biāo)轉(zhuǎn)換算法研究[J].電子科技,2010,23(2):18-21. LIAO Ming,LI Peng,CHEN Yi-ping,et al.Research on Transformation Methods froMthe Earth Rectangular Coordinate to the Geodetic Coordinate[J].Electronic Science and Technology,2010,23(2):18-21.(in Chinese)
DENG Zhu-sha was born in Kangding,Sichuan Province,in 1982.She received theM.S. degree in 2006.She is now an engineer.Her research concerns information fusion and embedded information processing.
Email:snoopyshylexp@yahoo.cn
Design of Cross-platforMAlgorithMs Middleware Based on VSIPL
DENG Zhu-sha
(Southwest China Institute of Electronic Technology,Chengdu 610036,China)
A method based on VSIPLAPIis proposed to solve the problems such asbad portability and reusability of embedded information processing in aerospace and communication field to improve portability and reusability between various systems and platforms.By AltiVec technique of Power-VSIPL,data-parallel design and loop unrolling optimization,themiddleware can insure precision and increase effectiveness by 1~5 times.
avionics;information system;communication datalink;cross-platforMalgorithMmiddleware;vector signal image processing library(VSIPL);vector acceleration
date:2013-02-07;Revised date:2013-04-23
??通訊作者:snoopyshylexp@yahoo.cn Corresponding author:snoopyshylexp@yahoo.cn
TP311.1
A
1001-893X(2013)06-0773-04
鄧竹莎(1982—),女,四川康定人,2006年獲碩士學(xué)位,現(xiàn)為工程師,主要研究方向?yàn)樾畔⑷诤霞扒度胧叫畔⑻幚怼?/p>
10.3969/j.issn.1001-893x.2013.06.020
2013-02-07;
2013-04-23