




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 二進(jìn)制數(shù)折半查找算法在DSP上的實(shí)現(xiàn)二進(jìn)制數(shù)折半查找算法在DSP上的實(shí)現(xiàn)折半查找是采用跳躍躍方式先將順序數(shù)列中的“中間值”與所查詢值進(jìn)行比較,然后按照比值大于或小于“中間值”來(lái)判斷所查找數(shù)的甩在區(qū)域。文章給出了將折半算法應(yīng)用于數(shù)字信號(hào)處理器上以實(shí)現(xiàn)二進(jìn)制數(shù)的查找算法的一種具體方法。并給出了采用這種方法的軟件程序。關(guān)鍵詞:折半查找二進(jìn)制DSP1折半查找的基本原理近十幾年來(lái),隨著各類集成化單片數(shù)字信號(hào)處理器(DSP,DigitalSignalProcessor)性能的不二進(jìn)制數(shù)折半查找算法在DSP上的實(shí)現(xiàn)折半查找是采用跳躍躍方式先將順序數(shù)列中的“中間
2、值”與所查詢值進(jìn)行比較,然后按照比值大于或小于“中間值”來(lái)判斷所查找數(shù)的甩在區(qū)域。文章給出了將折半算法應(yīng)用于數(shù)字信號(hào)處理器上以實(shí)現(xiàn)二進(jìn)制數(shù)的查找算法的一種具體方法。并給出了采用這種方法的軟件程序。 關(guān)鍵詞:折半查找 二進(jìn)制 DSP1 折半查找的基本原理近十幾年來(lái),隨著各類集成化單片數(shù)字信號(hào)處理器(DSP,Digital Signal Processor)性能的不斷改時(shí),相慶的軟件和開(kāi)發(fā)工具日臻完善,價(jià)格也迅速下降。它們所具有的功能強(qiáng)、集成度高、應(yīng)用靈活及性能價(jià)格比高的優(yōu)點(diǎn)使其信息處理(如語(yǔ)音與圖像各種的處理)、通信、多媒體、綜合網(wǎng)絡(luò)、控制、消費(fèi)電子、醫(yī)療設(shè)備
3、、測(cè)試與儀器等諸多領(lǐng)域得到了極為廣泛的。有一種看法認(rèn)為:?jiǎn)纹瑱C(jī)是事物處理型的處理器,如開(kāi)關(guān)的通斷或邏輯操作等;數(shù)字信號(hào)處理器是數(shù)據(jù)處理型的處理器,如進(jìn)行大量的包括FFT在內(nèi)的數(shù)據(jù)運(yùn)行等。這種看法在某種程序上是有一定道理的。一般地說(shuō),DSP應(yīng)用系統(tǒng)要處理的數(shù)據(jù)多、運(yùn)算量大而且實(shí)時(shí)性要求較高,研究DSP本身(包括硬件方面和軟件方面)的優(yōu)勢(shì)對(duì)快速有效地執(zhí)行某種算法有著重要的實(shí)用價(jià)值。查找是智能系統(tǒng)經(jīng)常用到的操作,實(shí)現(xiàn)查找的方法有多種,如順序查找、折半查找和分塊查找等。在這些方法中,如果按順序存儲(chǔ)結(jié)構(gòu)組織的查找表中的所有數(shù)據(jù)元素按關(guān)鍵字有序,則可以執(zhí)行折半查找(或稱二分查找)。它的基本思想是:由于查找
4、表中的數(shù)據(jù)按關(guān)鍵字有序(假設(shè)遞增有序),則在查找時(shí)不必逐個(gè)順序比較,而可以采用跳躍式方式先與“中間位置”的記錄關(guān)鍵字比較,若相同,則查找成功,若給定值大于“中間位置”的關(guān)鍵字,則在后半部分進(jìn)行折半查找,否則在前半部進(jìn)行折半查找。2 折音查找算法在DSP上的實(shí)現(xiàn)二進(jìn)制折半查找算法(Binary Search Algorithm)在DSP上實(shí)現(xiàn)并不難,但是一般查找程序都未能充發(fā)利用DSP內(nèi)部先進(jìn)的結(jié)構(gòu)和指令集,從而使得程序運(yùn)行的時(shí)間未能縮至最短。這在某些時(shí)候不會(huì)防礙系統(tǒng)效率,但在系統(tǒng)數(shù)據(jù)量較大而且實(shí)時(shí)性要求較高的情況下,則必須盡一切可能提高程序的效率。本文以TMS320C50為例給出了一個(gè)二進(jìn)制查
5、找算法的子程序,該程序可使系統(tǒng)的查找效率得到較大提高。程序中充分利用了TMS320C50的位反址尋址指令,該指令可以在每一個(gè)測(cè)試過(guò)程中使搜尋的工作減半并釋放累加器以進(jìn)行其它工作。此外,該程序利用了條件執(zhí)行指令(XC),而不是使用傳統(tǒng)的條件轉(zhuǎn)換指令,這樣一來(lái)便節(jié)省了指令周期并提高了效率。具體的TMS320C50的指令集可以參考其它文獻(xiàn)1。本文介紹的二進(jìn)搜尋程序是在有序狀態(tài)下進(jìn)行的。它假設(shè)表格中的數(shù)據(jù)按由低到高的次序排列,最大數(shù)在存儲(chǔ)器中的地址最大。當(dāng)然,反之(最小數(shù)在地址的最高位)亦是如此。此外,程序還假設(shè)數(shù)據(jù)中的最大個(gè)數(shù)是2的冪次方,在下面給出的源程序中個(gè)數(shù)211個(gè)。TMS320C50的源程序
6、:.bss NTABLE,800h ;2的11次冪的數(shù)據(jù)空間(按由低到高排列).bss LOOK,1 ;要查找的數(shù).mmregs.text.call bsearch.;*;二進(jìn)制查找子程序;程序名:binsearch;入口參數(shù): (ACC)所要查找的二進(jìn)制數(shù);出口參數(shù):(ACC)所要查找的二進(jìn)制數(shù)的地址(數(shù)據(jù)被找到)(ACC)=0(數(shù)據(jù)未找到);*bin-search lar AR0,#0800h ;AR0數(shù)據(jù)的總數(shù)目mar*,AR0mar *BR0+ ,AR3 ;總數(shù)目的一半lar AR3, #NTABLE;AR3指向數(shù)更的開(kāi)始lacl #11 ;重復(fù)2的N次方,數(shù)列數(shù)據(jù)的個(gè)數(shù)為2的N次方s
7、amm BRCR ;重復(fù)次數(shù)存放在BRCR中l(wèi)dp #LOOKlace LOOK ;要查找數(shù)據(jù)存放在ACC中sub* ;與AR3所指的存儲(chǔ)單元的數(shù)據(jù)相減bcnd nothere , LT ;ACC值小于0,要查找的數(shù)據(jù)不在本數(shù)列中rptd nothere-1bend found,EQ ;打到數(shù)據(jù)xc 1, GT ;若ACC中的數(shù)據(jù)較大mar *0+, AR0 ;xc 1, LT ;若ACC中的數(shù)據(jù)較小mar *0-, AR0 ;mar *BR0+, AR3 ;查找空間減半lacc LOOKsub *;*;未找到,將ACC置0后返回;*nothere retdzacnop;*;找到數(shù)據(jù),將數(shù)據(jù)地
8、址存放在ACC中返回;*found ldp #0apl #0fffeh,PMST ;復(fù)位PMST位retdlamm AR3 ;存數(shù)據(jù)地址nop3 輔助說(shuō)明程序中較為詳細(xì)的介紹了每個(gè)步驟所需完成的功能,下面就一些關(guān)鍵的地方進(jìn)行一些說(shuō)明。(1)程序如果找到查找的數(shù)據(jù)則返回?cái)?shù)據(jù)所在的地址,未找到則送0至ACC寄存器。(2)程序中的mar BR0+,AR3是將當(dāng)前AR(輔助寄存器)指定的數(shù)據(jù)存儲(chǔ)器的內(nèi)容按逆向進(jìn)位方式加AR0的內(nèi)容。由于在該指令前有一條mar*,AR0指令,這條指令指定了下一條指令的輔助寄存器。因此在執(zhí)行MAR BR0+,AR3時(shí),實(shí)際上是輔助寄存器AR0與自身逆向相位相加:
9、; 其結(jié)果是數(shù)據(jù)為原來(lái)的一半。實(shí)際上這條指令確定了折半查找算法中的“中間位置”。(3)samm BRCR指令程序執(zhí)行是是與rptp nothere-1指令配合使用的。Samm指令的功能是將循環(huán)次數(shù)的值(這里是11)存放在BRCR中。BRCR(Block Repeat Counter Register)是個(gè)16位的寄存器,用于存放程序塊重復(fù)操作的次數(shù)。Rptp指令是重復(fù)操作指令,它的功能是重復(fù)執(zhí)行下一條指令到該指令指定的地址之內(nèi)的程序代碼,重復(fù)執(zhí)行的次數(shù)由brcr決定。在上面的程序中,RPTR指令指定的地址是nothere-1,也就是說(shuō):重復(fù)執(zhí)行的程序代碼從bcnd fo
10、und直到nthere的前一指令Sub*。xc指令的用法如下:xc K,COND1COND2,指令中的K=1或2。COND1、COND2是條件。xc指令功能是在條件滿足的情況下,執(zhí)行該指令下面的K條指令,K為1,則執(zhí)行一條指令,K為2則執(zhí)行兩條指令。條件不滿足就執(zhí)行K條NOP指令。(4)該源程序是采用TMS320C5X的指令集編寫(xiě)的,如果是TMS320C5X系列的DSP,則可以直接將上面給出的程序作為一個(gè)子程序來(lái)使用。而對(duì)于TMS320C2XX系列的DSP來(lái)說(shuō),由于TMS320C5X的指令對(duì)TMS320C2XX的指令是向下兼容的,所以在編寫(xiě)TMS320C2XX的折半查找程序時(shí)應(yīng)作一些修改,比如前面提到的程序中的samm指令,在TMS320C2XX指令集中就沒(mé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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政工程常見(jiàn)材料及性能分析試題及答案
- 完整工作經(jīng)歷與崗位證明文書(shū)(5篇)
- 智慧供應(yīng)鏈管理 課件 第七章 智慧采購(gòu)管理
- 旅游目的地文化與特色知識(shí)題
- 經(jīng)濟(jì)師考試預(yù)測(cè)試題及答案準(zhǔn)備
- 數(shù)字化時(shí)代的品牌轉(zhuǎn)型策略計(jì)劃
- 班級(jí)心理健康周的活動(dòng)安排計(jì)劃
- 經(jīng)濟(jì)法與企業(yè)責(zé)任試題及答案
- 班主任應(yīng)對(duì)突發(fā)事件的能力計(jì)劃
- 公共關(guān)系的職業(yè)發(fā)展路徑試題及答案
- 康復(fù)醫(yī)學(xué)康復(fù)治療技術(shù)含內(nèi)容模板
- 無(wú)人機(jī)技術(shù)在農(nóng)業(yè)的應(yīng)用
- NB-T 47037-2021 電站閥門(mén)型號(hào)編制方法
- 2024年輔警考試公基常識(shí)300題(附解析)
- 前額葉皮質(zhì)在記憶中的作用與機(jī)制
- 小學(xué)少先隊(duì)活動(dòng)課說(shuō)課稿
- 妊娠期常見(jiàn)的皮膚病
- T∕CACM 1078-2018 中醫(yī)治未病技術(shù)操作規(guī)范 拔罐
- 腹腔穿刺術(shù)評(píng)分表
- 2024屆上海市閔行區(qū)三年級(jí)英語(yǔ)第二學(xué)期期中監(jiān)測(cè)模擬試題含答案
- 電氣一次主接線圖課件
評(píng)論
0/150
提交評(píng)論