国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于異構(gòu)信號處理平臺的自動代碼生成工具

2016-12-01 08:03馬金全岳春生
電子技術(shù)應(yīng)用 2016年9期
關(guān)鍵詞:代碼生成信號處理異構(gòu)

杜 虹,彭 華,馬金全,岳春生

(信息工程大學(xué) 信息系統(tǒng)工程學(xué)院,河南 鄭州 450001)

基于異構(gòu)信號處理平臺的自動代碼生成工具

杜虹,彭華,馬金全,岳春生

(信息工程大學(xué) 信息系統(tǒng)工程學(xué)院,河南 鄭州 450001)

針對新型異構(gòu)通信信號處理平臺系統(tǒng)復(fù)雜、開發(fā)難度大、開發(fā)周期長、應(yīng)用復(fù)雜等問題,提出了一種新型綜合性的代碼自動生成工具。通過實現(xiàn)通信信號處理平臺中框架配置文件、要素宏定義文件、硬件驅(qū)動源代碼框架、軟件組件源程序框架、裝配粘合代碼的自動生成等功能,不僅可滿足平臺在實時性、分布式、可靠性等方面要求,而且可保證平臺中軟硬件編程的一致性,縮短了開發(fā)周期,大大減少需要手工編寫開發(fā)和測試代碼的工作量。

代碼自動生成;異構(gòu)平臺;Python;雙引擎

0 引言

隨著通信信號處理技術(shù)不斷發(fā)展,面臨著無線通信體制更新?lián)Q代速度快、軟硬件升級頻繁、研制成本高、開發(fā)周期長等問題[1]。為應(yīng)對多體制通信處理的快速更新,基于軟件化定義的異構(gòu)通信處理平臺成為了近年來的研究熱點[2]。

雖然異構(gòu)通信處理平臺性能良好、適用性廣,但是由于其涉及軟硬件類型繁多,導(dǎo)致了開發(fā)過程復(fù)雜、開發(fā)周期長、分工合作銜接困難等問題[3]。在龐大復(fù)雜的平臺系統(tǒng)中,一點改動就可能牽一發(fā)而動全身,導(dǎo)致程序的不一致性。為了降低軟件開發(fā)強度,縮短開發(fā)周期,減少代碼的重復(fù)書寫,一直以來軟件開發(fā)者都致力于代碼自動生成方面的研究。作為復(fù)用技術(shù)的核心和基礎(chǔ),代碼自動生成是提高軟件開發(fā)效率的有效手段[4]。自動代碼生成器不僅減小了開發(fā)人員的工作量,同時提高了工程的一致性,更易于分工與維護。

針對異構(gòu)通信信號處理平臺在實時性、分布式、可靠性等方面的要求,自動代碼生成器需應(yīng)對異構(gòu)平臺中的實時處理,以及編程一致的系統(tǒng)可靠性[5]。為了提高軟件開發(fā)綜合效率,實現(xiàn)組件的快速開發(fā),縮短新算法從理論到應(yīng)用的開發(fā)周期,本文提出了一種新型的代碼自動生成器工具。該生成工具包括框架配置文件向?qū)?、描述要素宏定義文件實時更新、硬件驅(qū)動源代碼框架生成、軟件組件源程序框架生成、軟件包組裝以及裝配粘合代碼的自動生成等。實測分析表明,該生成工具對于異構(gòu)通信平臺軟件快速開發(fā)、硬件迅速映射、用戶便捷應(yīng)用等方面有顯著突破,是異構(gòu)通信信號處理平臺實現(xiàn)其實時性、分布式、可靠性的重要工具。

1 自動代碼生成技術(shù)

目前,自動代碼生成技術(shù)應(yīng)用十分廣泛,在UML建模[6]、模型驅(qū)動框架(MDA)[7]、數(shù)據(jù)庫表創(chuàng)建[8]等方面都有所突破。但是在異構(gòu)通信處理平臺上的代碼自動生成技術(shù)仍不完善,只在異構(gòu)多核處理器方面有少量研究[9]。

