浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » D S P

C代碼在TMS320C54X上的手工匯編優(yōu)化

發(fā)布時(shí)間:2008/8/18 0:00:00 訪問次數(shù):621

1 引言

  隨著dsp技術(shù)的不斷發(fā)展和完善,數(shù)字信號(hào)處理的應(yīng)用范圍越來越廣泛。工控、計(jì)算機(jī)、通信和消費(fèi)電子產(chǎn)品中,都會(huì)找到它的影子。

  近年來,隨著多媒體通信的蓬勃發(fā)展,dsp也越來越多的應(yīng)用在多媒體通信中,而在多媒體通信中dsp多用于語音壓縮和圖像處理等方面,而這些都需要巨大的計(jì)算量,在實(shí)時(shí)通信中一些低速dsp難以滿足要求,而使用高速dsp會(huì)大大提高成本,所以對(duì)代碼進(jìn)行優(yōu)化是現(xiàn)在dsp開發(fā)中常用的一種方法。由于dsp的特殊結(jié)構(gòu),編譯器的編譯效率都比較低,難以將dsp計(jì)算能力全部發(fā)揮出來,所以就必須根據(jù)dsp的特殊結(jié)構(gòu)和指令集代碼進(jìn)行手工的匯編優(yōu)化。

  本文結(jié)合筆者在ti公司的tms320vc5402 dsp上的對(duì)g.729算法的優(yōu)化經(jīng)驗(yàn),提出一些優(yōu)化的方法和建議,而這些方法也適用其他54系列的dsp。

2 芯片介紹

  tms320c54x是ti公司于1996年推出的新一代定點(diǎn)數(shù)字處理器,它具有功耗小、高度并行等優(yōu)點(diǎn),可以滿足電信等眾多領(lǐng)域的實(shí)時(shí)處理要求。54系列有很多不同型號(hào)的芯片,它們的結(jié)構(gòu)都是一樣的,只是在接口和存儲(chǔ)器空間上有些不同。在54系列眾多dsp芯片中 tms320vc5402是使用最廣泛的一種芯片,接下來將以tms320vc5402為例介紹54系列dsp的性能特點(diǎn):

  運(yùn)算速度最高達(dá)100mips

  具有先進(jìn)的多總線結(jié)構(gòu),三條16 位數(shù)據(jù)存儲(chǔ)器總線和一條程序存儲(chǔ)器總線

  40位算術(shù)邏輯單元(alu),包括一個(gè)40位桶形移位器和兩個(gè)40位累加

   一個(gè)17bit×17bit乘法器和40位專用加法器,允許16位帶/不帶符號(hào)乘法

  8個(gè)輔助寄存器和一個(gè)軟件棧

  內(nèi)部采用改進(jìn)的哈佛結(jié)構(gòu),程序空間和數(shù)據(jù)空間分開,允許同時(shí)取指令和取操作數(shù),并且允許在程序和數(shù)據(jù)空間相互傳送數(shù)據(jù)

  最大64k×16bit外部數(shù)據(jù)空間,最大1m×16bit外部程序空間,4k×16bit片內(nèi)rom,16k×16bit片內(nèi)ram
  內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(pll)時(shí)鐘發(fā)生器、兩個(gè)多通道緩沖串口、一個(gè)8位并行與外部處理器通信的hpi口、兩個(gè)16位定時(shí)器以及6通道dma控制器

  支持單指令循環(huán)和塊循環(huán),采用六級(jí)流水線,將一條指令執(zhí)行所需要的取指、譯碼、取操作數(shù)并執(zhí)行等幾個(gè)步驟同時(shí)完成,是指令周期降到最小適合算法的優(yōu)化

3 代碼優(yōu)化

  對(duì)c代碼進(jìn)行手工匯編優(yōu)化有三種方法:1.對(duì)照c代碼寫出匯編代碼,這種方法優(yōu)化的效率很高,但是開發(fā)難度很大特別是當(dāng)代碼量很大,結(jié)構(gòu)很復(fù)雜時(shí)優(yōu)化很容易出錯(cuò);2.先用編譯器產(chǎn)生匯編代碼,然后改寫匯編代碼,這種方法優(yōu)化的效率較低,因?yàn)榭蚣鼙幌薅,但是開發(fā)難度降低了,不容易出錯(cuò)。

  由于現(xiàn)在常用的一些音頻、圖像處理算法都是結(jié)構(gòu)很復(fù)雜的程序,所以建議使用第二種優(yōu)化方法。

3.1產(chǎn)生匯編代碼

  ti公司為dsp開發(fā)者提供一套編譯開發(fā)平臺(tái)叫ccs (code composer studio),該工具提供了編譯器可以將c語言的程序編譯為dsp的匯編語言程序,然后鏈接生成可以在dsp上執(zhí)行的coff格式的out文件。

  而ccs自身也提供優(yōu)化器可對(duì)c代碼進(jìn)行優(yōu)化,并產(chǎn)生匯編語言程序,具體過程如圖1所示。

  ccs提供了4級(jí)的文件優(yōu)化方案,分別是o0、o1、o2、o3,以下具體說明。

