![C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式_第1頁(yè)](http://file4.renrendoc.com/view/d51c0e793efb9ca442946bf93794afac/d51c0e793efb9ca442946bf93794afac1.gif)
![C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式_第2頁(yè)](http://file4.renrendoc.com/view/d51c0e793efb9ca442946bf93794afac/d51c0e793efb9ca442946bf93794afac2.gif)
![C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式_第3頁(yè)](http://file4.renrendoc.com/view/d51c0e793efb9ca442946bf93794afac/d51c0e793efb9ca442946bf93794afac3.gif)
![C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式_第4頁(yè)](http://file4.renrendoc.com/view/d51c0e793efb9ca442946bf93794afac/d51c0e793efb9ca442946bf93794afac4.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【W(wǎng)ord版本下載可任意編輯】 C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式眾所周知,匯編語(yǔ)言具有更高的性能優(yōu)勢(shì),而用C語(yǔ)言編碼則能更容易和快速地實(shí)現(xiàn)。DSP處理器功能的不斷增強(qiáng)以及編譯器優(yōu)化技術(shù)的提高,使得傳統(tǒng)的用匯編語(yǔ)言編寫DSP應(yīng)用程序的做法逐漸被淘汰?,F(xiàn)在的DSP應(yīng)用程序幾乎都是由C代碼和匯編代碼混合組成的。在那些對(duì)性能起決定性作用的關(guān)鍵功能中,DSP工程師將繼續(xù)使用高度優(yōu)化的匯編代碼,同時(shí)轉(zhuǎn)用C語(yǔ)言編寫那些不太關(guān)鍵的功能,這將有利于代碼維護(hù)和移植。而C和匯編代碼的這種結(jié)合要求DSP工程師具備專門的工具和方法。 C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式 圖4:ETSI的mult_r
2、(乘法和取整)基本操作的C代碼實(shí)現(xiàn)(左)和對(duì)應(yīng)的由CEVA-TeakLite-III編譯器生成的匯編代碼(右)。 匯編內(nèi)部函數(shù):是將匯編代碼內(nèi)聯(lián)進(jìn)C代碼的一種先進(jìn)方法,下文將有詳細(xì)介紹。 把匯編指令當(dāng)作C語(yǔ)句一樣來(lái)編寫 內(nèi)聯(lián)匯編功能具有顯著的缺點(diǎn)。它會(huì)破壞各種編譯器優(yōu)化操作,因?yàn)榫幾g器不了解內(nèi)聯(lián)代碼的內(nèi)容,會(huì)使用壞假設(shè);以及它可能迫使編程人員處理底層問(wèn)題,如存放器分配和指令調(diào)度。 匯編內(nèi)部函數(shù)可以幫助編程人員實(shí)現(xiàn)內(nèi)聯(lián)匯編代碼,并且不存在這些缺點(diǎn)。從編程人員的角度看,匯編內(nèi)部函數(shù)就像是C語(yǔ)言宏或函數(shù)。它們接收C語(yǔ)言變量,返回C語(yǔ)言輸出結(jié)果,同時(shí)表現(xiàn)為單個(gè)匯編指令。由于涉及該功能的所有代碼都在C語(yǔ)
3、言等級(jí),因此編程人員不必?fù)?dān)心存放器分配、指令調(diào)度和其它底層問(wèn)題。匯編內(nèi)部函數(shù)不僅不會(huì)阻礙編譯器優(yōu)化操作,還會(huì)參與優(yōu)化過(guò)程,就像它們是編譯器正常產(chǎn)生的匯編指令一樣。這些特征使得匯編內(nèi)部函數(shù)的功能非常強(qiáng)大。 利用匯編內(nèi)部函數(shù),編程人員可以從編譯器不可能產(chǎn)生的獨(dú)特匯編指令中受益。例如,CEVA-X1641的bitrev(位反向)指令就是為FFT等算法定制的。由于編譯器不太可能把一個(gè)程序看作一個(gè)FFT并使用bitrev指令,因此編程人員可以完全把bitrev匯編內(nèi)部功能嵌入到C代碼中。結(jié)合對(duì)應(yīng)用的透徹了解,編程人員還可以使用C應(yīng)用程序的性能決定段里的序列匯編內(nèi)部函數(shù),從而能夠確保編譯器生成的代碼效率就
4、像手工編寫的一樣高。 圖5是CEVA-X1641編譯器與匯編內(nèi)部函數(shù)一起使用的例子。匯編內(nèi)部函數(shù)還受益于由CEVA-X1641編譯器處理的問(wèn)題所決定的機(jī)器,如存放器分配、指令調(diào)度和硬件單元分配。 C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式 圖5:CEVA-X1641編譯器支持的匯編內(nèi)部函數(shù)的使用。 調(diào)試混合代碼的應(yīng)用程序 匯編代碼的調(diào)試需要對(duì)延遲和存儲(chǔ)器對(duì)齊限制等架構(gòu)和機(jī)器級(jí)問(wèn)題有深入的了解。只是簡(jiǎn)單地把C代碼和匯編代碼放在一起會(huì)使事情更麻煩,因?yàn)榫幊倘藛T現(xiàn)在還必須調(diào)試C代碼和匯編代碼之間的連接。 調(diào)試混合代碼應(yīng)用程序的步就是分隔問(wèn)題。假設(shè)保持匯編代碼的C語(yǔ)言實(shí)現(xiàn)不變以及C語(yǔ)言實(shí)現(xiàn)方案工作正
5、常,那么將匯編函數(shù)轉(zhuǎn)換成C語(yǔ)言實(shí)現(xiàn)并重新測(cè)試應(yīng)用程序就相比照較容易。為了迅速檢測(cè)出問(wèn)題,編程人員可以在每一步把受懷疑函數(shù)的一半轉(zhuǎn)換為相應(yīng)的C語(yǔ)言實(shí)現(xiàn)方案。 一旦有問(wèn)題的匯編函數(shù)被確定,它就應(yīng)該同時(shí)作為獨(dú)立的匯編問(wèn)題和C與匯編的連接問(wèn)題加以分析。調(diào)試獨(dú)立的匯編問(wèn)題對(duì)匯編編程人員來(lái)說(shuō)十分簡(jiǎn)單明了,但C與匯編的連接問(wèn)題就有點(diǎn)麻煩。在考慮匯編函數(shù)本身時(shí),C與匯編的連接問(wèn)題是不可見(jiàn)的,這與獨(dú)立的匯編問(wèn)題有所不同。為了找出這些問(wèn)題,編程人員必須檢查編譯器的約定,比方調(diào)用約定和存放器使用約定。 編程人員還必須檢查編譯器假設(shè),比方匯編指令的行蹤。為了節(jié)省調(diào)試時(shí)間,編程人員應(yīng)該在次實(shí)現(xiàn)匯編函數(shù)時(shí)驗(yàn)證是否遵循所有
6、的編譯器約定和假設(shè)。 研究:H.264視頻編碼器和AMR-NB 本文討論的技術(shù)和方法已被CEVA公司用于各種各樣的應(yīng)用,包括視頻編解碼器、音頻編解碼器、聲音合成器和設(shè)備驅(qū)動(dòng)器。而本文所述的功能在這些應(yīng)用中都可以顯著提高性能。H.264視頻編碼器是一個(gè)很好的研究。它在處理能力及其它資源方面要求非常嚴(yán)格,尤其是相比語(yǔ)音編解碼器等其它類型的編解碼器而言。 CEVA公司的CEVA-X16xx高端DSP內(nèi)核系列及其MM2000多媒體平臺(tái)可以為這種編碼器提供所需的處理能力。先用跟蹤技術(shù)確定這種編碼器的關(guān)鍵函數(shù),然后逐步對(duì)之開(kāi)展優(yōu)化。首先,利用匯編內(nèi)部函數(shù)在C語(yǔ)言級(jí)對(duì)這些函數(shù)開(kāi)展全面優(yōu)化。然后,在匯編語(yǔ)言級(jí)
7、對(duì)編譯器提供的匯編代碼作進(jìn)一步優(yōu)化。 圖6展示了通過(guò)對(duì)這種編碼器的關(guān)鍵函數(shù)開(kāi)展全面優(yōu)化所獲得的性能提高。只有一個(gè)優(yōu)化階段涉及到純匯編編程,所有其它階段都基于帶有匯編內(nèi)部函數(shù)的C代碼。這些匯編內(nèi)部函數(shù)主要用于SIMD操作,如avg_acW_acX_acZ_4b。這條指令對(duì)8個(gè)輸入字節(jié)取平均,產(chǎn)生4字節(jié)結(jié)果。這種SIMD操作對(duì)執(zhí)行大量字節(jié)級(jí)計(jì)算的視頻編解碼器非常有用。 C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的方式 圖6:對(duì)H.264編碼器的關(guān)鍵函數(shù)開(kāi)展優(yōu)化以提升性能。AMR-NB(自適應(yīng)多速率-窄帶)是廣泛用于無(wú)線通信應(yīng)用的語(yǔ)音編解碼器。通常都是采用純匯編來(lái)實(shí)現(xiàn)聲音合成器,但C語(yǔ)言實(shí)現(xiàn)與CEVA-X1620編譯器利用本文討論的各種功能可以獲得與匯編實(shí)現(xiàn)媲美的結(jié)果。圖7顯示了整個(gè)AMR-NB應(yīng)用經(jīng)過(guò)全面優(yōu)化而取得的以MCPS(每秒百萬(wàn)周期)計(jì)的性能提高幅度。只有的優(yōu)化階段涉及到了純匯編編程,所有其它階段都基于帶有ETSI內(nèi)部函數(shù)和匯編內(nèi)部函
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金剛石膜-聲表面波器件(SAW)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年絕緣材料:絕緣套管項(xiàng)目提案報(bào)告模范
- 2025年個(gè)體經(jīng)營(yíng)物流配送協(xié)議
- 2025年耐高溫可加工陶瓷項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年發(fā)泡消泡劑項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年授權(quán)代理業(yè)務(wù)綜合合同范本
- 2025年建筑器材租賃合同標(biāo)桿
- 2025年倉(cāng)儲(chǔ)物流服務(wù)合作協(xié)議合同
- 2025年工業(yè)外包合同中的環(huán)境管理措施
- 2025年城市綠化養(yǎng)護(hù)服務(wù)合同文本
- 10以內(nèi)除法口算練習(xí)題100套(十)
- 中醫(yī)小兒常見(jiàn)皮膚病
- 《醫(yī)療機(jī)構(gòu)環(huán)境表面清潔與消毒管理規(guī)范》-華西醫(yī)院案例
- 第45屆世界技能大賽餐廳服務(wù)項(xiàng)目全國(guó)選拔賽技術(shù)工作文件
- 個(gè)人保證無(wú)糾紛承諾保證書
- DB51T10009-2024DB50T10009-2024康養(yǎng)度假氣候類型劃分
- 九年級(jí)道德與法治下冊(cè)時(shí)政熱點(diǎn)專題新人教版
- 【壓縮式落葉清掃機(jī)設(shè)計(jì)(論文)6900字】
- 生產(chǎn)安全重大事故隱患檢查表(根據(jù)住建部房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2022版)編制)
- 教育管理學(xué)教程褚宏啟課后問(wèn)題及補(bǔ)充完整版
- 水利水電工程工地試驗(yàn)室建設(shè)導(dǎo)則(征求意見(jiàn)稿)
評(píng)論
0/150
提交評(píng)論