基于異構(gòu)通信信號處理平臺的代碼自動生成關(guān)鍵在于建模抽象技術(shù)[10]、復(fù)用技術(shù)[11]、Python引擎技術(shù)[12]。代碼主要分為 3種類型[13]:第一種是框架代碼中的固定部分,無需做任何修改;第二種代碼指大部分不用修改,只對有相應(yīng)的輸入來源和邏輯規(guī)律的代碼進行修改;第三種是沒有任何規(guī)律可循的特殊代碼,這類代碼須由專業(yè)人員填寫,無法自動生成。第一種代碼可直接使用,第三種代碼留白待用,第二種代碼即需要實現(xiàn)自動生成的主要代碼。

代碼自動生成主要由元數(shù)據(jù)、代碼模板、數(shù)據(jù)模型和代碼生成引擎組成,其流程如圖1所示。

圖1 代碼自動生成框架

(1)元數(shù)據(jù):元數(shù)據(jù)是對異構(gòu)通信處理平臺資源的一種描述,通過建模實現(xiàn),是數(shù)據(jù)信息傳遞的基礎(chǔ)。

(2)代碼模板:代碼模板是用戶想要生成的源代碼模型,它表示源代碼中的共性部分,即無需修改的部分。

(3)數(shù)據(jù)模型:數(shù)據(jù)模型是代碼自動生成框架的基礎(chǔ)模型,具有高度的抽象性。它表示了源代碼中的個性部分,即需根據(jù)規(guī)律自動生成的部分。

(4)源代碼:源代碼是代碼自動生成的成果,即通過自動生成形成的可加入工程直接使用的完整代碼。

2 異構(gòu)平臺的軟件體系架構(gòu)

異構(gòu)通信處理平臺包括對ATCA、VPX、CPCI、專用PC等已有硬件處理平臺的兼容,可以統(tǒng)一地開發(fā)運行環(huán)境實現(xiàn)軟硬件的無縫交互,實現(xiàn)多功能應(yīng)用組件的高度共享。其軟件體系架構(gòu)分為硬件層、板級支持包層、操作系統(tǒng)與驅(qū)動層、硬件抽象層、核心服務(wù)層和應(yīng)用層。

一般地,為了實現(xiàn)異構(gòu)通信信號處理平臺中多處理器和軟件組件的升級繼承與資源共享,其自動代碼生成器需滿足平臺框架需求,具體層級分布如圖2所示。通信處理平臺的自動代碼生成器提高了軟件開發(fā)的綜合效率,實現(xiàn)硬件驅(qū)動和軟件組件的快速開發(fā),縮短了新算法應(yīng)用的實際周期,為通信領(lǐng)域的快速發(fā)展提供了良好的平臺。

圖2 代碼自動生成工具

3 自動代碼生成器實現(xiàn)

3.1操作系統(tǒng)與驅(qū)動層代碼生成

在操作系統(tǒng)與驅(qū)動層,異構(gòu)通信處理平臺的自動代碼生成工具主要涉及硬件設(shè)備驅(qū)動的自動代碼生成。處理器包括作為設(shè)備的處理器和平臺中的處理器。每個硬件設(shè)備驅(qū)動都要實現(xiàn)如表1所示的功能。

表1 硬件驅(qū)動功能模板表

驅(qū)動接口名稱由功能名稱和數(shù)據(jù)庫存儲的板卡類型號、處理器類型碼和處理器號組成。板卡類型號表明處理器所在板卡信息,確定處理器歸屬。處理器類型碼表明了處理器的類型、處理方式和編程模式。處理器號是對某板卡上具體處理器的確定。由以上三方面的信息共同確定系統(tǒng)中唯一一個處理器,由此定義驅(qū)動函數(shù)。

