www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]詳細(xì)介紹DSP軟件優(yōu)化流程;結(jié)合具體實(shí)例闡述在C語言中使用內(nèi)聯(lián)函數(shù)、指夸并行、字裝載半字型數(shù)據(jù)、軟件流水等幾種代碼優(yōu)化技術(shù),并對(duì)各種技術(shù)優(yōu)化后的代碼執(zhí)行效率進(jìn)行總結(jié)分析,對(duì)實(shí)際系統(tǒng)的開發(fā)具有重要意義。

摘要 詳細(xì)介紹DSP軟件優(yōu)化流程;結(jié)合具體實(shí)例闡述在C語言中使用內(nèi)聯(lián)函數(shù)、指夸并行、字裝載半字型數(shù)據(jù)、軟件流水等幾種代碼優(yōu)化技術(shù),并對(duì)各種技術(shù)優(yōu)化后的代碼執(zhí)行效率進(jìn)行總結(jié)分析,對(duì)實(shí)際系統(tǒng)的開發(fā)具有重要意義。
關(guān)鍵詞 DSP軟件優(yōu)化 軟件流水 TMS320C6000


1 DSP系統(tǒng)的軟件優(yōu)化流程
   
DSP系統(tǒng)的軟件優(yōu)化流程如圖l所示。整個(gè)工作流程分為3個(gè)階段:

    第l階段,直接根據(jù)需要用高級(jí)C語言實(shí)現(xiàn)DSP功能,測(cè)試代碼的正確性。然后,移植到C6X平臺(tái),利用C6X開發(fā)環(huán)境Profile測(cè)試程序的運(yùn)行時(shí)間。若不滿足要求,則進(jìn)入下一階段。
    第2階段,利用C6X提供的優(yōu)化方式和其他各種優(yōu)化技巧,如使用不同的編譯器選項(xiàng)使能軟件流水,循環(huán)展開,字存取代替半字存取等,優(yōu)化C語言代碼。如果還不能滿足要求,則進(jìn)入第3階段。
    第3階段,將C語言代碼中耗時(shí)最長的部分抽取出來,用線性匯編語言重寫,用匯編優(yōu)化器進(jìn)行優(yōu)化。使用profile確定這段代碼是否需要進(jìn)一步優(yōu)化。


2 優(yōu)化過程
   
首先,用C語言編寫程序,并通過編譯驗(yàn)證其正確性。然后,使用內(nèi)聯(lián)函數(shù)和合適的優(yōu)化選項(xiàng)進(jìn)行優(yōu)化,并通過CCS中的profiler確定是否有函數(shù)需要被進(jìn)一步優(yōu)化,使用線性匯編語言重寫需要被優(yōu)化的函數(shù)。最后,使用匯編優(yōu)化編程技巧和匯編優(yōu)化器優(yōu)化匯編代碼。
2.1 編譯器
    當(dāng)優(yōu)化器被激活時(shí),將完成圖2所示的過程。C/C++語言源代碼首先通過一個(gè)完成預(yù)處理的解析器(Parser),生成一個(gè)中間文件(.if)作為優(yōu)化器(Optimizer)的輸入。優(yōu)化器生成一個(gè)優(yōu)化文件(.opt),這個(gè)文件作為完成進(jìn)一
步優(yōu)化的代碼生成器(Code generator)的輸入,最終生成匯編文件(.a(chǎn)sm)。當(dāng)選擇編譯選項(xiàng)時(shí),-o2和-o3將盡可能地優(yōu)化軟件。

2.2 編譯器內(nèi)聯(lián)函數(shù)
    TMS320C6X提供了很多內(nèi)聯(lián)函數(shù),它們直接映射為內(nèi)嵌C6X匯編指令的特殊函數(shù),這樣可迅速優(yōu)化C語言代碼。C編譯器以內(nèi)聯(lián)函數(shù)的形式支持所有C語言代碼不易表達(dá)的指令。內(nèi)聯(lián)函數(shù)用下劃線“_”開頭,如例2,使用時(shí)如同調(diào)用普通函數(shù)一樣。下面結(jié)合實(shí)例,研究一下完成200點(diǎn)點(diǎn)積經(jīng)過上述各種優(yōu)化技術(shù)優(yōu)化后的代碼效率。完成200點(diǎn)的點(diǎn)積運(yùn)算C語言代碼程序dotp.c如下:


3 線性匯編代碼的優(yōu)化
   
優(yōu)化線性匯編代碼,首先是盡可能地使指令并行,使得同一時(shí)間內(nèi)多個(gè)功能單元同時(shí)被使用,然后是調(diào)整代碼順序,縮減等待時(shí)延(NOPS),如例5。接下來使用字訪問short型數(shù)據(jù).如例6,最后使用軟件流水技術(shù)。當(dāng)進(jìn)行實(shí)際操作時(shí),并不是要按順序地完成上面的每一步。只要達(dá)到要求,就可以結(jié)束。
3.1 C語言代碼轉(zhuǎn)換到線性匯編代碼
    定點(diǎn)點(diǎn)積中,C語言代碼內(nèi)部循環(huán)使用線性匯編指令,如例3所示。


3.2 線性匯編的資源分配
    ①裝載指令(LDW)必須使用.D單元。
    ②乘法指令(MPY和MPYH)必須使用.M單元。
    ③加法指令(ADD)使用.L單元,
    ④減法指令(SUB)使用.S單元。
    ⑤跳轉(zhuǎn)指令(B)使用.S單元。
    由此得到例4的匯編代碼。

例4  

    下面的例子是沒有并行執(zhí)行的匯編代碼:


    完成200次循環(huán)迭代,經(jīng)過profile clock分析循環(huán)部分,需要16×200=3200 cycles。
3.3 使用并行指令完成點(diǎn)積代碼
   
使用并行指令完成點(diǎn)積代碼如例5所示。


    使用并行指令,循環(huán)體內(nèi)需要8個(gè)時(shí)鐘周期。這段循環(huán)代碼的執(zhí)行周期為8×200=l600 cycles。
3.4 使用字存取原short型數(shù)據(jù)
   
為進(jìn)一步提高效率,使用字存取原short型數(shù)據(jù),如例6所示。


    這段代碼在循環(huán)體內(nèi)仍然是8個(gè)時(shí)鐘周期,迭代100次為8×100=800 cycles。

4 軟件流水技術(shù)
   
軟件流水技術(shù)是用在循環(huán)語句中調(diào)用指令的方法,即安排循環(huán)中的多個(gè)迭代運(yùn)算并行執(zhí)行。在編譯C語言代碼時(shí),可以選擇編譯器的-o2或-o3選項(xiàng),編譯器將根據(jù)程序盡可能地安排軟件流水。圖3所示為運(yùn)用軟件流水的循環(huán)結(jié)構(gòu),它包括A、B、C、D、E五次迭代,同一周期最多執(zhí)行五次迭代的不同指令(陰影部分)。圖3中陰影部分稱為“循環(huán)內(nèi)核”,核中不同的指令并行執(zhí)行。核前執(zhí)行的過程稱為“流水線填充”,核后執(zhí)行的過程稱為。流水線排空”。

    在DSP算法中存在大量的循環(huán)操作,因此充分運(yùn)用軟件流水線方式,能極大地提高程序的運(yùn)行速度。當(dāng)手繪軟件流水時(shí),首先要畫出相關(guān)圖,如圖4所示,然后建立軟件流水迭代間隔編排表,最后根據(jù)編排表寫出程序。

    在畫相關(guān)圖時(shí)應(yīng)遵循:
    ①畫出節(jié)點(diǎn)和路徑;
    ②寫出完成各指令需要的CPU周期;
    ③為各節(jié)點(diǎn)指派功能單元;
    ④分開路徑,以使最多的功能單元被使用。
    根據(jù)相關(guān)圖寫出模迭代間隔安排表,如表1所列。

    由此迭代間隔表寫出對(duì)應(yīng)代碼:

5 總結(jié)
   
各種優(yōu)化技術(shù)所需時(shí)鐘數(shù)如表2所列。表中括號(hào)內(nèi)數(shù)字為循環(huán)內(nèi)核時(shí)鐘周期,括號(hào)前數(shù)字為流水線填充時(shí)鐘周期,括號(hào)后數(shù)字為流水線排空CPU時(shí)鐘周期。

    由此得出遵循以上的軟件優(yōu)化流程和代碼優(yōu)化技術(shù),可以極大地提高代碼效率,這對(duì)實(shí)際應(yīng)用具有重大意義。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會(huì)》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

單片機(jī)

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