dsp復(fù)習(xí)題及答案(精)_第1頁
dsp復(fù)習(xí)題及答案(精)_第2頁
dsp復(fù)習(xí)題及答案(精)_第3頁
dsp復(fù)習(xí)題及答案(精)_第4頁
dsp復(fù)習(xí)題及答案(精)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1、 TI 公司 DSP 分類及代表產(chǎn)品簡介TI 的 DSP 經(jīng)過完善的測試出廠時,都是以 TMS320 為前綴。在眾多款型DSP 中, TI 把市場銷量好和前景看好的DSP歸為三大系列而大力推廣,TI 也稱之為三個平臺。TMS320C6000 平臺,包含定點C62x 和 C64x 以及浮點C67x。其追求的是至高性能,最近新推出的芯片速度高達(dá)1GHZ,適合寬帶網(wǎng)絡(luò)、圖像、影像、雷達(dá)等處理應(yīng)用。TMS320C5000 平臺,包含代碼兼容的定點C54x 和 C55x。其提供性能、外圍設(shè)備、小型封裝和電源效率的優(yōu)化組合,適合便攜式上網(wǎng)、語音處理及對功耗有嚴(yán)格要求的地方。DSP 的傳統(tǒng)設(shè)計往往是采取

2、主從式結(jié)構(gòu):在一塊電路板上,DSP 做從機,負(fù)責(zé)數(shù)字信號處理運算;外加一塊嵌入式微處理器做主機,來完成輸入、控制、顯示等其他功能。 為此, TI 專門推出了一款雙核處理器OMAP , 包含有一個ARM 和一個 C5000 系列DSP, OMAP 處理器把主從式設(shè)計在芯片級上合二為一,一個典型的應(yīng)用實例為諾基亞手機。TMS320C2000 平臺, 包含 16 位 C24xx 和 32位 C28xx 的定點DSP。 C24xx 系列市場銷量很好,而對 C28xx 系列,TI 認(rèn)為很有市場潛力而大力推廣。C2000 針對控制領(lǐng)域做了優(yōu)化配置,集成了了眾多的外設(shè),適合逆變器、馬達(dá)、機器人、數(shù)控機床、電

3、力等應(yīng)用領(lǐng)域。另外, OMAP 系列: OMAP 處理器集成ARM 的命令及控制功能,另外還提供DSP 的低功耗,實時信號處理能力,最適合移動上網(wǎng)設(shè)備和多媒體家電。其他系列的DSP 曾經(jīng)有過風(fēng)光,但現(xiàn)在都非TI 主推產(chǎn)品了,除了C3X 系列外,其他基本處于淘汰階段,如:C3X 的浮點系列:C30, C31 , C32 C2X 和 C5X 系列: C20, C25, C50, 每個系列的DSP 都有其主要應(yīng)用領(lǐng)域。2、 簡述實時信號處理的含義。要求在限定的時間內(nèi)將采集的數(shù)據(jù)在現(xiàn)場處理完成并得到一定的結(jié)果,即信號處理的時間要小于或者等于下一批數(shù)據(jù) 輸入時間,有時甚至要求在特定的時間、地點來完成信號

4、處理。3、 數(shù)字信號處理中最典型的運算有哪些?離散傅里葉變換(DFT)和卷積是信號處理中兩個最基本也是最常用的運算。核心算法是構(gòu)成多數(shù)數(shù)字信號處理系統(tǒng)的基本模塊, 包括:FFT,向量加,向量點積,濾波器,控制(轉(zhuǎn)移、壓棧、出棧、位操作)4、 C6000 系列 DSP 為什么適合與數(shù)字信號處理的需要?從DSP 的 cpu 結(jié)構(gòu)、總線結(jié)構(gòu)、存儲器結(jié)構(gòu)、專用功能單元、指令系統(tǒng)等方面闡述。TMS320C6000 產(chǎn)品是美國TI 公司于 1997 年推出的dsp 芯片,該DSP 芯片定點、浮點兼容,其中,定點系列是TMS320C62xx 系列,浮點系列是TMS320C67xx 系列。CPU 結(jié)構(gòu): 1.