根據(jù)組合形成的函數(shù)名,通過函數(shù)模板實現(xiàn)驅(qū)動接口的定義、注冊和函數(shù)框架生成。首先根據(jù)函數(shù)名形成相應(yīng)的驅(qū)動接口定義文件,驅(qū)動接口注冊文件和驅(qū)動接口函數(shù)文件。根據(jù)函數(shù)定義、注冊、函數(shù)框架的函數(shù)模板,自動完成不同文件的驅(qū)動定義和注冊。

3.2核心服務(wù)層代碼生成

3.2.1配置文件向?qū)?/p>

在核心服務(wù)層,異構(gòu)通信處理平臺的自動代碼生成工具主要涉及配置文件向?qū)Ш兔枋鲆睾甓x。配置文件向?qū)е饕轻槍ζ脚_配置時的可視化向?qū)В饕矫嫒绫?所示。用戶可根據(jù)可視化向?qū)ζ脚_進行配置,由具體模板模式以及用戶對平臺的配置信息,形成系統(tǒng)可識別的配置文件。

表2 配置文件向?qū)0遄兞?/p>

3.2.2描述要素宏定義

描述要素是對平臺系統(tǒng)的整體描述,包括軟硬件物理元件、連接關(guān)系和功能描述。根據(jù)對異構(gòu)通信處理平臺建模,元數(shù)據(jù)結(jié)合特定編碼形成宏定義,模板變量如表3所示。自動生成要素宏定義保證了系統(tǒng)擴展升級時的一致性,是實現(xiàn)平臺高可靠性和可擴展性的保證。

表3 描述要素宏定義模板

3.3應(yīng)用層代碼生成

3.3.1軟件組件函數(shù)框架

軟件組件源代碼主要包括對應(yīng)用功能組件的定義和實現(xiàn)。軟件組件的函數(shù)如表4所示。組件函數(shù)名由組件名稱和功能名稱組成,創(chuàng)建對唯一組件的初始化、數(shù)據(jù)處理和參數(shù)配置等。根據(jù)組件名,在數(shù)據(jù)庫中查找組件對應(yīng)的參數(shù)名和參數(shù)類型,為實現(xiàn)數(shù)據(jù)結(jié)構(gòu)定義提供數(shù)據(jù)。根據(jù)組件名稱,由組件名作為定義文件和函數(shù)文件的名稱創(chuàng)建組件應(yīng)用文件。

表4 軟件組件功能模板表

3.3.2軟件裝配腳本

軟件裝配的腳本生成是通信處理平臺的中心環(huán)節(jié)。根據(jù)通信處理流程形成的腳本文件,記錄了組件功能和連接方式,是軟件化處理的核心。Python腳本可直接解釋執(zhí)行,省去了編譯時間;并且可與多種語言保持良好的兼容性和互操作性[14]。用Python做腳本文件可無縫調(diào)用C模塊程序,既運用了C的快速計算功能,也兼具了Python簡單的流模式記錄特性,是軟件裝配腳本的良好選擇。文本文件對操作系統(tǒng)的適應(yīng)性更強,增加了系統(tǒng)可移植性,但是需要設(shè)計文本格式和解析引擎。

為保證系統(tǒng)實時性和可擴展性,軟件裝配的腳本采用雙解析引擎,以txt文本和python文件共同作為裝配腳本,如圖3所示。兩種腳本可視化應(yīng)用對用戶沒有區(qū)別,可根據(jù)自己熟悉的編程模式選擇腳本類型。在應(yīng)用運行時,雙引擎解析自動識別應(yīng)用描述腳本,執(zhí)行應(yīng)用。

圖3 雙引擎機制

4 實測分析

為驗證本文提出的自動代碼生成器的有效性,將以一個QPSK調(diào)制解調(diào)信號處理流程為例,在實際系統(tǒng)上進行測試。

4.1實驗系統(tǒng)體系組成

