亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TS201的軟件優(yōu)化設(shè)計(jì)

        2015-04-12 00:00:00任臘梅古康李增元
        現(xiàn)代電子技術(shù) 2015年2期

        摘 "要: 數(shù)據(jù)實(shí)時(shí)處理能力是雷達(dá)信號(hào)處理等實(shí)時(shí)系統(tǒng)的重要指標(biāo),提高軟件運(yùn)行效率是系統(tǒng)軟件設(shè)計(jì)中必須要考慮的問(wèn)題。大批量數(shù)據(jù)讀取和存儲(chǔ)操作存在于信號(hào)處理各工作階段,對(duì)其進(jìn)行充分優(yōu)化是信號(hào)處理軟件設(shè)計(jì)的重要組成部分。在此以ADSP TS201平臺(tái)數(shù)據(jù)轉(zhuǎn)存為例,描述了軟件優(yōu)化的設(shè)計(jì)思路和處理方法,運(yùn)行結(jié)果表明,充分應(yīng)用DSP并行處理特性和寬數(shù)據(jù)操作,采用匯編語(yǔ)言編程,可以使軟件運(yùn)行效率得到顯著提高。

        關(guān)鍵詞: TS201; 匯編語(yǔ)言; 優(yōu)化設(shè)計(jì); 指令并行; 信號(hào)處理

        中圖分類號(hào): TN919?34; TP312 " " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A " " " " " " " " " 文章編號(hào): 1004?373X(2015)02?0046?03

        Software optimization design based on TS201

        REN La?mei, GU Kang, LI Zeng?yuan

        (Shaanxi Huanghe Group Co., Ltd., Xi’an 710043, China)

        Abstract: The capability of real?time data processing is a significant index for evaluation of real?time processing systems, such as radar signal processing system. Improvement of software efficiency must be considered in system software design. Due to the fact that the readout and storage of mass data exist in every stage of data processing, the sufficient optimization becomes imperative for design of signal processing software. Taking data dump based on ADSP TS201 platform for example, the principle of optimization design and its processing approach are illuminated. Preliminary results verify that the software running efficiency can be dramatically improved by the parallel processing and broad data operation with DSP, as well as application of assembler language programming.

        Keywords: TS201; assemble language; optimization design; instruction parallel; signal processing

        雷達(dá)作為一種探測(cè)、捕獲及跟蹤目標(biāo)的現(xiàn)代化設(shè)備,要求具有較高的實(shí)時(shí)處理能力。信號(hào)處理系統(tǒng)作為雷達(dá)的重要組成部分,負(fù)責(zé)對(duì)回波信號(hào)進(jìn)行處理并檢測(cè)目標(biāo)信號(hào),是雷達(dá)系統(tǒng)中數(shù)據(jù)處理量最大、運(yùn)算復(fù)雜度最高的部分,其實(shí)時(shí)處理能力的提高能夠達(dá)到提升雷達(dá)系統(tǒng)整體性能的目的[1?2]。對(duì)信號(hào)處理軟件的優(yōu)化通常需結(jié)合具體DSP處理器平臺(tái)進(jìn)行,本文主要介紹了基于ADSP TS201的軟件優(yōu)化設(shè)計(jì)方法。

        1 "優(yōu)化設(shè)計(jì)方法

        軟件的優(yōu)化設(shè)計(jì)通常包括如下兩部分:

        (1) 對(duì)軟件算法的優(yōu)化,即通過(guò)尋找最適合硬件實(shí)現(xiàn)的算法,提高軟件運(yùn)行效率;

        (2) 對(duì)代碼的優(yōu)化,即通過(guò)優(yōu)化代碼的組合及順序,提高代碼執(zhí)行效率。當(dāng)實(shí)現(xiàn)算法確定后,軟件的優(yōu)化主要是代碼的優(yōu)化。

        為了提高軟件執(zhí)行效率需采用匯編語(yǔ)言進(jìn)行編程,通過(guò)充分利用CPU資源,使其在最少的時(shí)間完成最多的指令。ADSP TS201是ADI的一款支持浮點(diǎn)數(shù)運(yùn)算的高性能數(shù)字信號(hào)處理芯片,其內(nèi)部包含兩個(gè)運(yùn)算模塊(X、Y模塊)及2個(gè)整數(shù)運(yùn)算寄存器組(J、K寄存器組),雙運(yùn)算模塊及雙整數(shù)運(yùn)算寄存器組支持并行操作。4條相互獨(dú)立的128位寬度的內(nèi)部數(shù)據(jù)總線分別連接6個(gè)4 Mb內(nèi)部存儲(chǔ)器塊中的一個(gè),提供4字的數(shù)據(jù)、指令及I/O訪問(wèn)。內(nèi)部靜態(tài)超標(biāo)量結(jié)構(gòu)使得DSP每周期可執(zhí)行多達(dá)4條指令,24個(gè)16位定點(diǎn)運(yùn)算和6個(gè)浮點(diǎn)運(yùn)算[3?5]。

        結(jié)合ADSP TS201的硬件結(jié)構(gòu),對(duì)軟件的優(yōu)化主要可從如下幾個(gè)方面進(jìn)行考慮:充分利用雙運(yùn)算模塊和雙整型ALU,進(jìn)行并行操作;使用自增的指針尋址方式,減小尋址時(shí)間;充分利用單周期多指令操作。

        2 "軟件優(yōu)化實(shí)例

        通常雷達(dá)信號(hào)處理包括脈沖壓縮、MTI、MTD、恒虛警等一系列處理[6?8]。這些處理包含大量的乘法、加法等運(yùn)算,計(jì)算處理較為復(fù)雜,不可能將處理中間結(jié)果直接存儲(chǔ)在寄存器中用于后續(xù)處理,因此需要將各算法處理結(jié)果及時(shí)存儲(chǔ)在DSP內(nèi)存中,這樣就要對(duì)數(shù)據(jù)進(jìn)行反復(fù)地讀取和存儲(chǔ)[9?10]。數(shù)據(jù)讀取和存儲(chǔ)操作的優(yōu)化設(shè)計(jì)就成為軟件優(yōu)化中的重要部分。本文就以包含數(shù)據(jù)讀取和存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)存操作為例,介紹軟件的優(yōu)化設(shè)計(jì)方法。數(shù)據(jù)轉(zhuǎn)存操作要求將數(shù)組Source中的200項(xiàng)數(shù)據(jù)轉(zhuǎn)移到數(shù)組Destination中。該功能可使用C語(yǔ)言實(shí)現(xiàn),也可以使用匯編語(yǔ)言編寫。

        2.1 "方案1:C語(yǔ)言for循環(huán)實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)移

        采用C語(yǔ)言編程,最簡(jiǎn)單的方法是用for循環(huán)語(yǔ)句進(jìn)行數(shù)據(jù)的循環(huán)讀取和存儲(chǔ),如下所示:

        int Trans_loop;

        for (Trans_loop =0; Trans_loop lt;200; Trans_loop ++)

        { " " Source[Trans_loop] = Destination[Trans_loop]; }

        該段代碼經(jīng)編譯器編譯后產(chǎn)生的匯編代碼如表1所示。

        表1 for循環(huán)語(yǔ)句執(zhí)行過(guò)程

        注:表中的黑體字表示插入了等待周期。

        表1匯編代碼中,第2~16行循環(huán)執(zhí)行200次,實(shí)現(xiàn)200項(xiàng)數(shù)據(jù)的轉(zhuǎn)移。一個(gè)數(shù)據(jù)的轉(zhuǎn)移需15行指令,若無(wú)等待周期需消耗15個(gè)指令周期,則轉(zhuǎn)存200項(xiàng)數(shù)據(jù)總共需要1+15×200=3 001個(gè)指令周期。實(shí)際運(yùn)行中,有時(shí)會(huì)由于數(shù)據(jù)不穩(wěn)定,DSP自動(dòng)插入等待周期;部分跳轉(zhuǎn)指令會(huì)打斷流水的執(zhí)行,也會(huì)插入等待周期,導(dǎo)致實(shí)際消耗指令周期大于理論值。表1中給出了實(shí)際的指令周期消耗數(shù),表中的黑體字表示插入了等待周期,其中第3行、第4行、第8行、第11行的插入是因?yàn)橹噶钪杏昧肆⒓磾?shù),此指令在執(zhí)行時(shí)需從程序存儲(chǔ)塊中取出數(shù)據(jù),導(dǎo)致指令執(zhí)行時(shí)間增加??傊噶钪芷谟?jì)算時(shí)最后加10是因?yàn)檠h(huán)結(jié)束時(shí),PC預(yù)測(cè)錯(cuò)誤,指令流水被打斷,系統(tǒng)插入10個(gè)等待周期,該段代碼總共消耗4 823個(gè)指令周期。

        2.2 "方案2:匯編語(yǔ)言雙字轉(zhuǎn)移

        第2種方案是用匯編語(yǔ)言編寫實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)移,編寫代碼如下:

        行號(hào) 指令

        1 j10=j31+_Source;;

        2 k10=k31+_Source+2;xr0 = 200;;

        3 j0=j31+_Destination;;

        4 k0=k31+_Destination+2;;

        5 xr0=lshift r0 by ?2;;

        6 lc0=xr0;;

        7 xr1:0=l[j10+=4];;

        8 transfer_begin:

        9 yr1:0=l[k10+=4];l[j0+=4]=xr1:0;;

        10 .align_code 4;

        11 if nlc0e,jump transfer_begin; l[k0+=4]=yr1:0;xr1:0=l[j10+=4];;

        與方案1相比,該方案使用TS201的零開(kāi)銷循環(huán)計(jì)數(shù)器lc0減少循環(huán)開(kāi)銷;通過(guò)j9和j10地址自增尋址減小尋址時(shí)間;并行運(yùn)行雙寄存器減少存取次數(shù);利用DSP寬數(shù)據(jù)總線進(jìn)行數(shù)據(jù)雙字訪問(wèn),減少循環(huán)次數(shù),理論上總共需要107個(gè)指令周期。實(shí)際運(yùn)行時(shí),第9行、第11行的在前兩次執(zhí)行時(shí)由于數(shù)據(jù)不穩(wěn)定會(huì)插入等待周期,當(dāng)Source與Destination處于相同存儲(chǔ)塊時(shí),由于第9行和第11行中讀數(shù)和寫數(shù)是對(duì)同一存儲(chǔ)塊進(jìn)行的,而DSP對(duì)同一存儲(chǔ)塊分配的數(shù)據(jù)總線不能同時(shí)進(jìn)行讀和寫,因此第9行和第11行執(zhí)行時(shí)插入等待周期,各消耗2個(gè)指令周期,總共消耗246個(gè)周期;當(dāng)Source與Destination處于不同存儲(chǔ)塊時(shí),DSP的不同數(shù)據(jù)總線可以同時(shí)訪問(wèn)兩個(gè)存儲(chǔ)塊,第9行和第11行的執(zhí)行不需額外等待,共消耗116個(gè)指令周期。

        2.3 "方案3:匯編語(yǔ)言四字轉(zhuǎn)移

        由于200是8的整數(shù)倍,因此還可以考慮采用128位數(shù)據(jù)總線進(jìn)行4字訪問(wèn),此時(shí)代碼如下:

        行號(hào) 指令

        1 j10=j31+_Source;;

        2 k10= k31+_Source+4;xr0 = 200;;

        3 j0=j31+_Destination;;

        4 k0=k31+_Destination+4;;

        5 xr0=lshift r0 by ?3;;

        6 lc0=xr0;;

        7 xr3:0=q[j10+=8];;

        8 transfer_begin:

        9 yr3:0=q[k10+=8];q[j0+=8]=xr3:0;;

        10 .align_code 4;

        11 if nlc0e,jump transfer_begin;q[k0+=8]=yr3:0;

        xr3:0=q[j10+=8];;

        與方案2相比,該方案將雙字訪問(wèn)變?yōu)?字訪問(wèn),進(jìn)一步減少了讀取次數(shù),理論消耗57個(gè)指令周期。實(shí)際執(zhí)行時(shí)由于第7行到第9行、第9行到第11行以及第11行到第9行2個(gè)連續(xù)的指令行中都有對(duì)xr1:0和yr1:0寄存器的操作,當(dāng)數(shù)據(jù)未穩(wěn)定時(shí),會(huì)插入等待周期。當(dāng)Source與Destination處于相同存儲(chǔ)塊時(shí),總共消耗132個(gè)周期。當(dāng)Source與Destination處于不同存儲(chǔ)塊時(shí),總共消耗66個(gè)指令周期。

        從3種方案的執(zhí)行結(jié)果可以看到,通過(guò)充分利用指令并行、寬數(shù)據(jù)總線以及零開(kāi)銷循環(huán)計(jì)數(shù)器,并將源數(shù)據(jù)區(qū)和目的數(shù)據(jù)區(qū)分配到不同的存儲(chǔ)塊中,對(duì)匯編代碼進(jìn)行一步步的優(yōu)化,方案2可以在116個(gè)周期內(nèi)完成方案1中需用4 823個(gè)指令周期才能完成的任務(wù),效率提高了約40倍;方案3可以在66個(gè)指令周期內(nèi)完成,相對(duì)方案1效率提高了約70倍。

        需要說(shuō)明的是,此時(shí)統(tǒng)計(jì)的指令周期數(shù)包含了循環(huán)運(yùn)行前的準(zhǔn)備計(jì)算,這些計(jì)算與循環(huán)次數(shù)無(wú)關(guān),此處僅以200個(gè)數(shù)據(jù)為例,當(dāng)轉(zhuǎn)存數(shù)據(jù)越大時(shí),實(shí)際的效率差異越大。方案3要求使用存儲(chǔ)區(qū)是雙字對(duì)齊的,方案4要求存儲(chǔ)區(qū)都是4字對(duì)齊的,這要求在數(shù)組定義時(shí)使用關(guān)鍵字align進(jìn)行設(shè)置。

        3 "結(jié) "語(yǔ)

        通過(guò)充分利用指令并行、寬數(shù)據(jù)總線以及零開(kāi)銷循環(huán)計(jì)數(shù)器,可以顯著提高數(shù)據(jù)轉(zhuǎn)移的運(yùn)行效率。本文所述方法為軟件優(yōu)化中的基礎(chǔ)方法,更多的方法可結(jié)合具體算法進(jìn)行,包括充分利用雙運(yùn)算模塊和雙整型ALU進(jìn)行并行操作、合理安排指令順序減少指令等待延時(shí)充分發(fā)揮軟件流水作用、將程序和數(shù)據(jù)或同一指令周期中涉及的數(shù)據(jù)放在不同存儲(chǔ)器塊中、循環(huán)展開(kāi)等[11?13]。數(shù)據(jù)的讀取與存儲(chǔ)是所有算法實(shí)現(xiàn)的基礎(chǔ),本文所述優(yōu)化處理方法可應(yīng)用到各類需要對(duì)大批量數(shù)據(jù)進(jìn)行處理的算法中。本文以AD公司TS201為例進(jìn)行了說(shuō)明,對(duì)于諸如TI6678等其他DSP處理器,雖然具體指令有所不同,但優(yōu)化處理的思路是同樣適用的。

        參考文獻(xiàn)

        [1] 蘇濤.實(shí)時(shí)信號(hào)處理系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2005.

        [2] Analog Devices. ADSP?TS201 TigerSHARC processor programming reference (1.0) [R]. USA: Analog Devices, 2004.

        [3] Analog Devices. ADSP?TS201 TigerSHARC Processor hardware reference (1.1) [R]. USA: Analog Devices, 2004.

        [4] 劉書(shū)明,羅勇江.ADSP TS20XS 系列DSP原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.

        [5] 羅軍.基于TS20X DSP的機(jī)載雷達(dá)實(shí)時(shí)信號(hào)處理[D].成都:電子科技大學(xué),2004.

        [6] 韓婧.微波稀布陣?yán)走_(dá)目標(biāo)檢測(cè)技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2010.

        [7] 李軍華.脈沖壓縮線性調(diào)頻測(cè)距系統(tǒng)信號(hào)處理技術(shù)研究[D].南京:南京理工大學(xué),2007.

        [8] 吳旖.雷達(dá)信號(hào)恒虛警檢測(cè)處理研究[D].南京:南京理工大學(xué),2009.

        [9] 夏金艷.某末制導(dǎo)雷達(dá)信號(hào)處理機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2009.

        [10] 吳順君,梅曉春.雷達(dá)信號(hào)處理和數(shù)據(jù)處理技術(shù)[M].北京:電子工業(yè)出版社,2010.

        [11] 郭淑婷.DSP匯編語(yǔ)言優(yōu)化設(shè)計(jì)[J].河南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009,37(1):151?154.

        [12] Analog Devices. Writing efficient floating?point FFTs for ADSP?TS201 TigerSHARC processors [R]. USA: Analog Devices, 2004.

        [13] 劉浪,陳伯孝,任臘梅.TS20XS系列DSP程序優(yōu)化設(shè)計(jì)方法及應(yīng)用[J].火控雷達(dá)技術(shù),2011(3):66?71.

        欧美人妻日韩精品| 日韩午夜三级在线视频| 亚洲av狠狠爱一区二区三区| 日韩人妖视频一区二区| 亚洲精品白浆高清久久久久久| 丰满熟妇乱子伦| 日韩欧美国产自由二区| 久久人妻少妇中文字幕| 日本乱熟人妻中文字幕乱码69| 国产激情久久久久久熟女老人| 无码丰满熟妇一区二区| 久久久精品人妻一区亚美研究所| 国产乱人伦AⅤ在线麻豆A| 亚洲福利一区二区不卡| 最新中文字幕一区二区| 娇妻在交换中哭喊着高潮| 狠狠躁夜夜躁人人爽天天天天97| 91福利精品老师国产自产在线| 日韩精品自拍一区二区| 亚洲综合网国产精品一区| 777精品久无码人妻蜜桃| 成年在线观看免费视频| 日本一区二区在线资源| 韩国一区二区三区黄色录像| 天堂在线资源中文在线8| 无码骚夜夜精品| 国产午夜亚洲精品一级在线| 偷拍一区二区三区黄片| 精品一区二区三区在线视频| аⅴ资源天堂资源库在线| 亚洲成a∨人片在线观看无码| 日本在线免费一区二区三区| 中文字幕乱码在线人妻| 免费看av在线网站网址| 女人与牲口性恔配视频免费| 能看的网站中文字幕不卡av| 亚洲一区二区国产一区| 国产人妻人伦精品1国产| 99久久综合狠狠综合久久 | 国产人妖一区二区在线| 国产高清精品一区二区|