5、定點/浮點系列兼容DSP 2.具有VelociTITM 先進(jìn) VLIW 結(jié)構(gòu)內(nèi)核3.具有類似RISC 的指令集4.片內(nèi)集成大容量SRAM ,最大可達(dá)8bit 6.內(nèi)置高效率協(xié)處理器7.片內(nèi)提供多重集成外設(shè)(不同芯片的資源不同)等多種功能結(jié)構(gòu),滿足數(shù)字信號處理的精度及效率需要,另外其CPU 用了哈佛結(jié)構(gòu),程序總線和數(shù)據(jù)總線分開,取指令與執(zhí)行指令可并行,時效性提高。總線: cpu 內(nèi)部程序總線和數(shù)據(jù)總線分開,取指令與執(zhí)行指令可并行。但偏外的存儲器和總線都不分開。C6000 系列DSP 才用了新的VILW 結(jié)構(gòu),片內(nèi)提供8個獨立的運算單元,256 位的程序總線,2 套 32 位的數(shù)據(jù)總線和1 套 3

6、2 位的 DMA 專用總線。靈活的總線結(jié)構(gòu)大大緩解了數(shù)據(jù)瓶頸對系統(tǒng)性能的限制。存儲區(qū):C6000 系統(tǒng) dsp 內(nèi)部集成有1-8bit 的程序 RAM 和數(shù)據(jù) RAM ,對于有些片種,這些存儲器還可以配置為程序Cache 或者數(shù)據(jù)Cache 來使用。專用功能單元:C6000 片內(nèi)有 8 個并行的處理單元,分為相同的兩組,包括2 個乘法器和6 個 ALU 。這 8 個功能單元最多可以在1 個周期內(nèi)同時執(zhí)行8條 32 位指令,芯片最高時鐘頻率為300MHz( 67xx 系列) ,且內(nèi)部8 個處理單元并行運行時,其最大處理能力可達(dá)到1600MIPS。郭功能單元的并且操作使得DSO 在相同時間內(nèi)能夠完

7、成更多的操作,提高了程序的執(zhí)行速度。指令系統(tǒng):DSP 的體系結(jié)構(gòu)采用超長指令字(vliw )結(jié)構(gòu),單指令字長為32 位,指令包里有8 條指令,總字長達(dá)到256 位。執(zhí)行指令的功能單元已經(jīng)在編譯時分配好,程序運行時通過專門的指令分配模塊,可以將每個256 為的指令包同時分配到8 個處理單元,并有8 個單元同時運行。綜上看出,C6000 DSP 適合數(shù)字信號處理的需要。5、 簡述 C6000 系列定點DSP 的指令流水線結(jié)構(gòu)。指令流水線的工作方式,即一條指令的執(zhí)行分為若干個階段完成,就像經(jīng)過工廠里的生產(chǎn)流水線上的一道道工序一樣,而同時,在流水線的其它階段又分別有其它的指令在順序地執(zhí)行著。C6000

8、 中指令均按照取指(Fetch)譯碼(Decode)和執(zhí)行(Execute) 3 個流水線運行,每一級又包含幾個節(jié)拍,如下圖所示C6000 系列定點DSP 指令流水線結(jié)構(gòu):6、 簡述 C6000 系列 DSP CPU 有那幾個功能單元,每個功能單元的作用是什么?4 個主要單元,指令緩沖單元I ,程序流程單元P,地址流程單元A,數(shù)據(jù)計算單元D,指令緩沖單元I 由指令隊列和指令譯碼器構(gòu)成,接受程序指令代碼,放到IBQ 中,指令譯碼器從指令緩沖隊列中取指令進(jìn)行譯碼,譯碼后數(shù)據(jù)分別送到其他三個單元中處理。P 單元 由程序地址產(chǎn)生邏輯電路和一組寄存器組構(gòu)成,主要功能產(chǎn)生所有I 單元讀取指令所需的程序地址

