<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇DSP專區(qū)DSP6000系統(tǒng)開發(fā) → TMS320C6000嵌入式系統(tǒng)優(yōu)化編程的研究


      共有7219人關(guān)注過本帖樹形打印

    主題:TMS320C6000嵌入式系統(tǒng)優(yōu)化編程的研究

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    TMS320C6000嵌入式系統(tǒng)優(yōu)化編程的研究  發(fā)帖心情 Post By:2010-11-22 14:08:03

    使用匯編語言進(jìn)行編程時特別需要注意的是C6000指令的延遲情況,有些指令并不是立刻就能得到結(jié)果。C6000指令集中有延遲的指令如表1所示。

    表1 C6000的有延遲指令

    圖片點(diǎn)擊可在新窗口打開查看

    例1 32位歸一化函數(shù)morm_1()
    short morm_1(long L_var1)
    {short var_out;
    if (L_var1= = 0L){
    var_out = (short)0;
    }
    else {
    if (L_var1= = (logn)0xffffffffL{
    var_out = (short)31;
    }
    else {
    if (L_var1< 0L) {
    L_var1 = ~L_var1;
    }
    for(var_out=(short)0;L_var1<(long)0x40000000L;
    var_out++){
    L_var1 <<= 1L;
    }}}
    return(var_out);
    }
    使用匯編語言進(jìn)行優(yōu)化;
    .global norm_1
    _norm1:
    B B3
    CMPEQ 0,A4,B0
    [!B0] NORM A4,A4
    NOP 3
    消耗時間(時鐘周期):C語言norm_1()為723;匯編語言為11。

    2.2 使用線性匯編語言重寫整個函數(shù)

    對于某些以循環(huán)體為主的函數(shù)可以使用線性匯編語言重寫整個函數(shù)。使用匯編優(yōu)化器進(jìn)行優(yōu)化之后,效率是非常高的。

    下面例子是算法中計算幀能量的函數(shù),其中包含兩個單循環(huán)體。進(jìn)行優(yōu)化時,首先要確定循環(huán)的次數(shù)。對于循環(huán)次數(shù)是變量的情況,優(yōu)化器不進(jìn)行并行優(yōu)化;其次盡量減少數(shù)據(jù)存取次數(shù),例如以32位存取指令對16位數(shù)據(jù)進(jìn)行存取,可以節(jié)省一增的存取周期。仔細(xì)觀察C代碼,會發(fā)現(xiàn)兩次循環(huán)次數(shù)相同。第二個循環(huán)要用到第一個循環(huán)的結(jié)果,因此可以將兩個循環(huán)合并在一起,這樣就避免了在第二個循環(huán)中再從存儲器中取結(jié)果,減少了一半的Load操作。

    Long Comp_En(short *Dpnt)
    { int i;
    long Rez;
    short Temp[60];
    for (i=0;i<60;i ++) Temp [i] = shr(Dpnt[i],(short) 2);
    Rez=(long) 0;
    for (i=0; i <60; i ++) Rez=L_mac(Rez,Temp[i],Temp[i]);
    return Rez;
    }
    相應(yīng)的線性匯編程序如下:
    .global _Comp_En ;函數(shù)名定義,對c變量前加_
    _Comp_En .cproc Dpnt;函數(shù)頭定義,Dpnt是參數(shù)
    .reg Rez,Rez1,Rez2,1 ;寄存器定義,不必考慮實(shí)際的寄存器分配
    .reg t1,t2,x1,c1,m1,m2
    zero Rez
    zero Rez1
    zero Rez2
    mv Dpnt,c1
    mvk 30,i ;確定循環(huán)次數(shù)。因?yàn)橛肔DW代替LDH,循五環(huán)次數(shù)減少一半。
    loop1 .trip 30
    ldw *c1++,x1
    sh1 x1,16,t1
    shr t1,2,t1
    shr x1,2,t2 ;將兩個循環(huán)合在一起,又減少了一半的從內(nèi)存取數(shù)據(jù)的時間。
    smpyh t1,t1,m1
    smpyh t2,t2,m2
    sadd Rez1,m1,Rez1
    sadd Rez2,m2,Rez2
    [i] sub i,1,i ;循環(huán)計數(shù)器從30遞減
    [i] b loop1
    sadd Rez1,Rez2,Rez
    .return Rez
    .endproc
    消耗時間(時鐘周期):C語言為32971;線性匯編語言為93。

    2.3 使用線性匯編改寫復(fù)雜函數(shù)中的循環(huán)體

    當(dāng)函數(shù)的邏輯關(guān)系復(fù)雜,判斷、跳轉(zhuǎn)、函數(shù)調(diào)用情況特別多時,上面方法的效果就會在打折扣。這時可以使用線性匯編將其中的循環(huán)部分改寫成一個函數(shù),以優(yōu)化后的函數(shù)調(diào)用代替環(huán)部分,而不是優(yōu)化整個復(fù)雜函數(shù)。

    高速數(shù)字信號處理器件的應(yīng)用范圍越來越廣,特別是在移動通信領(lǐng)域中,軟件無線電、智能天線等新技術(shù)的實(shí)都需要強(qiáng)大的實(shí)時數(shù)字信號處理的支持。TMS320C6000系列DSP完全可以滿足此類要求。但目前對于并行DSP技術(shù)的軟硬件開發(fā)還處在摸索階段,如何充分利用高速DSP的資源,是這方面的研究重點(diǎn)。本文研究了最新推出的TMS320C6000的優(yōu)化策略,從工程和系統(tǒng)的角度總結(jié)出一套既能滿足實(shí)時性又能保證開發(fā)時效性的實(shí)用的優(yōu)化編程方法,以供分饗。

    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    TMS320C6000嵌入式系統(tǒng)優(yōu)化編程的研究








    簽名
    主站蜘蛛池模板: 中国内地毛片免费高清| 免费在线观看中文字幕| 9久热这里只有精品免费| 日本三级特黄在线观看| 亚洲精品成人a在线观看| 美国式禁忌23| 国产狂喷潮在线观看| xyx性爽欧美| 搞av.com| 亚洲av永久无码精品网站| 欧美色视频在线| 另类国产ts人妖系列| 青青青国产在线观看| 国产精品高清一区二区三区 | 国产麻豆剧传媒精品网站| 中日韩精品电影推荐网站| 日韩在线视频线视频免费网站| 亚洲精品成人网站在线播放| 粗大的内捧猛烈进出小视频| 国产在线98福利播放视频免费| 91免费福利视频| 天堂а√在线中文在线| 国产精品久久国产精麻豆99网站| 九九电影院理论片| 欧美国产激情18| 免费一级做a爰片久久毛片潮喷| 美女张开腿让男人桶爽国产| 国产成人精品无码一区二区| 97人妻天天爽夜夜爽二区| 天天操天天射天天插| 中文字幕天天躁日日躁狠狠躁免费| 日本天堂免费观看| 亚洲免费中文字幕| 欧美日韩亚洲国产一区二区综合| 免费视频www| 精品国产乱码一区二区三区| 国产国产人免费人成免费视频| 12至16末成年毛片| 国产精品爽爽va在线观看无码| hqsexmovie| 好吊妞视频988在线播放|