<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TMS320C6000嵌入式系統優(yōu)化編程的研究

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

作者: 時(shí)間:2009-03-19 來(lái)源:網(wǎng)絡(luò ) 收藏

下面例子是算法中計算幀能量的函數,其中包含兩個(gè)單循環(huán)體。進(jìn)行時(shí),首先要確定循環(huán)的次數。對于循環(huán)次數是變量的情況,器不進(jìn)行并行;其次盡量減少數據存取次數,例如以32位存取指令對16位數據進(jìn)行存取,可以節省一半的存取周期。仔細觀(guān)察C代碼,會(huì )發(fā)現兩次循環(huán)次數相同。第二個(gè)循環(huán)要用到第一個(gè)循環(huán)的結果,因此可以將兩個(gè)循環(huán)合并在一起,這樣就避免了在第二個(gè)循環(huán)中再從存儲器中取結果,減少了一半的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 ;

  }

相應的線(xiàn)性匯序如下:

  .global _Comp_En ;函數名定義,對c變量前加__Comp_En .cproc Dpnt;函數頭定義,Dpnt是參數

  .reg Rez,Rez1,Rez2,I ;寄存器定義,不必考慮實(shí)際的寄存器分配

  .reg t1,t2,x1,c1,m1,m2

zero Rez

zero Rez1

zero Rez2

mv Dpnt,c1

mvk 30,i ;確定循環(huán)次數。因為用LDW代替LDH,循環(huán)次數減少一半。

loop1 .trip 30

ldw *c1++,x1

shl x1,16,t1

shr t1,2,t1

shr x1,2,t2 ;將兩個(gè)循環(huán)合在一起,又減少了一半的從內存取數據的時(shí)間。

smpyh t1,t1,m1

smpyh t2,t2,m2

sadd Rez1,m1,Rez1

sadd Rez2,m2,Rez2

[i] sub i,1,i ;循環(huán)計數器從30遞減

[i] b loop1

sadd Rez1,Rez2,Rez

.return Rez

.endproc

消耗時(shí)間(時(shí)鐘周期):C語(yǔ)言為32971;線(xiàn)性匯編語(yǔ)言為93。

2.3 使用線(xiàn)性匯編改寫(xiě)復雜函數中的循環(huán)體

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

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>