9、、控制指令讀取順序。A單元 :功能產(chǎn)生讀寫數(shù)據(jù)空間的地址;D單元 :包括了CPU的主要計算部件,完成高效的計算功能。CPU 結(jié)構(gòu)分三個機構(gòu):程序讀入及指令分配、譯碼機構(gòu); 程序執(zhí)行機構(gòu):兩個數(shù)據(jù)通路,8 個功能單元等,其中 .L1 、 .L2 、 .S1 、 .S2 是主要的算術(shù)邏輯單元,.M1.M2 是乘法器,主要完成乘法運算,.D1.D2 是數(shù)據(jù)尋址單元,唯一能產(chǎn)生地址的功能單元。指令測試、仿真端口及控制邏輯。7、 何謂線性匯編?并行匯編?線性匯編語言主要用途是編寫需要優(yōu)化的算法,其代碼不需要給出匯編代碼必須指出的所有信息,可對信息選擇,也可由匯編優(yōu)化器確定。其文件使用“ .sa, ”擴(kuò)展

10、名僅對指定的代碼段進(jìn)行優(yōu)化,指定代碼段外的代碼被拷貝為輸出“ .asm”文件,線性匯編過程可以:傳遞參數(shù),返回結(jié)果,使用符號變量,不考慮流水線問題。并行匯編: 它是直接采用DSP中各個功能單元作為操作對象,根據(jù)TI 規(guī)定的匯編語言書寫規(guī)范要求來完成程序的編寫,在程序編寫時要充分考慮寄存器的使用、各個指令的時延以及指令間的并行關(guān)系。根據(jù)盡量使軟件流水滿負(fù)荷執(zhí)行的規(guī)則,合理的書寫并行匯編指令,能夠極大的提高程序執(zhí)行的速度,充分發(fā)揮出DSP的優(yōu)勢。8、 何謂超標(biāo)量處理器?何謂超流水處理器?何謂超標(biāo)量超流水處理器?(理解)超標(biāo)量是通過內(nèi)置多條流水線來同時執(zhí)行多個處理器,其實質(zhì)是以空間換取時間。超流水是

11、通過細(xì)化流水、提高主頻,使得在一個機器周期內(nèi)完成一個甚至多個操作,其實質(zhì)是以時間換取空間。超標(biāo)量超流水處理器則是指在超標(biāo)量和超流水兩種技術(shù)間,找到一個最佳結(jié)合點,這樣既能解決操作的時間問題,又能滿足處理器對空間的要求。9、 何謂軟件流水優(yōu)化?軟件流水優(yōu)化有什么專用?DSP 適合對大量數(shù)據(jù)做相同的運算,相同的工作放在一起完成,形成循環(huán),便于軟件流水。軟件流水:是一種重要的指令調(diào)度技術(shù),它通過編排循環(huán)指令,重疊地執(zhí)行不同的循環(huán)體來提高ILP 。而軟件流水優(yōu)化正是利用DSP 處理機指令級的并行性,滿足各種資源限制,實現(xiàn)資源合理分配、充分使用算法到DSP結(jié)構(gòu)的映射,使單周期內(nèi)盡可能多的功能單元在執(zhí)行指