本次實驗系統(tǒng)的硬件平臺以PC作為域管理器,ATCA和VPX作為處理平臺。ATCA平臺包括兩塊板卡,板卡上有DSP和FPGA。VPX包括一塊板卡,板卡上有FPGA。其中,DSP類型為 TMS320C6678,F(xiàn)PGA類型為XC5VLX50T,硬件平臺拓撲如圖4所示。

圖4 硬件平臺拓撲

以QPSK調(diào)制解調(diào)信號處理流程為例。Txdemo組件的功能是產(chǎn)生1 024長度的二進制信號,并通過輸出端口發(fā)送出去,Rxdemo組件的功能是接收信號,并且將信號保存到指定文件中,方便用戶查看。首先由Txdemo信源發(fā)送數(shù)據(jù),經(jīng)QPSK調(diào)制模塊調(diào)制,通過AWGN信道后,再由 QPSK解調(diào)模塊解調(diào),最后將解調(diào)后的數(shù)據(jù)保存在Rxdemo中。其中,Txdemo組件和Rxdemo組件部署在PC上,QPSK調(diào)制模塊和QPSK解調(diào)模塊部分別部署在ATCA的兩塊處理板上,AWGN信道部署在VPX的處理板上,具體部署如圖5。

圖5 QPSK調(diào)制解調(diào)波形

4.2實驗結(jié)果及分析

QPSK調(diào)制解調(diào)波形結(jié)果如圖6所示。結(jié)果與實驗預(yù)期結(jié)果相符,印證了框架的可行性,即自動代碼生成的編程一致性和可靠性。應(yīng)用模塊分布在不同的處理器上,滿足代碼自動生成的異構(gòu)平臺分布性。在系統(tǒng)運行過程中,除了模塊功能代碼之外,均由代碼自動生成實現(xiàn)。各模塊的運行時間如表5所示。經(jīng)計算,框架代碼生成時間開銷占應(yīng)用總開銷的2%,滿足實時性要求。綜合驗證結(jié)果,基于異構(gòu)通信處理平臺的自動代碼生成技術(shù)滿足了系統(tǒng)對實時性、分布式、可靠性等方面的要求,證明了自動代碼生成的有效性。

圖6 QPSK解調(diào)結(jié)果

5 結(jié)論

本文基于異構(gòu)通信處理平臺框架,根據(jù)其對實時性、分布式、可靠性等方面的要求,實現(xiàn)了該框架的自動代碼生成。實現(xiàn)了框架配置文件、要素宏定義文件、硬件驅(qū)動源代碼框架、軟件組件源程序框架以及裝配粘合代碼的自動生成,加強了平臺中軟硬件編程的一致性、縮短了開發(fā)周期,大大減少需要手工編寫開發(fā)和測試代碼的工作量,提高了軟件開發(fā)的效率。

表5 全流程及各模塊時間

[1]JTRS Draft Specification.Software communications architecture specification(rev.4.0)[R].Washington:JTRS Joint Program Office,2012.

[2]DICKENS M L.Surfer:Any-core software defined radio[J].Dissertations&Theses-Gradworks,2012,8(2):204-205.

[3]ADRAT M,ASCHEID G.Special issue on recent innovations in wireless software-defined radio systems[J].Journal of Signal Processing Systems,2015,78(3):239-241.

[4]Wang Miao,Qi Fengbin.Automatic code generation framework for Heterogeneous multi-core systems[J].Journal of Frontiers of Computer Science and Technology,2013,7(6):518-526.

[5]FAYEZ J A.Designing a software defined radio to run on a heterogeneous processor[D].Virginia:Virginia Polytechnic Institute and State University,2011.

[6]曹雷,薛平貞.UML建模在嵌入式系統(tǒng)開發(fā)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2013(16):41-44.

[7]張清波.基于MDA模型驅(qū)動的代碼生成的研究與設(shè)計[J].現(xiàn)代計算機:專業(yè)版,2015(9):73-79.

