<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ò ) 收藏

  這時(shí)可以考慮使用線(xiàn)性匯編語(yǔ)言進(jìn)行開(kāi)發(fā)。線(xiàn)性匯編語(yǔ)言是中獨有的一種語(yǔ)言,介于高級語(yǔ)言和低級語(yǔ)言之間。因為在用手寫(xiě)匯編語(yǔ)言進(jìn)行應用開(kāi)發(fā)時(shí),開(kāi)發(fā)者除了要精通C6000的指令之外,還必須為指令分配功能單元、考慮指令的延遲和功能單元之間的配合以及合理分配使用32個(gè)寄存器,才能寫(xiě)出高效的并行指令,發(fā)揮C6000的威力。上面任何一個(gè)方面出現問(wèn)題,都會(huì )嚴重影響算法的效率。

  線(xiàn)性匯編語(yǔ)言的指令和匯編語(yǔ)言的指令完全相同,但是它有自己的匯編器指令系統,用于和匯編器配合使用。與匯編語(yǔ)言的最大區別在于,編寫(xiě)線(xiàn)性匯編語(yǔ)言時(shí)不需要考慮指令的延時(shí)、寄存器的使用和功能單元的分配,完全可以按照高級語(yǔ)言的方式進(jìn)行編寫(xiě)。當然由于它不是高級語(yǔ)言,有許多的限制。例如,在循環(huán)體時(shí),不能使用跳轉到循環(huán)體之外的跳轉指令;另外計數器只能使用減計數,如果使用加計數,優(yōu)化器將不能工作等等。但總的說(shuō)來(lái),它的代碼效率遠遠高于高級語(yǔ)言,而且開(kāi)發(fā)難度和開(kāi)發(fā)周期比匯編語(yǔ)言要小得多。

  在實(shí)際開(kāi)發(fā)過(guò)程中需要具體情況具體分析,選擇一種高效、快捷的開(kāi)發(fā)方法。以下結合應用開(kāi)發(fā)中的幾個(gè)模塊來(lái)簡(jiǎn)述我們使用的優(yōu)化方法。

2.1 使用匯編語(yǔ)言

  使用匯編語(yǔ)言進(jìn)行并行難度比較大。但在有些情況下,程序中數據有非常強的承接關(guān)系,并且該程序體邏輯關(guān)系清楚,使用的寄存器不超過(guò)32個(gè),這時(shí)直接使用匯編語(yǔ)言實(shí)現,效率會(huì )更高。另外,有些使用C語(yǔ)言比較難實(shí)現的運算函數,在C6000的匯編指令集中可能有專(zhuān)用指令,這時(shí)就可以直接使用匯編語(yǔ)言實(shí)現。

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

例1 32位歸一化函數norm_l()

  short norm_l(long L_var1)

   {short var_out;

   if (L_var1 == 0L) {

   var_out = (short)0;

   }

  else {

     if (L_var1 == (long)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);

}

使用匯編語(yǔ)言進(jìn)行優(yōu)化:

.global _norm_l

_norm_l:

B B3

CMPEQ 0,A4,B0

[!B0] NORM A4,A4

NOP 3

  消耗時(shí)間(時(shí)鐘周期):C語(yǔ)言norm_l()為723;匯編語(yǔ)言為11。

2.2 使用線(xiàn)性匯編語(yǔ)言重寫(xiě)整個(gè)函數

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

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


評論


相關(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>