12、令。專用 :產(chǎn)生高性能循環(huán)代碼,執(zhí)行并行指令,填充延遲間隙,功能單元使用最大化,由開發(fā)工具產(chǎn)生,由編譯器選項-o2 或 o3 引入,匯編優(yōu)化器/C 優(yōu)化器產(chǎn)生,循環(huán)中工作太多,導(dǎo)致資源不夠(如:寄存器不夠分配),則可以拆分循環(huán)或展開循環(huán)。消除冗余循環(huán)。充分利用指令局部性和數(shù)據(jù)局部性的特點,推測執(zhí)行。十、數(shù)字信號處理程序優(yōu)化分為哪幾個層次?優(yōu)化的步驟是什么?每個步驟有哪些優(yōu)化措施?(注:不知道題目問的步驟是指優(yōu)化的總步驟,還是指每個層次優(yōu)化的步驟,故答案不全面)三個層次:1.C 語言級的優(yōu)化2. 線性匯編優(yōu)化3. 手工匯編優(yōu)化(優(yōu)化步驟:1 、用 C語言實現(xiàn)算法并驗證寫2、 C6x線性匯編代碼3

13、、畫相關(guān)圖4、分配功能單元和寄存器5、建編排表 6、將編排表轉(zhuǎn)換為C6x匯編代碼)1. C 語言級的優(yōu)化: 使用編譯選項、軟件流水、內(nèi)聯(lián)函數(shù)和循環(huán)展開等方法來對代碼進(jìn)行優(yōu)化,以提高代碼執(zhí)行速度,并減小代碼尺寸。2. 線性匯編優(yōu)化:寫線性匯編程序,然后用匯編優(yōu)化器進(jìn)行優(yōu)化,生成高性能的代碼。使用 C6000 的剖析工具(ProfilingTools)可以找到代碼中最耗費時間的部分,就是這部分需要用線性匯編重寫。需要知道:匯編優(yōu)化器偽指令、影響匯編優(yōu)化器行為的選項、TMS320C6000 指令、線性匯編源語句語法、指定寄存器或寄存器組、指定功能單元、源代碼注釋等。3. 手工匯編優(yōu)化:編寫C 程序并

14、不經(jīng)過任何優(yōu)化,使用-On 優(yōu)化選項,需要優(yōu)化的代碼轉(zhuǎn)換為線性匯編,手工匯編并優(yōu)化。優(yōu)化措施:并行指令,填充延遲間隙,展開循環(huán),存取帶寬優(yōu)化(使用LDW/LDDW ) ,軟件流水等。十、 CMD 文件的作用是什么?CMD 是連接命令文件,包含了DSP 和目標(biāo)板的存儲器空間的定義以及代碼段、數(shù)據(jù)段是如何分配到這些存儲器空間的。 是 32位的dos命令提示符,有中文提示;而 command 是 16位的 dos命令提示符,全是英文.區(qū)別就是:一個是中文幫助,一個是英文幫助,功能沒有多大區(qū)別.十一、以實驗一為例簡述上機實驗步驟。實驗步驟1、開機:進(jìn)入Win XP 系統(tǒng),雙擊桌面上CCS3.3 圖標(biāo),

15、選擇openDM6437 Little Endian Simulator , 進(jìn)入 DSP 軟件集成開發(fā)環(huán)境,或者選擇open c6437 510 plus 進(jìn)入 DSP硬件集成開發(fā)環(huán)境(使用實驗箱做實驗,先連接好實驗箱及仿真器等方可開機)。2、編輯文件:選擇Source File 菜單,編輯好C 程序文件(*.c) 、匯編程序文件(*.asm) 、頭文件(*.asm)及鏈接命令文件(*.cmd ) ,并保存在D 盤 DSPLABLAB1 文件夾中。3、創(chuàng)建工程項目:選擇Project New,出現(xiàn)對話框,在project 欄(第一行)填寫項目名稱,并選定項目的位置( D:DSPLABLAB1

16、 ) ,然后單擊“完成”按鈕,這樣就新建了一個工程項目,該項目用來管理各種文件,便于編譯、調(diào)試。注意:路徑、文件夾、文件名中不能含有漢字,且第一個字母不能是數(shù)字。4、添加文件:將編輯好的三個文件添加到剛建好的工程項目中,選擇Project Add Files to Project ,出現(xiàn)一個對話框,選擇文件夾(D:DSPLABLAB1 )并選中C 文件、匯編程序文件、頭文件、cmd 文件,單擊“打開”按鈕就將這四個文件添加到該工程中了。5、編譯匯編程序:選擇Project Compile File,分別編譯主程序及頭文件,修改程序中的錯誤,再編譯,直到無錯誤出現(xiàn)。編譯后的文件為OBJ 文件。6

17、、鏈接:選擇Project Build 或 Rebuild All ,鏈接各OBJ 文件,若有錯誤出現(xiàn)應(yīng)修改錯誤(錯誤應(yīng)在cmd 文件中) ,再鏈接,直到無錯誤出現(xiàn)。鏈接生成可執(zhí)行的out文件。7、下載out 文件:選擇Program,在 debuge 文件夾中選中out 文件(文件名與工程項目同名),單擊“打開”按鈕,這樣 out 文件就下載到DSP 中了。調(diào)試:選擇debuge Step Into 單步執(zhí)行代碼或者選擇debuge Run 連續(xù)運行代碼(debuge Halt 停止運行)。單步運行或運行結(jié)束后選擇View Memory 和 View Registers CPU Regist