[8]劉雪飛,吳伯橋,王申強.XML文檔與數(shù)據(jù)庫表信息互相轉(zhuǎn)換的方法研究與實踐[J].信息安全與技術(shù),2013(7):67-69.

[9]TULIKA M,MIHAI P.Bahurupi:A polymorphic heterogeneous multi-core architecture[J].Acm Transactions on Architelture&Code Optimization,2013,8(4):73-94.

[10]CHEN Q,TIRUMALA S,JAIN A.Integrated circuit optimization modeling technology:US,US 8555233 B2[P].2013.

[11]HONG Y S,SONG H U.Refresh period signal generator with digital temperature information generation function:US,US7859931[P].2010.

[12]MUSHTAQ A,OLAUSSEN K.Automatic code generator for higher order integrators[J].Computer Physics Communications,2014,185(5):1461-1472.

[13]張曦,湯俊,湯小為,等.基于 TS201的信號處理軟件框架及自動代碼生成器[J].科學(xué)技術(shù)與工程,2013,13(18):5356-5360.

[14]SAUTER N K,HATTNE J,GROSSE-KUNSTLEVE R W,et al.New Python-based methods for data processing[J].Acta Crystallographica,2013,69(7):1274-1282.

Automatic code generation framework for heterogeneous processing platform

Du Hong,Peng Hua,Ma Jinquan,Yue Chunsheng
(College of Information System Engineering,Information Engineering University,Zhengzhou 450001,China)

To solve the Heterogeneous platform development difficulties on period and complexity,a new automatic code generation is put forward.This auto-code-generation comprises of framework configuration,element macro definition,hardware drive,component software and component assembly.Experimental results show that the auto-code-generation meets the demands of real-time,distributed processing and reliability,can ensure the consistence with the actual engineering and reduce workload on manual programming.

automatic code generation;heterogeneous platform;Python;twin-engine

TN92;TP311.5

A

10.16157/j.issn.0258-7998.2016.09.031

(2016-02-02)

杜虹(1989-),通信作者,女,碩士研究生,主要研究方向:軟件無線電,E-mail:duhong811@163.com。

彭華(1970-),男,博士,教授,主要研究方向:信號處理。

馬金全(1980-),男,博士,副教授,主要研究方向:軟件無線電。

中文引用格式:杜虹,彭華,馬金全,等.基于異構(gòu)信號處理平臺的自動代碼生成工具[J].電子技術(shù)應(yīng)用,2016,42 (9):118-121.

英文引用格式:Du Hong,Peng Hua,Ma Jinquan,et al.Automatic code generation framework for heterogeneous processing platform[J].Application of Electronic Technique,2016,42(9):118-121.

猜你喜歡
代碼生成信號處理異構(gòu)
試論同課異構(gòu)之“同”與“異”
Lustre語言可信代碼生成器研究進展
一種基于模型和模板融合的自動代碼生成方法
《信號處理》征稿簡則
《信號處理》第九屆編委會
《信號處理》征稿簡則
《信號處理》第九屆編委會
基于Web應(yīng)用界面的代碼自動生成軟件設(shè)計
異構(gòu)醇醚在超濃縮洗衣液中的應(yīng)用探索
overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
台东市| 滁州市| 犍为县| 龙陵县| 威远县| 徐汇区| 和政县| 大新县| 泰和县| 皋兰县| 蒙阴县| 普洱| 桐城市| 潮安县| 固阳县| 江永县| 文山县| 肇东市| 成武县| 平顶山市| 林周县| 图木舒克市| 蒙城县| 牙克石市| 大丰市| 丰原市| 怀化市| 珲春市| 望都县| 新津县| 冀州市| 堆龙德庆县| 雷波县| 阿巴嘎旗| 蕉岭县| 甘谷县| 澳门| 都兰县| 乌审旗| 兴国县| 上饶县|