音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

TMS320C62x軟件開(kāi)發(fā)方法探討

出處:電子技術(shù)應(yīng)用 發(fā)布于:2011-09-03 12:45:33

  TMS320C6x系列主要面向如GSM ( GlobalSystem for Mobile communications) 基站、通信網(wǎng)絡(luò)等應(yīng)用, 因其先進(jìn)的體系結(jié)構(gòu)、高達(dá)200MHz的主頻而成為DSP 的高端主流產(chǎn)品。TMS320C6x體系結(jié)構(gòu)適應(yīng)絕大多數(shù)DSP 算法而使得應(yīng)用難度相對(duì)較低, 極高的主頻加上較易獲得的并行性使得高性能更有保障。本文介紹對(duì)C62x的系統(tǒng)結(jié)構(gòu)以及基于C62x的軟件設(shè)計(jì)方法,在TMS320C6201上實(shí)現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法進(jìn)行闡述。

  1TMS320C62x(以下簡(jiǎn)稱C62x)的系統(tǒng)結(jié)構(gòu)

  C62x的系統(tǒng)結(jié)構(gòu)如圖1所示,C62x處理器由三個(gè)主要部分組成:CPU內(nèi)核、外設(shè)和存儲(chǔ)器。CPU內(nèi)核中的8個(gè)功能單元可以完成并行運(yùn)行,功能單元執(zhí)行邏輯、位移、乘法、加法和數(shù)據(jù)尋址等操作。取指令、指令分配和指令譯碼單元每周期可以從程序存儲(chǔ)器到功能單元傳遞8條指令,總字長(zhǎng)為8×32=256位。芯片內(nèi)部設(shè)置了專門(mén)的指令分配模塊,可以將每個(gè)256位的指令包分配到8個(gè)功能單元中,并由8個(gè)功能單元并行運(yùn)行。C62x芯片的時(shí)鐘頻率可以達(dá)到200MHz,8個(gè)功能單元同時(shí)運(yùn)行時(shí),該芯片的處理能力高達(dá)1600MIP.

  C62x 是C6000 系列中的32 位定點(diǎn)處理器,含8 個(gè)獨(dú)立的處理單元并且C62x 率先在DSP 中應(yīng)用超長(zhǎng)指令字(VLIW) 技術(shù)。C62x 中有32 個(gè)通用寄存器, 大量中間結(jié)果可存于其中并配合軟件流水線技術(shù)以提高并行度。C62x 的VLIW 指令調(diào)度和同步是在編譯階段通過(guò)代碼的優(yōu)化來(lái)實(shí)現(xiàn), 這要求優(yōu)化器對(duì)程序的行為特點(diǎn)有完全的了解以限度地開(kāi)發(fā)數(shù)據(jù)流的并行度而在代碼中顯式地表達(dá)出來(lái)。VLIW 配合先進(jìn)的代碼優(yōu)化技術(shù)如NSA( non-single assignment) 、軟件流水線等可以充分利用DSP 的硬件資源。如以1024 點(diǎn)16 位基4 FFT 為標(biāo)準(zhǔn), 考慮數(shù)據(jù)存取所需的操作, 則加速比可達(dá)到5. 2。

  2 C62x的軟件設(shè)計(jì)方法

  用戶在開(kāi)發(fā)應(yīng)用軟件時(shí),首先應(yīng)當(dāng)明確應(yīng)用軟件的功能和性能要求,然后按照代碼開(kāi)發(fā)流程的三個(gè)階段進(jìn)行軟件設(shè)計(jì):階段是開(kāi)發(fā)C代碼;第二階段是優(yōu)化C代碼;第三階段是編寫(xiě)線性匯編代碼。如果在某一階段已經(jīng)實(shí)現(xiàn)了應(yīng)用軟件的功能和性能要求,那就不必進(jìn)入下一階段了。代碼開(kāi)發(fā)流程圖如圖2所示。

  2.1 開(kāi)發(fā)C代碼

  開(kāi)發(fā)C語(yǔ)言代碼需要考慮的要點(diǎn)包括:①數(shù)據(jù)結(jié)果;②分析C代碼性能;③使用查找表;④用整形數(shù)(int)表示浮點(diǎn)數(shù)。

  2.1.1 數(shù)據(jù)結(jié)構(gòu)

  C62x編譯器對(duì)每種數(shù)據(jù)結(jié)構(gòu)定義一個(gè)尺寸,字符型(char)的8位,短整型(short)為16位,整型(int)為32位,長(zhǎng)整型(long)為40位,浮點(diǎn)型(float)為32位,雙浮點(diǎn)型(double)為64位。在編寫(xiě)C代碼時(shí)應(yīng)當(dāng)遵循的規(guī)則是:避免在代碼中將int型和long型作為同樣尺寸處理,因?yàn)榫幾g器對(duì)long型數(shù)據(jù)使用40位操作;對(duì)于定點(diǎn)乘法,應(yīng)當(dāng)盡可能使用short型數(shù)據(jù),這種數(shù)據(jù)類型可以更有效地使用C62x的乘法器;對(duì)循環(huán)計(jì)數(shù)器應(yīng)當(dāng)使用int或者無(wú)符號(hào)int類型,而不使用short或者無(wú)符號(hào)short類型,以避免不必要的符號(hào)擴(kuò)展。

  2.1.2 分析C代碼性能

  應(yīng)用調(diào)試器的Profile工具可以得到一個(gè)關(guān)于C代碼中各特定代碼段執(zhí)行情況的統(tǒng)計(jì)表,也可以得到特定代碼段執(zhí)行所用的CPU時(shí)鐘周期數(shù),因此可以找出影響軟件程序總體性能的C語(yǔ)言代碼段來(lái)加以改進(jìn)(通常是循環(huán)代碼段影響軟件程序總線性能)。

  2.1.3 使用查找表

  在C語(yǔ)言代碼中通過(guò)直接計(jì)算得到結(jié)果的語(yǔ)句或函數(shù)可以用查找表或常數(shù)數(shù)值代碼,所以可以提高指令執(zhí)行速度。

  2.1.4 用整型數(shù)(int)表示浮點(diǎn)數(shù)

  在程序的編寫(xiě)過(guò)程中,應(yīng)盡量采用定點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。對(duì)于C語(yǔ)言,盡量采用整型(int)的數(shù)據(jù)結(jié)構(gòu)。在基于C62x的C語(yǔ)言中,整型數(shù)據(jù)占用4個(gè)字節(jié),其所能表示的數(shù)據(jù)范圍是:-214783648~2147483647.因?yàn)閷?shí)際算是的數(shù)據(jù)通常都是浮點(diǎn)的,所以需要把浮點(diǎn)數(shù)據(jù)通過(guò)定標(biāo)轉(zhuǎn)化為整型數(shù)據(jù)進(jìn)行處理,以提高應(yīng)用程序的處理速度。小數(shù)位數(shù)的選取十分關(guān)鍵,既要使轉(zhuǎn)化后的數(shù)據(jù)處理滿足要求,又要防止在數(shù)據(jù)處理的過(guò)程中出現(xiàn)數(shù)據(jù)溢出。

  2.2 優(yōu)化C代碼

  優(yōu)化C代碼包括合作編譯器選項(xiàng)、使用內(nèi)聯(lián)函數(shù)、使用字訪問(wèn)短整型數(shù)據(jù)和使用軟件流水等。編碼器選項(xiàng)控制著編譯器的操作,其中有些選項(xiàng)可使C代碼優(yōu)化。

  2.2.1 向編譯器指明不相關(guān)的指令

  為使指令并行操作,編碼器必須確定指令間的關(guān)系或者相關(guān)性,即一條指令必須發(fā)生在另一條指令之后,只有不相關(guān)的指令才可以并行執(zhí)行。如果編譯器不能確定兩條指令是不相關(guān)的,則編譯器認(rèn)為它們是相關(guān)的,將安排它們串行執(zhí)行??赏ㄟ^(guò)以下方式指明相關(guān)的指令:

  ·關(guān)鍵字const可以指定一個(gè)目標(biāo),const表示一個(gè)變量或者一個(gè)變量的存儲(chǔ)單元保持不變,使用const可以提高代碼的性能和適應(yīng)性。

  ·一起使用-pm選項(xiàng)和-03選項(xiàng)可以確定程序優(yōu)先級(jí)。在程序優(yōu)先級(jí)中,所有源文件都被編譯成一個(gè)模塊,該模塊通過(guò)編譯器進(jìn)行優(yōu)化和產(chǎn)生代碼,從而使編譯器更有效地消除上關(guān)性。

  ·使用-mt選項(xiàng)向編譯器說(shuō)明在代碼中不存在存儲(chǔ)器相關(guān)性,即允許編譯器在無(wú)存儲(chǔ)器相關(guān)性的假設(shè)下進(jìn)行優(yōu)化。

  2.2.2 使用內(nèi)聯(lián)函數(shù)(intrinsics)

  C62x編譯器提供的內(nèi)聯(lián)函數(shù)是直接映射為內(nèi)聯(lián)的C6000指令的特殊函數(shù),用戶可以用內(nèi)聯(lián)函數(shù)來(lái)快速優(yōu)化C代碼。

  2.2.3 使用字訪問(wèn)短整型數(shù)據(jù)

  內(nèi)聯(lián)函數(shù)中有些指令是對(duì)存儲(chǔ)在32位寄存器的高16位和低16位字段進(jìn)行操作。當(dāng)有大量短整型數(shù)據(jù)進(jìn)行操作時(shí),可以使用字(整型數(shù))訪問(wèn)兩個(gè)短整型數(shù)據(jù),然后使用內(nèi)聯(lián)函數(shù)對(duì)這些數(shù)據(jù)進(jìn)行操作,從而減少對(duì)內(nèi)存的訪問(wèn)。

  2.2.4 使用軟件流水

  軟件流水是采用安排循環(huán)指令的方法使循環(huán)多次迭代并行執(zhí)行的一種技術(shù)。在編譯時(shí),使用-o2選項(xiàng)和-o3選項(xiàng),編譯器可對(duì)循環(huán)代碼實(shí)現(xiàn)軟件流口。為填滿軟件流水線,軟件流水結(jié)構(gòu)需要執(zhí)行的循環(huán)迭代次數(shù)稱為循環(huán)次數(shù)。當(dāng)編譯器不能確定循環(huán)總數(shù)與循環(huán)次數(shù)的大小時(shí),就產(chǎn)生了兩種形式的循環(huán);循環(huán)總數(shù)小于循環(huán)次數(shù)時(shí),執(zhí)行不流水形式環(huán);循環(huán)總數(shù)大于循環(huán)次數(shù)時(shí),執(zhí)行軟件流水形式循環(huán)??梢允褂?ms選項(xiàng)使編譯器根據(jù)循環(huán)次數(shù)僅產(chǎn)生一種循環(huán)形式。用戶可以通過(guò)系列方法向編譯器傳遞循環(huán)次數(shù)信息:使用-03和-pm選項(xiàng),使優(yōu)化器訪問(wèn)整個(gè)程序,了解循環(huán)次數(shù)信息;使用-nassert內(nèi)聯(lián)函數(shù),防止冗余循環(huán)產(chǎn)生。用戶可以使用投機(jī)執(zhí)行(-mh選項(xiàng))消除軟件流水循環(huán)的排空,從而減少代碼尺寸。

  由于在嵌套循環(huán)中編譯器僅對(duì)里面的循環(huán)執(zhí)行軟件流水,因此對(duì)于執(zhí)行周期很少的內(nèi)循環(huán)進(jìn)行循環(huán)展開(kāi),對(duì)外循環(huán)進(jìn)行軟件流水,這樣可以改進(jìn)C代碼的性能。

  2.3 編寫(xiě)線性匯編代碼

  編寫(xiě)線性匯編代碼是代碼開(kāi)發(fā)流程的第三個(gè)階段。線性匯編代碼類似于通常的C6000匯編代碼,不同的是編寫(xiě)線性匯編代碼不需要指明使用的寄存器、指令的并行與否、指令的延遲周期和指令使用的功能單元,匯編優(yōu)化器會(huì)根據(jù)情況確定這些信息。線性匯編文件使用一些匯編優(yōu)化器偽指令來(lái)區(qū)分線性匯編和通常的匯編代碼,.cproc命令和。endpro命令限定了匯編優(yōu)化器優(yōu)化的代碼段,.cproc命令放在代碼段的開(kāi)始,.endproc命令放在代碼段的結(jié)尾;.reg命令使匯編優(yōu)化器為數(shù)值,選擇一個(gè)寄存器,這個(gè)寄存器與對(duì)該值進(jìn)行操作的指令所選擇的功能單元一致;.trip命令指出循環(huán)的迭代次數(shù)。優(yōu)化線性匯編代碼的方法包括:為線性匯編指令指定功能單元,使得的匯編指令并行執(zhí)行;使用字訪問(wèn)短整形數(shù)據(jù);使用軟件流水對(duì)循環(huán)進(jìn)行優(yōu)化。

  3 在TMS320C6201上實(shí)現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法

  寬帶毫米波雷達(dá)目標(biāo)識(shí)別算法對(duì)于實(shí)時(shí)算是的需求是比較苛刻的,例如某種寬帶雷達(dá)導(dǎo)引頭目標(biāo)識(shí)別處理時(shí)間要求小于1.5ms,即要求目標(biāo)識(shí)別算法在1.5ms內(nèi)對(duì)一組數(shù)據(jù)完成處理,正確 地把目標(biāo)識(shí)別出來(lái)。在多層前饋感知器神經(jīng)網(wǎng)絡(luò)模型中引入時(shí)延單元可以使神經(jīng)網(wǎng)絡(luò)增加記憶功能,由此導(dǎo)出的神經(jīng)網(wǎng)絡(luò)模型適合應(yīng)用于處理序列數(shù)據(jù)。寬帶毫米波雷達(dá)目標(biāo)時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法的基本原理為:對(duì)一維距離像進(jìn)行非相干平均和自適應(yīng)門(mén)限、等距離間隔峰值不采樣預(yù)處理,獲得較穩(wěn)定的低維樣本后,作為特征矢量提供給時(shí)延神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行自動(dòng)分類識(shí)別。時(shí)延神經(jīng)網(wǎng)絡(luò)為三層網(wǎng)絡(luò),網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)為17,網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)為10,網(wǎng)絡(luò)輸出層節(jié)點(diǎn)數(shù)為3.采用大量的訓(xùn)練樣本集對(duì)時(shí)延神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到時(shí)延神經(jīng)網(wǎng)絡(luò)的權(quán)值,然后應(yīng)用C62x的軟件設(shè)計(jì)方法,在TMS320C6201EVM板上實(shí)現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法。

  在程序?qū)崿F(xiàn)過(guò)程中,對(duì)于經(jīng)常用到的兩個(gè)函數(shù)值1.0/(1.0+exp(-x))和tanh(x)采用查找表的方法來(lái)提高程序執(zhí)行速度。根據(jù)對(duì)程序的測(cè)試,使用整型數(shù)(int)表示浮點(diǎn)數(shù),選取整型數(shù)的低13位來(lái)表示小數(shù)。支持TMS320C6201 EVM板的開(kāi)發(fā)軟件Code Composer Studio(CCS)是一個(gè)集編譯、連接、實(shí)時(shí)調(diào)試、跟蹤和分析應(yīng)用程序于一體的開(kāi)發(fā)軟件包。CCS能夠加快用戶的開(kāi)發(fā)進(jìn)度,增強(qiáng)用戶的應(yīng)用能,使用戶可以實(shí)時(shí)地創(chuàng)建和調(diào)試數(shù)字信號(hào)處理應(yīng)用程序。在開(kāi)發(fā)軟件CCS的集成開(kāi)發(fā)環(huán)境中,綜合應(yīng)用C62x的軟件設(shè)計(jì)方法可以編寫(xiě)和優(yōu)化時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法的C代碼。

  經(jīng)過(guò)實(shí)際測(cè)試,在TMS320C6201上實(shí)現(xiàn)寬帶毫米波雷達(dá)目標(biāo)時(shí)延神經(jīng)網(wǎng)絡(luò)識(shí)別算法的程序執(zhí)行時(shí)間為0.850ms,滿足了目標(biāo)識(shí)別算法的實(shí)時(shí)性需求,取得了比較好的處理效果。


  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!