18、ers/Peripheral Regs 查看存儲器和寄存器中的數(shù)據(jù)。如果最后的結(jié)果有錯誤,則應(yīng)查找原因修改程序并重復(fù)步驟5 步驟8,直到結(jié)果正確為止。、并行匯編程序、軟件流水程序。十二、編寫矢量點積的C 程序、線性匯編程序(畫出相關(guān)圖)1、 C 語言代碼int DSP_dotprodc( const short *m, const short *n, int count) int i;int prod, sum = 0;#ifndef NOASSUMEZEROA_sumZEROB_sumSHRUA_count, 2,A_iSUBA_i,2,A_i.mptrA_m,x + 0,8.mptrB_n

19、,x + 8,82 線性匯編代碼.text.global _DSP_dotprodsa_DSP_dotprodsa: .cproc A_m, B_n, A_count.no_mdep.reg A_reg1:A_reg0, B_reg1:B_reg0.reg A_prod, B_prod, A_sum, B_sum, A_i.trip 8_nassert(int)m % 8 = 0);_nassert(int)n % 8 = 0);_nassert(int)m % 16 != (int)n % 16);#pragma MUST_ITERATE(4,4);#endiffor (i = 0; i &

20、lt; count; i+)prod = mi * ni;sum += prod;return sum; loop:/* Double-word aligned*/* Double-word aligned*/* In different banks*/* count >= 4, mult of 4*/LDDW .1*A_m+,A_reg1:A_reg0LDDW .2*B_n+,B_reg1:B_reg0DOTP2A_reg1,B_reg1, A_prodDOTP2B_reg0,A_reg0, B_prodADDA_sum,A_prod, A_sumADDB_sum,B_prod, B_

21、sumBDECloop,A_iADDA_sum,B_sum, A_sum.return A_sum.endproc.end3、并行匯編代碼.sect ".text:_dotprod".global _DSP_dotprod64_DSP_dotprod64:*=SYMBOLIC REGISTER ASSIGNMENTS = *.asgA4,A_m; pointer to vector m.asgB4,B_n; pointer to vector n.asgA6,A_count ; number of elements in each vector.asgA0,A_i; loo

22、p count.asgA16,A_sum ; partial sum a.asgA17,A_prod ; sum of products ai*bi+ai+1*bi+1.asgB16,B_sum ; partial sum b.asgB17,B_prod ; product sum ai+2*bi+2+ai+3*bi+3.asgA9,A_reg1 ; elements ai+3 ai+2.asgA8,A_reg0 ; elements ai+1 ai.asgB7,B_reg1 ; elements bi+3 bi+2.asgB6,B_reg0 ; elements bi+1 bi.asgA4,

23、A_sumt ; total sum a + b returned to caller* = PIPE LOOP PROLOG = *B.S2loop; prime loop|LDDW.D2T2*B_n+,B_reg1:B_reg0; load bi+3.bi|LDDW.D1T1*A_m+,A_reg1:A_reg0; load ai+3.aiB.S2loop; prime loop|LDDW.D2T2*B_n+,B_reg1:B_reg0; load bi+3.bi|LDDW.D1T1*A_m+,A_reg1:A_reg0; load ai+3.ai|SHRU.S1A_count,2,A_i; calc loop count|ZERO.L1A_prod:A_sum|ZERO.L2B_prod:B_sumB.S1loop; prime loop|A_i LDDW.D2T2*B_n+,B_reg1:B_reg0; load bi+3.bi|A_i LDDW.D1T1*A_m+,A_reg1:A_reg0; load ai+3.ai|ZERO.L1A_prod:A_sum; added for branch-|ZERO.L2B_prod:B_sum; target-not-spanA_i BDEC.S1loop,A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論