(1) o0 寄存器級(jí)別

  執(zhí)行控制流程簡(jiǎn)化
  用寄存器分配變量
  執(zhí)行交替循環(huán)
  排除未用的代碼
  簡(jiǎn)化公式和表述
  擴(kuò)大對(duì)內(nèi)連函數(shù)的調(diào)用

(2) o1 局部級(jí)別

  執(zhí)行所有o0級(jí)別的優(yōu)化,并且:

  執(zhí)行局部常量的傳播
  排除未用的賦值
  排除局部共用表達(dá)式

(3) o2 函數(shù)級(jí)別

  執(zhí)行所有o1級(jí)別的優(yōu)化,并且:

  執(zhí)行循環(huán)優(yōu)化
  排除全局共用子表達(dá)式
  排除全局不用的賦值
  執(zhí)行打開循環(huán)

(4) o3 文件級(jí)別

  執(zhí)行所有o1級(jí)別的優(yōu)化,并且:

  排除未被調(diào)用的函數(shù)
  簡(jiǎn)化返回值沒被使用的函數(shù)
  讓小函數(shù)變成內(nèi)聯(lián)調(diào)用
  保存函數(shù)說明,以便主函數(shù)被優(yōu)化時(shí)知道被調(diào)用 函數(shù)的屬性
  識(shí)別文件級(jí)別的變量的特性

  在使用o3級(jí)別的優(yōu)化時(shí),還可以使用別的選項(xiàng)執(zhí)行更細(xì)致的優(yōu)化

  oln 得到標(biāo)準(zhǔn)庫函數(shù)的文件
  onn 創(chuàng)造優(yōu)化信息文件
  pm 執(zhí)行程序級(jí)別優(yōu)化,編譯多個(gè)源文件


  而我們?cè)谧鰞?yōu)化時(shí),選的是o2級(jí)別的優(yōu)化,因?yàn)槭褂胦2級(jí)別優(yōu)化后產(chǎn)生的匯編文件帶有比較多的注釋信息,比較容易看懂程序,建議對(duì)程序不太熟和對(duì)匯編語言不太熟練的人使用。

3.2手工匯編優(yōu)化

  因?yàn)閰R編語言可讀性很差,并且代碼量很大,所以手工優(yōu)化工作量很大,并且容易出錯(cuò)。為了確保優(yōu)化不出錯(cuò),我們就先制

1 引言

  隨著dsp技術(shù)的不斷發(fā)展和完善,數(shù)字信號(hào)處理的應(yīng)用范圍越來越廣泛。工控、計(jì)算機(jī)、通信和消費(fèi)電子產(chǎn)品中,都會(huì)找到它的影子。

  近年來,隨著多媒體通信的蓬勃發(fā)展,dsp也越來越多的應(yīng)用在多媒體通信中,而在多媒體通信中dsp多用于語音壓縮和圖像處理等方面,而這些都需要巨大的計(jì)算量,在實(shí)時(shí)通信中一些低速dsp難以滿足要求,而使用高速dsp會(huì)大大提高成本,所以對(duì)代碼進(jìn)行優(yōu)化是現(xiàn)在dsp開發(fā)中常用的一種方法。由于dsp的特殊結(jié)構(gòu),編譯器的編譯效率都比較低,難以將dsp計(jì)算能力全部發(fā)揮出來,所以就必須根據(jù)dsp的特殊結(jié)構(gòu)和指令集代碼進(jìn)行手工的匯編優(yōu)化。

  本文結(jié)合筆者在ti公司的tms320vc5402 dsp上的對(duì)g.729算法的優(yōu)化經(jīng)驗(yàn),提出一些優(yōu)化的方法和建議,而這些方法也適用其他54系列的dsp。

