999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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)處理

中圖分類(lèi)號(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ù)總線(xiàn)分別連接6個(gè)4 Mb內(nèi)部存儲(chǔ)器塊中的一個(gè),提供4字的數(shù)據(jù)、指令及I/O訪(fǎng)問(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ǔ)言編寫(xiě)。

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ǔ)言編寫(xiě)實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)移,編寫(xiě)代碼如下:

行號(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)銷(xiāo)循環(huán)計(jì)數(shù)器lc0減少循環(huán)開(kāi)銷(xiāo);通過(guò)j9和j10地址自增尋址減小尋址時(shí)間;并行運(yùn)行雙寄存器減少存取次數(shù);利用DSP寬數(shù)據(jù)總線(xiàn)進(jìn)行數(shù)據(jù)雙字訪(fǎng)問(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ù)和寫(xiě)數(shù)是對(duì)同一存儲(chǔ)塊進(jìn)行的,而DSP對(duì)同一存儲(chǔ)塊分配的數(shù)據(jù)總線(xiàn)不能同時(shí)進(jìn)行讀和寫(xiě),因此第9行和第11行執(zhí)行時(shí)插入等待周期,各消耗2個(gè)指令周期,總共消耗246個(gè)周期;當(dāng)Source與Destination處于不同存儲(chǔ)塊時(shí),DSP的不同數(shù)據(jù)總線(xiàn)可以同時(shí)訪(fǎng)問(wèn)兩個(gè)存儲(chǔ)塊,第9行和第11行的執(zhí)行不需額外等待,共消耗116個(gè)指令周期。

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

由于200是8的整數(shù)倍,因此還可以考慮采用128位數(shù)據(jù)總線(xiàn)進(jìn)行4字訪(fǎng)問(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相比,該方案將雙字訪(fǎng)問(wèn)變?yōu)?字訪(fǎng)問(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ù)總線(xiàn)以及零開(kāi)銷(xiāo)循環(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ù)總線(xiàn)以及零開(kāi)銷(xiāo)循環(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)用到各類(lèi)需要對(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] 李軍華.脈沖壓縮線(xiàn)性調(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ǔ)言?xún)?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三级| 日本高清在线看免费观看| 国产乱人伦偷精品视频AAA| 呦女亚洲一区精品| 久久国产乱子伦视频无卡顿| 欧美一级高清片欧美国产欧美| 日本欧美在线观看| 久久综合伊人77777| 久久男人视频| 国产网站免费看| 久久久久久国产精品mv| 国产在线观看一区精品| 四虎成人免费毛片| 国产午夜小视频| 国产91熟女高潮一区二区| 久久不卡精品| 精品国产美女福到在线不卡f| 日本欧美视频在线观看| 亚洲一级毛片在线观| 2021最新国产精品网站| 国产精品手机在线观看你懂的 | 精品福利视频网| 国产av一码二码三码无码| 成年人福利视频| 欧美三级不卡在线观看视频| 欧美一级特黄aaaaaa在线看片| 国产精品爽爽va在线无码观看| 99久久精品美女高潮喷水| 91精品网站| 欧美精品高清| 精品1区2区3区| 人妻精品久久无码区| 久久国产精品嫖妓| 在线免费观看a视频| 白浆视频在线观看| 国产网友愉拍精品视频| 99久久国产综合精品2023| 亚洲天堂网在线观看视频| 亚洲天堂网在线视频| 国产日韩丝袜一二三区| 亚洲欧洲国产成人综合不卡| 九九九国产| 国产精品成人不卡在线观看| 欧美一区二区三区国产精品 | 中文字幕久久波多野结衣| 国产真实乱子伦视频播放| 无码精品国产dvd在线观看9久 | 国产欧美精品午夜在线播放| 久久精品一卡日本电影| 欧美伊人色综合久久天天| 亚洲一区二区视频在线观看| 亚洲久悠悠色悠在线播放| 97在线观看视频免费| 美女无遮挡拍拍拍免费视频| 综合网久久| 国产成人禁片在线观看| 美女免费黄网站| 亚洲成av人无码综合在线观看| 黄色污网站在线观看| 五月婷婷丁香色| 久久久噜噜噜| 黄片一区二区三区| 欧美三级不卡在线观看视频| 99re视频在线| 手机在线免费毛片| 亚洲色成人www在线观看| 亚洲人成网线在线播放va| 国产精品人成在线播放| 91精品综合| 久久黄色毛片| 日韩av无码DVD| 一区二区三区国产精品视频| 亚洲国产天堂久久综合| 日韩二区三区| 成人福利在线观看| 四虎永久免费地址| 中文字幕无码av专区久久 | 无码AV高清毛片中国一级毛片| 国产三区二区| 国产毛片基地|