2 芯片介紹

  tms320c54x是ti公司于1996年推出的新一代定點(diǎn)數(shù)字處理器,它具有功耗小、高度并行等優(yōu)點(diǎn),可以滿足電信等眾多領(lǐng)域的實(shí)時(shí)處理要求。54系列有很多不同型號(hào)的芯片,它們的結(jié)構(gòu)都是一樣的,只是在接口和存儲(chǔ)器空間上有些不同。在54系列眾多dsp芯片中 tms320vc5402是使用最廣泛的一種芯片,接下來將以tms320vc5402為例介紹54系列dsp的性能特點(diǎn):

  運(yùn)算速度最高達(dá)100mips

  具有先進(jìn)的多總線結(jié)構(gòu),三條16 位數(shù)據(jù)存儲(chǔ)器總線和一條程序存儲(chǔ)器總線

  40位算術(shù)邏輯單元(alu),包括一個(gè)40位桶形移位器和兩個(gè)40位累加

   一個(gè)17bit×17bit乘法器和40位專用加法器,允許16位帶/不帶符號(hào)乘法

  8個(gè)輔助寄存器和一個(gè)軟件棧

  內(nèi)部采用改進(jìn)的哈佛結(jié)構(gòu),程序空間和數(shù)據(jù)空間分開,允許同時(shí)取指令和取操作數(shù),并且允許在程序和數(shù)據(jù)空間相互傳送數(shù)據(jù)

  最大64k×16bit外部數(shù)據(jù)空間,最大1m×16bit外部程序空間,4k×16bit片內(nèi)rom,16k×16bit片內(nèi)ram
  內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(pll)時(shí)鐘發(fā)生器、兩個(gè)多通道緩沖串口、一個(gè)8位并行與外部處理器通信的hpi口、兩個(gè)16位定時(shí)器以及6通道dma控制器

  支持單指令循環(huán)和塊循環(huán),采用六級(jí)流水線,將一條指令執(zhí)行所需要的取指、譯碼、取操作數(shù)并執(zhí)行等幾個(gè)步驟同時(shí)完成,是指令周期降到最小適合算法的優(yōu)化

3 代碼優(yōu)化

  對(duì)c代碼進(jìn)行手工匯編優(yōu)化有三種方法:1.對(duì)照c代碼寫出匯編代碼,這種方法優(yōu)化的效率很高,但是開發(fā)難度很大特別是當(dāng)代碼量很大,結(jié)構(gòu)很復(fù)雜時(shí)優(yōu)化很容易出錯(cuò);2.先用編譯器產(chǎn)生匯編代碼,然后改寫匯編代碼,這種方法優(yōu)化的效率較低,因?yàn)榭蚣鼙幌薅,但是開發(fā)難度降低了,不容易出錯(cuò)。

  由于現(xiàn)在常用的一些音頻、圖像處理算法都是結(jié)構(gòu)很復(fù)雜的程序,所以建議使用第二種優(yōu)化方法。

3.1產(chǎn)生匯編代碼

  ti公司為dsp開發(fā)者提供一套編譯開發(fā)平臺(tái)叫ccs (code composer studio),該工具提供了編譯器可以將c語言的程序編譯為dsp的匯編語言程序,然后鏈接生成可以在dsp上執(zhí)行的coff格式的out文件。

  而ccs自身也提供優(yōu)化器可對(duì)c代碼進(jìn)行優(yōu)化,并產(chǎn)生匯編語言程序,具體過程如圖1所示。

  ccs提供了4級(jí)的文件優(yōu)化方案,分別是o0、o1、o2、o3,以下具體說明。

(1) o0 寄存器級(jí)別

  執(zhí)行控制流程簡(jiǎn)化
  用寄存器分配變量
  執(zhí)行交替循環(huán)
  排除未用的代碼
  簡(jiǎn)化公式和表述
  擴(kuò)大對(duì)內(nèi)連函數(shù)的調(diào)用

(2) o1 局部級(jí)別

  執(zhí)行所有o0級(jí)別的優(yōu)化,并且:

  執(zhí)行局部常量的傳播
  排除未用的賦值
  排除局部共用表達(dá)式

(3) o2 函數(shù)級(jí)別

  執(zhí)行所有o1級(jí)別的優(yōu)化,并且:

  執(zhí)行循環(huán)優(yōu)化
  排除全局共用子表達(dá)式
  排除全局不用的賦值
  執(zhí)行打開循環(huán)

(4) o3 文件級(jí)別

  執(zhí)行所有o1級(jí)別的優(yōu)化,并且:

  排除未被調(diào)用的函數(shù)
  簡(jiǎn)化返回值沒被使用的函數(shù)
  讓小函數(shù)變成內(nèi)聯(lián)調(diào)用
  保存函數(shù)說明,以便主函數(shù)被優(yōu)化時(shí)知道被調(diào)用 函數(shù)的屬性
  識(shí)別文件級(jí)別的變量的特性

  在使用o3級(jí)別的優(yōu)化時(shí),還可以使用別的選項(xiàng)執(zhí)行更細(xì)致的優(yōu)化

  oln 得到標(biāo)準(zhǔn)庫函數(shù)的文件
  onn 創(chuàng)造優(yōu)化信息文件
  pm 執(zhí)行程序級(jí)別優(yōu)化,編譯多個(gè)源文件


  而我們?cè)谧鰞?yōu)化時(shí),選的是o2級(jí)別的優(yōu)化,因?yàn)槭褂胦2級(jí)別優(yōu)化后產(chǎn)生的匯編文件帶有比較多的注釋信息,比較容易看懂程序,建議對(duì)程序不太熟和對(duì)匯編語言不太熟練的人使用。

3.2手工匯編優(yōu)化

  因?yàn)閰R編語言可讀性很差,并且代碼量很大,所以手工優(yōu)化工作量很大,并且容易出錯(cuò)。為了確保優(yōu)化不出錯(cuò),我們就先制

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

業(yè)余條件下PCM2702
    PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!