




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1dspdsp技術(shù)及應(yīng)用技術(shù)及應(yīng)用igital ignal rocessor數(shù)字信號(hào)處理器數(shù)字信號(hào)處理器http:/ dsp指令系統(tǒng)與特點(diǎn)指令系統(tǒng)與特點(diǎn) 第一節(jié)第一節(jié) 尋址方式尋址方式第二節(jié)第二節(jié) 程序地址的生成程序地址的生成第三節(jié)第三節(jié) 流水線操作技流水線操作技術(shù)術(shù)第四節(jié)第四節(jié) 指令系統(tǒng)概述指令系統(tǒng)概述http:/ 1616位立即數(shù),位立即數(shù),i/oi/o口地址??诘刂?。srcsrc: 源累加器(源累加器(a a或或b b)。)。dstdst: 目的累加器(目的累加器(a a或或b b)。)。lklk: 1616位長(zhǎng)立即數(shù)。位長(zhǎng)立即數(shù)。第一節(jié)第一節(jié) tms320c54xtms320c54x的
2、尋址方式的尋址方式 http:/ 1立即數(shù)尋址立即數(shù)尋址2絕對(duì)地址尋址絕對(duì)地址尋址3累加器尋址累加器尋址4直接尋址直接尋址5間接尋址間接尋址6存儲(chǔ)器映象寄存器尋址存儲(chǔ)器映象寄存器尋址7堆棧尋址堆棧尋址尋址分類尋址分類http:/ 1 1立即數(shù)尋址立即數(shù)尋址 在操作數(shù)前面需要加字號(hào)來(lái)說(shuō)明該操作數(shù)在操作數(shù)前面需要加字號(hào)來(lái)說(shuō)明該操作數(shù)為立即數(shù)。否則會(huì)把該操作數(shù)誤認(rèn)為是一個(gè)地為立即數(shù)。否則會(huì)把該操作數(shù)誤認(rèn)為是一個(gè)地址,從而把立即數(shù)尋址變成絕對(duì)地址尋址。址,從而把立即數(shù)尋址變成絕對(duì)地址尋址。 特特點(diǎn)點(diǎn)指令中包含有執(zhí)行指令所需要的操作數(shù)。指令中包含有執(zhí)行指令所需要的操作數(shù)。立即數(shù)分為立即數(shù)分為3 3、5
3、5、8 8或或9 9位的短立即數(shù)和位的短立即數(shù)和1616位位的長(zhǎng)立即數(shù)兩種。的長(zhǎng)立即數(shù)兩種。短立即數(shù)可包含在單字或雙字指令中,長(zhǎng)立短立即數(shù)可包含在單字或雙字指令中,長(zhǎng)立即數(shù)在雙字指令中。即數(shù)在雙字指令中。 注注意意ld #93hld #93h,a a ld 93hld 93h,a a 舉例舉例http:/ 2絕對(duì)地址尋址絕對(duì)地址尋址特特點(diǎn)點(diǎn)在指令中包含有所要尋址的存儲(chǔ)單元的在指令中包含有所要尋址的存儲(chǔ)單元的1616位位地址。這個(gè)地址。這個(gè)1616位的地址可以用其所在單元的地位的地址可以用其所在單元的地址標(biāo)號(hào)或者址標(biāo)號(hào)或者1616位符號(hào)常數(shù)來(lái)表示。位符號(hào)常數(shù)來(lái)表示。 (1 1)數(shù)據(jù)存儲(chǔ)器地址()
4、數(shù)據(jù)存儲(chǔ)器地址(damddamd)尋)尋址址 用一個(gè)符號(hào)或一個(gè)用一個(gè)符號(hào)或一個(gè)數(shù)來(lái)確定數(shù)據(jù)空間數(shù)來(lái)確定數(shù)據(jù)空間的一個(gè)地址。的一個(gè)地址。 方法方法mvkd samplemvkd sample,* *ar3ar3 舉例舉例http:/ 2絕對(duì)地址尋址絕對(duì)地址尋址(2 2)程序存儲(chǔ)器地址()程序存儲(chǔ)器地址(pmadpmad)尋)尋址址 方法方法mvpd tablemvpd table,* *ar4ar4 舉例舉例http:/ 2絕對(duì)地址尋址絕對(duì)地址尋址(3 3)papa尋址尋址 端口(端口(papa) 方法方法portr fifoportr fifo,* *ar5 ar5 舉例舉例http:/ 2絕
5、對(duì)地址尋址絕對(duì)地址尋址(4 4)* *(lklk)尋址)尋址 方法方法ld ld * *(bufferbuffer),),a a 舉例舉例特點(diǎn)特點(diǎn)允許所有使用允許所有使用smemsmem尋址的指尋址的指令去訪問(wèn)數(shù)據(jù)令去訪問(wèn)數(shù)據(jù)空間的任意單空間的任意單元而不改變數(shù)元而不改變數(shù)據(jù)頁(yè)指針(據(jù)頁(yè)指針(dpdp)的值,也不用的值,也不用對(duì)對(duì)arxarx進(jìn)行初進(jìn)行初始化始化 http:/ 方法方法reada smem reada smem writa smem writa smem 舉例舉例特點(diǎn)特點(diǎn)可用來(lái)可用來(lái)完成完成程序存儲(chǔ)器程序存儲(chǔ)器單元的數(shù)據(jù)單元的數(shù)據(jù)與與數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)器單元的數(shù)器單元的數(shù)據(jù)據(jù)進(jìn)行
6、交換進(jìn)行交換 3累加器尋址累加器尋址http:/ 用一個(gè)符號(hào)或用一個(gè)符號(hào)或一個(gè)常數(shù)來(lái)確一個(gè)常數(shù)來(lái)確定定7 7位偏移值位偏移值,與與dpdp或或spsp共同共同形成形成1616位的數(shù)位的數(shù)據(jù)存儲(chǔ)器實(shí)際據(jù)存儲(chǔ)器實(shí)際地址。地址。4直接尋址直接尋址 方法方法ld #xld #x,dpdpld uld u,a a add vadd v,a a =ssbx cplssbx cpl ld x1 ld x1,a a add y2 add y2,a a 舉例舉例特點(diǎn)特點(diǎn)http:/ 7cpl=0 7位位dmadma域與域與9bit9bit的的dpdp相結(jié)合相結(jié)合形成形成1616位的數(shù)據(jù)存儲(chǔ)器地址。位的數(shù)據(jù)存儲(chǔ)器
7、地址。cpl=1 7cpl=1 7位位dmadma域加上(正偏移)域加上(正偏移)spsp的值形成的值形成1616位的數(shù)據(jù)存儲(chǔ)器地址。位的數(shù)據(jù)存儲(chǔ)器地址。 dpdp值是從值是從0511(2 29 9-1-1),以),以dpdp為基準(zhǔn)的直接尋址把存儲(chǔ)器分為基準(zhǔn)的直接尋址把存儲(chǔ)器分成成512512頁(yè),頁(yè),7 7位的位的dmadma范圍從范圍從0127,每頁(yè)有,每頁(yè)有128128個(gè)可訪問(wèn)的單元。個(gè)可訪問(wèn)的單元。 http:/ 方法方法特點(diǎn)特點(diǎn)(ar0ar0ar7ar7)arau0/arau1 arau0/arau1 1616位無(wú)符號(hào)算術(shù)運(yùn)位無(wú)符號(hào)算術(shù)運(yùn)算算尋址范圍為尋址范圍為64k 64k 能在一個(gè)
8、指令中訪問(wèn)能在一個(gè)指令中訪問(wèn)兩個(gè)數(shù)據(jù)存儲(chǔ)器單元兩個(gè)數(shù)據(jù)存儲(chǔ)器單元兩個(gè)獨(dú)立的存儲(chǔ)器單元讀數(shù)據(jù)兩個(gè)獨(dú)立的存儲(chǔ)器單元讀數(shù)據(jù)讀一個(gè)讀一個(gè)、寫(xiě)另一個(gè)存儲(chǔ)器單元寫(xiě)另一個(gè)存儲(chǔ)器單元讀寫(xiě)兩個(gè)連續(xù)的存儲(chǔ)器單元讀寫(xiě)兩個(gè)連續(xù)的存儲(chǔ)器單元 http:/ (1 1)單操作數(shù)尋址)單操作數(shù)尋址 定義間接尋定義間接尋址的類型址的類型定義尋址所使用定義尋址所使用的輔助寄存器的輔助寄存器 st1st1cmpt=0 cmpt=0 標(biāo)準(zhǔn)方式標(biāo)準(zhǔn)方式arfarf確定輔助寄存器確定輔助寄存器,st0st0中中arparp0 0 cmpt=1 cmpt=1 兼容方式兼容方式如如arf=0arf=0,用,用arparp選擇輔助寄存器,選擇
9、輔助寄存器,否則,用否則,用arfarf來(lái)確定輔助寄存器。來(lái)確定輔助寄存器。arfarf的值裝入的值裝入arparp。ld ld * *ar1,bar1,bhttp:/ 能能說(shuō)說(shuō) 明明0000*arxaddr=arxarx包含了數(shù)據(jù)存儲(chǔ)器地址包含了數(shù)據(jù)存儲(chǔ)器地址0001*arx-addr=arxarx=arx-1訪問(wèn)后,訪問(wèn)后,arx中的地址減中的地址減10010*arx+addr=arxarx=arx+1訪問(wèn)后,訪問(wèn)后,arx中的地址加中的地址加10011*+arxaddr=arx+1arx=arx+1在尋址前,在尋址前,arx中的地址加中的地址加1,然后再尋址,然后再尋址0100*arx-
10、0baddr=arxarx=b(arx-ar0)訪問(wèn)后,從訪問(wèn)后,從arx中以位倒序進(jìn)位的方式減去中以位倒序進(jìn)位的方式減去ar00101*arx-0addr=arxarx=arx-ar0訪問(wèn)后,從訪問(wèn)后,從arx中減去中減去ar00110*arx+0addr=arxarx=arx+ar0訪問(wèn)后,把訪問(wèn)后,把a(bǔ)r0加到加到arx中去中去0111*arx+0baddr=arxarx=b(arx+ar0)訪問(wèn)后,把訪問(wèn)后,把a(bǔ)r0以位倒序進(jìn)位的方式加到以位倒序進(jìn)位的方式加到arx中中1000*arx-%addr=arxarx=circ(arx-1)訪問(wèn)后,訪問(wèn)后,arx中的地址以循環(huán)尋址的方式減中的
11、地址以循環(huán)尋址的方式減11001*arx-0%addr=arxarx=circ(arx-ar0)訪問(wèn)后,從訪問(wèn)后,從arx中以循環(huán)尋址的方式減去中以循環(huán)尋址的方式減去ar01010*arx+%addr=arxarx=circ(arx+1)訪問(wèn)后,訪問(wèn)后,arx中的地址以循環(huán)尋址的方式加中的地址以循環(huán)尋址的方式加11011*arx+0%addr=arxarx=circ(arx+ar0)訪問(wèn)后,把訪問(wèn)后,把a(bǔ)r0以循環(huán)尋址的方式加到以循環(huán)尋址的方式加到arx中中1100*arx(lk)addr=arx+lkarx=arxarx和和16位的長(zhǎng)偏移(位的長(zhǎng)偏移(lk)的和用來(lái)作為數(shù)據(jù)存儲(chǔ)器地)的和用來(lái)
12、作為數(shù)據(jù)存儲(chǔ)器地址。址。arx本身不被修改本身不被修改1101*+arx(lk)addr=arx+lkarx=arx+lk在尋址前,把一個(gè)帶符號(hào)的在尋址前,把一個(gè)帶符號(hào)的16位的長(zhǎng)偏移(位的長(zhǎng)偏移(lk)加到)加到arx中,然后用新的中,然后用新的arx的值作為數(shù)據(jù)存儲(chǔ)器的地址的值作為數(shù)據(jù)存儲(chǔ)器的地址1110*+arx(lk)%addr=circ(arx+lk)arx=circ(arx+lk)在尋址前,把一個(gè)帶符號(hào)的在尋址前,把一個(gè)帶符號(hào)的16位的長(zhǎng)偏移以循環(huán)尋址位的長(zhǎng)偏移以循環(huán)尋址的方式加到的方式加到arx中,然后再用新的中,然后再用新的arx的值作為數(shù)據(jù)的值作為數(shù)據(jù)存儲(chǔ)器的地址存儲(chǔ)器的地址
13、1111*(lk)addr=lk一個(gè)無(wú)符號(hào)的一個(gè)無(wú)符號(hào)的16位的長(zhǎng)偏移(位的長(zhǎng)偏移(lk)用來(lái)作為數(shù)據(jù)存儲(chǔ))用來(lái)作為數(shù)據(jù)存儲(chǔ)器的絕對(duì)地址。(也屬絕對(duì)尋址)器的絕對(duì)地址。(也屬絕對(duì)尋址)單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型 http:/ 1) 循環(huán)尋址循環(huán)尋址 循環(huán)緩沖區(qū)的長(zhǎng)度值存放在循環(huán)緩沖循環(huán)緩沖區(qū)的長(zhǎng)度值存放在循環(huán)緩沖區(qū)長(zhǎng)度寄存器區(qū)長(zhǎng)度寄存器bkbk中,中,bkbk中的數(shù)值由指令設(shè)定。長(zhǎng)度為中的數(shù)值由指令設(shè)定。長(zhǎng)度為r r的循環(huán)緩沖器必須從一個(gè)的循環(huán)緩沖器必須從一個(gè)n n位地址的邊界開(kāi)始,即循環(huán)位地址的邊界開(kāi)始,即循環(huán)緩沖器基地址的最低緩沖器基地址的最低n n位必須
14、為位必須為0 0。n n是滿足是滿足2 2n nr r的最的最小整數(shù)。小整數(shù)。r r的值必須裝入的值必須裝入bkbk。例如,含有例如,含有3131個(gè)字的循環(huán)緩沖器必須從最低個(gè)字的循環(huán)緩沖器必須從最低5 5位為位為0 0的的地址開(kāi)始,即地址開(kāi)始,即xxxx xxxx xxx0 0000 xxxx xxxx xxx0 00002 2,n=5n=5,2 2n n=2=25 5r=31r=31,且,且3131必須裝入必須裝入bkbk。如:。如:stm #1kstm #1k,bkbk如果如果r=32r=32,則最小的,則最小的n n值為值為6 6,循環(huán)緩沖區(qū)的起始地址,循環(huán)緩沖區(qū)的起始地址必須有必須有6
15、 6個(gè)最低有效位為個(gè)最低有效位為0 0,即,即 00 000000 00002 2。http:/ 2) 位倒序?qū)ぶ肺坏剐驅(qū)ぶ?在這種尋址方式中,用在這種尋址方式中,用ar0ar0存放存放fftfft點(diǎn)數(shù)的一半整數(shù)點(diǎn)數(shù)的一半整數(shù)n n,用另一輔助寄存器指向一數(shù)據(jù),用另一輔助寄存器指向一數(shù)據(jù)存放的物理單元。當(dāng)使用位倒序?qū)ぶ钒汛娣诺奈锢韱卧?。?dāng)使用位倒序?qū)ぶ钒補(bǔ)r0ar0加到輔助寄加到輔助寄存器中時(shí),地址以位倒序的方式產(chǎn)生,即進(jìn)位是從左存器中時(shí),地址以位倒序的方式產(chǎn)生,即進(jìn)位是從左向右,而不是從右向左進(jìn)位。向右,而不是從右向左進(jìn)位。 例如:例如: 0110 10000110 1000 + 0000
16、1000 + 0000 1000 0110 01000110 0100以以8 8位輔助寄存器為例,位輔助寄存器為例,ar1ar1表示了在存儲(chǔ)器中數(shù)表示了在存儲(chǔ)器中數(shù)據(jù)的基地址(據(jù)的基地址(0110 00000110 0000)2 2,ar0ar0的值為(的值為(0000 10000000 1000)2 2。利用以下兩條語(yǔ)句可以向外設(shè)口(口地址為。利用以下兩條語(yǔ)句可以向外設(shè)口(口地址為papa)輸出整序后的輸出整序后的fftfft變換結(jié)果:變換結(jié)果:rpt #15 rpt #15 重復(fù)執(zhí)行下條指令重復(fù)執(zhí)行下條指令15+115+1次次portw portw * *ar1+0bar1+0b,pa p
17、a 向外設(shè)口向外設(shè)口papa輸出整結(jié)果輸出整結(jié)果http:/ 變換結(jié)果變換結(jié)果位倒序位倒序ar1更新的地址值更新的地址值ar0=0000 10002整序后整序后pa輸出的輸出的fft變換結(jié)果變換結(jié)果00000x(0)00000110 0000x(0)10001x(8)10000110 1000x(1)20010x(4)01000110 0100x(2)30011x(12)11000110 1100x(3)40100x(2)00100110 0010x(4)50101x(10)10100110 1010x(5)60110x(6)01100110 0110x(6)70111x(14)1110011
18、0 1110x(7)81000x(1)00010110 0001x(8)91001x(9)10010110 1001x(9)101010x(5)01010110 0101x(10)111011x(13)11010110 1101x(11)121100x(3)00110110 0011x(12)131101x(11)10110110 1011x(13)141110x(7)01110110 0111x(14)151111x(15)11110110 1111x(15)位倒序?qū)ξ坏剐驅(qū)ftfft變換結(jié)果的序號(hào)調(diào)整變換結(jié)果的序號(hào)調(diào)整 http:/ (2 2)雙操作數(shù)尋址方式)雙操作數(shù)尋址方式 確定確定
19、包含包含xmemxmem地址地址的輔的輔助寄助寄存器存器 確定確定包含包含ymemymem地址地址的輔的輔助寄助寄存存器器定義用于定義用于訪問(wèn)訪問(wèn)ymemymem操作數(shù)的操作數(shù)的間接尋址間接尋址方式的類方式的類型型 定義用于定義用于訪問(wèn)訪問(wèn)xmemxmem操操作數(shù)的間作數(shù)的間接尋址方接尋址方式的類型式的類型 mpy mpy * *ar2,ar2,* *ar3,aar3,ahttp:/ 輔助寄存器輔助寄存器00 ar201 ar310 ar411 ar5輔助輔助寄存器寄存器選擇選擇xmod或或ymod操作碼語(yǔ)操作碼語(yǔ)法法功功 能能說(shuō)說(shuō) 明明00*arxaddr=arxarx是數(shù)據(jù)存儲(chǔ)器地址是數(shù)據(jù)
20、存儲(chǔ)器地址01*arx-addr=arxarx=arx-1訪問(wèn)后,訪問(wèn)后,arx中的地址減中的地址減110*arx+addr=arxarx=arx+1訪問(wèn)后,訪問(wèn)后,arx中的地址加中的地址加111*arx+0%addr=arxarx=circ(arx+ar0)訪問(wèn)后,訪問(wèn)后,ar0以循環(huán)尋址的以循環(huán)尋址的方式加到方式加到arx中中http:/ 0頁(yè)尋址。頁(yè)尋址。不影響不影響當(dāng)前當(dāng)前dpdp或或spsp值值 。用于直用于直接尋址接尋址和間接和間接尋址尋址用來(lái)修用來(lái)修改存儲(chǔ)改存儲(chǔ)器映象器映象寄存器寄存器 6存儲(chǔ)器映象寄存器尋址存儲(chǔ)器映象寄存器尋址功能功能ldm prd,aldm prd,a舉例舉
21、例特點(diǎn)特點(diǎn)方法方法高高9 9位數(shù)據(jù)位數(shù)據(jù)存儲(chǔ)器地址存儲(chǔ)器地址被置被置0 0,利,利用指令中的用指令中的低位地址低位地址訪問(wèn)訪問(wèn)mmrmmr。http:/ 從高地址向低地址方向生長(zhǎng),從高地址向低地址方向生長(zhǎng),spsp)來(lái)管理堆棧,)來(lái)管理堆棧,spsp始終指始終指向堆棧中所存放的最后一個(gè)向堆棧中所存放的最后一個(gè)數(shù)據(jù),即數(shù)據(jù),即spsp指針始終指向棧指針始終指向棧頂。在壓入操作時(shí),先減小頂。在壓入操作時(shí),先減小spsp的值,再將數(shù)據(jù)壓入堆棧;的值,再將數(shù)據(jù)壓入堆棧;在彈出操作時(shí),先從堆棧彈在彈出操作時(shí),先從堆棧彈出數(shù)據(jù),再增加出數(shù)據(jù),再增加spsp的值。的值。用來(lái)在中斷用來(lái)在中斷和子程序調(diào)和子程序
22、調(diào)用時(shí)自動(dòng)保用時(shí)自動(dòng)保存程序計(jì)數(shù)存程序計(jì)數(shù)器(器(pcpc)中)中的數(shù)值的數(shù)值,也也能用來(lái)保護(hù)能用來(lái)保護(hù)現(xiàn)場(chǎng)或傳送現(xiàn)場(chǎng)或傳送參數(shù)參數(shù) 功能功能特點(diǎn)特點(diǎn)pshd pshd * *ar2ar2 popd popd * *ar3ar3http:/ 程序地址的生成程序地址的生成程序地址程序地址生成器生成器(pagenpagen)構(gòu)成構(gòu)成程序計(jì)數(shù)器(程序計(jì)數(shù)器(pcpc)重復(fù)計(jì)數(shù)器(重復(fù)計(jì)數(shù)器(rcrc)塊重復(fù)計(jì)數(shù)器(塊重復(fù)計(jì)數(shù)器(brcbrc)塊重復(fù)起始地址寄存器(塊重復(fù)起始地址寄存器(rsarsa)塊重復(fù)結(jié)束地址寄存器(塊重復(fù)結(jié)束地址寄存器(rearea)核心核心1616位程序計(jì)數(shù)器(位程序計(jì)數(shù)器(
23、pcpc)內(nèi)中保存某個(gè)內(nèi)部或外內(nèi)中保存某個(gè)內(nèi)部或外部程序存儲(chǔ)器的地址部程序存儲(chǔ)器的地址。地址地址內(nèi)容為:內(nèi)容為:即將取指的某條指令即將取指的某條指令;某個(gè)某個(gè)1616位立即操作數(shù)位立即操作數(shù);系數(shù)表系數(shù)表。在程序存儲(chǔ)器中的地址在程序存儲(chǔ)器中的地址http:/ 通過(guò)分支轉(zhuǎn)移指令改寫(xiě)通過(guò)分支轉(zhuǎn)移指令改寫(xiě)pcpc,可,可以改變程序的流向。而子程序以改變程序的流向。而子程序調(diào)用指令則通過(guò)將一個(gè)返回地調(diào)用指令則通過(guò)將一個(gè)返回地址壓入堆棧,執(zhí)行返回時(shí)恢復(fù)址壓入堆棧,執(zhí)行返回時(shí)恢復(fù)原地址。原地址。可執(zhí)行可執(zhí)行: :分支轉(zhuǎn)移分支轉(zhuǎn)移循環(huán)控制循環(huán)控制子程序操子程序操作作 功能功能方法方法http:/ bdbd用
24、指令用指令中所給出的中所給出的地址加載地址加載pcpcbaccdbaccd用用所指定的累所指定的累加器的低加器的低1616位作為地址位作為地址加載加載pcpc。 帶延遲帶延遲不帶延遲不帶延遲操作操作轉(zhuǎn)移種類轉(zhuǎn)移種類bcdbcd如果指令如果指令中所規(guī)定的條中所規(guī)定的條件得到滿足,件得到滿足,就用指令中所就用指令中所給出的地址加給出的地址加載載pcpc;banzdbanzd如果當(dāng)如果當(dāng)前輔助寄存器前輔助寄存器不等于不等于0 0,就用,就用指令中所規(guī)定指令中所規(guī)定的地址加載的地址加載pcpc。 bc newbc new,aovaov banz loop,banz loop,* *ar2-ar2-b
25、nextb nextbacc abacc ahttp:/ 轉(zhuǎn)移前,原程序的轉(zhuǎn)移前,原程序的下條指令的地址被下條指令的地址被壓入堆棧,而在返壓入堆棧,而在返回時(shí)則將這個(gè)地址回時(shí)則將這個(gè)地址彈出至彈出至pcpc,使被中,使被中斷了的原程序能繼斷了的原程序能繼續(xù)執(zhí)行。續(xù)執(zhí)行。 當(dāng)采用調(diào)用指令進(jìn)當(dāng)采用調(diào)用指令進(jìn)行子程序或函數(shù)調(diào)行子程序或函數(shù)調(diào)用時(shí),用時(shí),dspdsp中斷當(dāng)前中斷當(dāng)前運(yùn)行的程序,轉(zhuǎn)移運(yùn)行的程序,轉(zhuǎn)移到程序存儲(chǔ)器的其到程序存儲(chǔ)器的其它地它地址址繼續(xù)運(yùn)行。繼續(xù)運(yùn)行。功能功能方法方法無(wú)條件調(diào)用與返回?zé)o條件調(diào)用與返回有條件調(diào)用與返回有條件調(diào)用與返回帶延遲帶延遲不帶延遲不帶延遲calld lopc
26、alld lopret mainret mainhttp:/ bc pmadbc pmad,condcond,condcond,condcond相與關(guān)系相與關(guān)系相或關(guān)系相或關(guān)系bc pmadbc pmad,condcondbc pmadbc pmad,condcond第第1組組第第2組組a 類類b 類類a 類類b 類類c 類類eqovtccbioneqnovntcncnbiolt leq gt geq http:/ 1組組 例如例如 可以從可以從a a類中選一個(gè)條件,同類中選一個(gè)條件,同時(shí)可以從時(shí)可以從b b類中選擇一個(gè)條件。類中選擇一個(gè)條件。但是不能從同一類中選擇兩但是不能從同一類中選擇兩個(gè)
27、條件。個(gè)條件。另外,兩種條件測(cè)試的累加另外,兩種條件測(cè)試的累加器必須是同一個(gè)。器必須是同一個(gè)。可以同時(shí)測(cè)試可以同時(shí)測(cè)試agtagt和和aovaov,但,但不能同時(shí)測(cè)試不能同時(shí)測(cè)試agtagt和和bgtbgt。 http:/ 2組組 例如例如 可以在可以在a a、b b、c c三類中各三類中各選擇一個(gè)條件,但不能從選擇一個(gè)條件,但不能從同一類中選擇兩個(gè)條件同一類中選擇兩個(gè)條件 可以在可以在a a、b b、c c三類中各選三類中各選擇一個(gè)條件,但不能從同擇一個(gè)條件,但不能從同一類中選擇兩個(gè)條件一類中選擇兩個(gè)條件 http:/ 12 2字的字的程序段,則可以用一條單周期條件執(zhí)行指令程序段,則可以用一
28、條單周期條件執(zhí)行指令(xcxc)來(lái)代替分支轉(zhuǎn)移指令:)來(lái)代替分支轉(zhuǎn)移指令:xc nxc n,condcond,condcond,condcond當(dāng)當(dāng)n=1n=1,且條件得到滿足,就執(zhí)行緊隨此,且條件得到滿足,就執(zhí)行緊隨此條件指令后的個(gè)字指令。條件指令后的個(gè)字指令。當(dāng)當(dāng)n=2n=2,且條件得到滿足,就執(zhí)行緊隨此,且條件得到滿足,就執(zhí)行緊隨此指 令 后 的指 令 后 的 1 1 個(gè) 雙 字 指 令 或 者個(gè) 雙 字 指 令 或 者 2 2 條 單條 單字指令。字指令。 當(dāng)條件不滿足,就依當(dāng)條件不滿足,就依n n的值執(zhí)行的值執(zhí)行1 1條或條或2 2條條nopnop指令。指令。http:/ 編寫(xiě)計(jì)算編
29、寫(xiě)計(jì)算 的主要程序部分。的主要程序部分。 .bss x,4 .bss x,4 ;為;為x x建立建立4 4個(gè)單元,個(gè)單元, ;放置;放置x1x1、x2x2、x3x3、x4x4 .bss y,1 .bss y,1 ;為;為y y建立建立1 1個(gè)單元,放置個(gè)單元,放置y y stm #xstm #x,ar1 ar1 ;將;將x1x1的地址傳給的地址傳給ar1ar1 stm #3stm #3,ar2 ar2 ;將循環(huán)次數(shù);將循環(huán)次數(shù)3 3傳給傳給ar2ar2 ld #0ld #0,a a ;對(duì);對(duì)a a清零清零loop:add loop:add * *ar1+ar1+,a a ;對(duì);對(duì)x1x1、x2
30、x2、x3x3、x4x4循環(huán)循環(huán)累累 ;加,結(jié)果放;加,結(jié)果放a a中中 banz loop,banz loop,* *ar2- ar2- ;檢查循環(huán)是否應(yīng)結(jié)束;檢查循環(huán)是否應(yīng)結(jié)束 stl astl a,y y ;將累加結(jié)果存入;將累加結(jié)果存入y y中中41iixyhttp:/ 2特點(diǎn)特點(diǎn)1 14單條指令的重復(fù)操作單條指令的重復(fù)操作 重復(fù)執(zhí)行(重復(fù)執(zhí)行(rcrc)+1+1次。次。rcrc內(nèi)容不能編程設(shè)置,內(nèi)容不能編程設(shè)置,只能由重復(fù)指令(只能由重復(fù)指令(rptrpt和和rptzrptz)中的操作數(shù)加載。)中的操作數(shù)加載。操作數(shù)操作數(shù)n n的最大值為的最大值為65 65 535535,最大重復(fù)執(zhí)
31、行次數(shù),最大重復(fù)執(zhí)行次數(shù)為為65 535+165 535+1。 一旦重復(fù)指令被取一旦重復(fù)指令被取指、譯碼,直到重指、譯碼,直到重復(fù)循環(huán)完成以前,復(fù)循環(huán)完成以前,對(duì)所有的中斷(包對(duì)所有的中斷(包括括 ,但不包,但不包括括 )均不響應(yīng)。)均不響應(yīng)。 功能功能重復(fù)執(zhí)行下一條指令重復(fù)執(zhí)行下一條指令 nmirshttp:/ n由一個(gè)由一個(gè)1616位單數(shù)據(jù)存儲(chǔ)器操作數(shù)位單數(shù)據(jù)存儲(chǔ)器操作數(shù) smemsmem或一個(gè)或一個(gè)8 8位或位或1616位常數(shù)位常數(shù)k k或或lklk給定。這樣,給定。這樣, 緊接著的下一條指令會(huì)循環(huán)執(zhí)行緊接著的下一條指令會(huì)循環(huán)執(zhí)行n+1n+1次。次。循環(huán),循環(huán),rcrc在執(zhí)行減在執(zhí)行減1
32、 1操作時(shí)不能被訪問(wèn)。操作時(shí)不能被訪問(wèn)。注意:注意:該循環(huán)內(nèi)不能套用循環(huán)。該循環(huán)內(nèi)不能套用循環(huán)。 當(dāng)當(dāng)rptzrptz指令執(zhí)行時(shí)指令執(zhí)行時(shí):對(duì)目的累加器對(duì)目的累加器dstdst清清0 0, 循環(huán)執(zhí)行下一條指令循環(huán)執(zhí)行下一條指令n+1n+1次。次。 http:/ 利用單條指令的重復(fù)操作對(duì)數(shù)組利用單條指令的重復(fù)操作對(duì)數(shù)組x5=0 x5=0,0 0,0 0,0 0,00進(jìn)行初始化。進(jìn)行初始化。.bss x,5 .bss x,5 ;為數(shù)組;為數(shù)組x x分配分配5 5個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元stm #x,ar1 stm #x,ar1 ;將;將x x的首地址賦給的首地址賦給ar1ar1ld #0,a ld #
33、0,a ;對(duì);對(duì)a a清零清零rpt #4 rpt #4 ;設(shè)置重復(fù)執(zhí)行下條指令;設(shè)置重復(fù)執(zhí)行下條指令5 5次次stl a,stl a,* *ar1+ar1+;對(duì);對(duì)x5x5各單元清零各單元清零或者或者.bss x,5.bss x,5stm #x,ar1stm #x,ar1rptz a,#4rptz a,#4;對(duì);對(duì)a a清零并設(shè)置重復(fù)執(zhí)行下條指令清零并設(shè)置重復(fù)執(zhí)行下條指令5 5次次stl a,stl a,* *ar1+ar1+http:/ 利用利用c54xc54x內(nèi)部的塊重復(fù)計(jì)數(shù)器(內(nèi)部的塊重復(fù)計(jì)數(shù)器(brcbrc,加載值,加載值可為可為0 065 53565 535)、塊重復(fù)起始地址寄存器
34、)、塊重復(fù)起始地址寄存器(rsarsa)、塊重復(fù)結(jié)束地址寄存器()、塊重復(fù)結(jié)束地址寄存器(rearea)與程)與程序塊重復(fù)指令序塊重復(fù)指令rptbrptb,可對(duì)緊隨,可對(duì)緊隨rptbrptb、由若干條、由若干條指令構(gòu)成的程序塊進(jìn)行重復(fù)操作。指令構(gòu)成的程序塊進(jìn)行重復(fù)操作。功能功能將重復(fù)操作的范圍擴(kuò)大到任意長(zhǎng)度的循環(huán)回路將重復(fù)操作的范圍擴(kuò)大到任意長(zhǎng)度的循環(huán)回路 注意注意1.1.rptrpt指令一旦執(zhí)行,不會(huì)停止指令一旦執(zhí)行,不會(huì)停止操作,即使有中斷請(qǐng)求也不響應(yīng);操作,即使有中斷請(qǐng)求也不響應(yīng);2.rptb2.rptb指令可以響應(yīng)中斷;指令可以響應(yīng)中斷;http:/ 對(duì)數(shù)據(jù)組對(duì)數(shù)據(jù)組x5x5中的每個(gè)元
35、素加中的每個(gè)元素加1 1。.bss x,5 .bss x,5 ;為數(shù)組;為數(shù)組x x分配分配5 5個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元begin: ld #1,16,b begin: ld #1,16,b ;將;將1 1左移左移1616位放入位放入b b的的 ;高端字的最低位;高端字的最低位stm #4,brc stm #4,brc ; 4brc4brc,(pcpc)+2 +2 rsarsa stm #x,ar4stm #x,ar4;將;將x x的首地址賦給的首地址賦給ar4 ar4 rptb next-1rptb next-1;將將next-1 next-1 rearea add add * *ar4,16
36、,b,a ar4,16,b,a ;x x地址的內(nèi)容左移地址的內(nèi)容左移1616位加位加 ; b b的高端字,結(jié)果放的高端字,結(jié)果放a asth a,sth a,* *ar4+ ar4+ ;將;將a a的高端字存入的高端字存入x x單元,單元, ;完成加;完成加1 1操作操作next: ld #0,b next: ld #0,b ;對(duì);對(duì)b b清零清零 ;必必需需next-1next-1作為結(jié)束地址作為結(jié)束地址http:/ 執(zhí)行執(zhí)行rptrpt指令時(shí)指令時(shí)占用占用rptcrptc寄存器(重復(fù)計(jì)數(shù)器);寄存器(重復(fù)計(jì)數(shù)器);執(zhí)行執(zhí)行rptbrptb指令時(shí)要用到指令時(shí)要用到brcbrc、rsarsa和
37、和rserse寄存器。寄存器。只有只有一套塊重復(fù)寄存器,一套塊重復(fù)寄存器,故故塊重復(fù)操作不能嵌套。塊重復(fù)操作不能嵌套。 由于由于rptrpt與與rptbrptb兩者用了不同的寄存器,因此兩者用了不同的寄存器,因此rptrpt指指令可以嵌套在令可以嵌套在rptbrptb指令中,實(shí)現(xiàn)循環(huán)的嵌套。指令中,實(shí)現(xiàn)循環(huán)的嵌套。執(zhí)行執(zhí)行banzbanz指令指令只占用輔助寄存器只占用輔助寄存器arxarx。不會(huì)與不會(huì)與rpt rpt rptbrptb指令指令相沖突。相沖突。嵌套原則嵌套原則參與嵌套循環(huán)的寄存器不能重復(fù)使用參與嵌套循環(huán)的寄存器不能重復(fù)使用 http:/ 一個(gè)三重循環(huán)嵌套結(jié)構(gòu)http:/ 流水線操
38、作技術(shù)流水線操作技術(shù) 流水線流水線操作操作在執(zhí)行多條指令時(shí),將每條指令的在執(zhí)行多條指令時(shí),將每條指令的預(yù)取指、取指、譯碼、尋址、讀取預(yù)取指、取指、譯碼、尋址、讀取操作數(shù)、執(zhí)行等階段,操作數(shù)、執(zhí)行等階段,相差一個(gè)階相差一個(gè)階段段地地重疊重疊地執(zhí)行。地執(zhí)行。流水流水線操線操作作的的優(yōu)點(diǎn)優(yōu)點(diǎn)一條一條k k段流水能在段流水能在k k+ +(n n-1-1)個(gè)周期內(nèi)處理)個(gè)周期內(nèi)處理n n條指令。其前條指令。其前k k個(gè)周期用于完成第一條指令個(gè)周期用于完成第一條指令,其余,其余n n-1-1條指令的執(zhí)行需要條指令的執(zhí)行需要n n-1-1個(gè)周期。而個(gè)周期。而非流水處理器上執(zhí)行非流水處理器上執(zhí)行n n條指令
39、則需要條指令則需要nknk 個(gè)周個(gè)周期。當(dāng)指令條數(shù)期。當(dāng)指令條數(shù)n n較大時(shí),可認(rèn)為每個(gè)周期較大時(shí),可認(rèn)為每個(gè)周期內(nèi)執(zhí)行的最大指令個(gè)數(shù)為內(nèi)執(zhí)行的最大指令個(gè)數(shù)為k k。 http:/ 在第一個(gè)機(jī)在第一個(gè)機(jī)器周期用器周期用pcpc中的內(nèi)容加中的內(nèi)容加載載pabpab 在第二個(gè)機(jī)器周在第二個(gè)機(jī)器周期用讀取到的指期用讀取到的指令字加載令字加載pbpb。 第三個(gè)周期用第三個(gè)周期用pbpb的內(nèi)容加載指令寄存器的內(nèi)容加載指令寄存器irir,對(duì),對(duì)irir內(nèi)的指令進(jìn)行譯碼,產(chǎn)生執(zhí)行內(nèi)的指令進(jìn)行譯碼,產(chǎn)生執(zhí)行指令所需要的一系列控制信號(hào)。指令所需要的一系列控制信號(hào)。 http:/ 用數(shù)據(jù)用數(shù)據(jù)1 1讀地址加載讀地
40、址加載dabdab,或用數(shù)據(jù)讀地,或用數(shù)據(jù)讀地址加載址加載cabcab,修正輔助,修正輔助寄存器和堆棧指針。寄存器和堆棧指針。讀數(shù)據(jù)讀數(shù)據(jù)1 1加載加載dbdb,或讀數(shù),或讀數(shù)據(jù)據(jù)2 2加載加載cbcb;用數(shù)據(jù);用數(shù)據(jù)3 3寫(xiě)寫(xiě)地址加載到地址加載到eabeab,以便在,以便在流水線的最后一級(jí)將數(shù)流水線的最后一級(jí)將數(shù)據(jù)送到數(shù)據(jù)存儲(chǔ)空間。據(jù)送到數(shù)據(jù)存儲(chǔ)空間。 執(zhí)行指令,或用執(zhí)行指令,或用寫(xiě)數(shù)據(jù)加載寫(xiě)數(shù)據(jù)加載ebeb。 http:/ 無(wú)延遲流水線分支轉(zhuǎn)移的問(wèn)題無(wú)延遲流水線分支轉(zhuǎn)移的問(wèn)題地址地址 指令指令a1a1,a2 a2 b b1 b b1 這是一個(gè)四周期、二字分支指令這是一個(gè)四周期、二字分支指令
41、a3 a3 i3 i3 這是任意的一周期、一字指令這是任意的一周期、一字指令a4 a4 i4 i4 這是任意的一周期、一字指令這是任意的一周期、一字指令. . .b1 j1b1 j1例例3-73-7http:/ 取得雙字分取得雙字分支轉(zhuǎn)移指令支轉(zhuǎn)移指令取得雙字分取得雙字分支轉(zhuǎn)移指令支轉(zhuǎn)移指令http:/ 分支轉(zhuǎn)移指令分支轉(zhuǎn)移指令進(jìn)入譯碼級(jí)進(jìn)入譯碼級(jí)用新的值用新的值b1b1加載加載pabpabhttp:/ 雙字分支轉(zhuǎn)移雙字分支轉(zhuǎn)移指令進(jìn)入流水指令進(jìn)入流水線的執(zhí)行級(jí)線的執(zhí)行級(jí) 執(zhí)行執(zhí)行j1j1指令指令 雙字分支轉(zhuǎn)移雙字分支轉(zhuǎn)移指令進(jìn)入流水指令進(jìn)入流水線的執(zhí)行級(jí)線的執(zhí)行級(jí) 由于由于i3i3和和i4i
42、4指指令是不允許執(zhí)令是不允許執(zhí)行的,所以這行的,所以這兩個(gè)周期均花兩個(gè)周期均花在分支轉(zhuǎn)移指在分支轉(zhuǎn)移指令的執(zhí)行上。令的執(zhí)行上。http:/ 延遲分支轉(zhuǎn)移延遲分支轉(zhuǎn)移注意注意1.1.延遲操作指令后面只有兩個(gè)字的空延遲操作指令后面只有兩個(gè)字的空 隙,因此不能在此空隙中安排任何隙,因此不能在此空隙中安排任何 一類分支轉(zhuǎn)移指令或重復(fù)指令;一類分支轉(zhuǎn)移指令或重復(fù)指令;2.2.在在calldcalld或或retdretd的空隙中還不能安的空隙中還不能安 排排pushpush和和poppop指令。指令。3 3. .延遲操作指令比它們的非延遲型延遲操作指令比它們的非延遲型 指令要快,在調(diào)試延遲型指令時(shí),指令要
43、快,在調(diào)試延遲型指令時(shí), 直觀性稍差一些,因此希望在大多直觀性稍差一些,因此希望在大多 數(shù)情況下還是采用非延遲型指令。數(shù)情況下還是采用非延遲型指令。 http:/ 在完成在完成r=r=(x+yx+y)* *z z操作后轉(zhuǎn)至操作后轉(zhuǎn)至nextnext??梢苑謩e編出如下兩段程序:可以分別編出如下兩段程序:利用普通分支轉(zhuǎn)移指令利用普通分支轉(zhuǎn)移指令b b 利用延遲分支轉(zhuǎn)移指令利用延遲分支轉(zhuǎn)移指令bdbdld xld x,a ld xa ld x,a aadd yadd y,a add ya add y,a astl astl a, s stl as stl a, ssld sld s,t ld st
44、ld s,t tmpy zmpy z,a bd next a bd next stl astl a, r mpy zr mpy z,a a b next stl ab next stl a, rr(共(共8 8個(gè)字,個(gè)字,1010個(gè)個(gè)t t) (共(共8 8個(gè)字,個(gè)字,8 8個(gè)個(gè)t t)在空閑的隨后兩周期中執(zhí)行下兩條指令在空閑的隨后兩周期中執(zhí)行下兩條指令 http:/ nxc n,cndcnd,cndcnd,cndcnd如果條件滿足,則執(zhí)如果條件滿足,則執(zhí)行下面行下面n n(n=1n=1或或2 2)條指令,)條指令,否則下面否則下面n n條指令改為執(zhí)行條指令改為執(zhí)行n n條條nopnop指令。
45、指令。 2條件執(zhí)行指令的流水線圖條件執(zhí)行指令的流水線圖 條件執(zhí)行指令條件執(zhí)行指令xc 有下列程序:有下列程序:地址地址 指令指令a1 i1a1 i1a2 i2a2 i2a3 i3a3 i3a4 xc 2a4 xc 2, condconda5 i5a5 i5a6 i6 a6 i6 http:/ pab 取取 x cx c 指 令指 令的操作碼的操作碼 求解求解xcxc指令所規(guī)定的條件。如果條件滿指令所規(guī)定的條件。如果條件滿足,則后面指令足,則后面指令i5i5和和i6i6進(jìn)入譯碼級(jí)并執(zhí)進(jìn)入譯碼級(jí)并執(zhí)行;否則不對(duì)行;否則不對(duì)i5i5和和i6i6指令譯碼。指令譯碼。http:/ 1. xcxc是一條單
46、字單周期指令,與條件跳是一條單字單周期指令,與條件跳 轉(zhuǎn)指令相比,具有快速選擇其后轉(zhuǎn)指令相比,具有快速選擇其后1 1或或2 2 條指令是否執(zhí)行的優(yōu)點(diǎn)條指令是否執(zhí)行的優(yōu)點(diǎn) ;2. xc2. xc指令在執(zhí)行前指令在執(zhí)行前2 2個(gè)周期就已經(jīng)求出個(gè)周期就已經(jīng)求出 條件,如果在這之后到執(zhí)行前改變條條件,如果在這之后到執(zhí)行前改變條 件(如發(fā)生中斷),將會(huì)造成無(wú)期望件(如發(fā)生中斷),將會(huì)造成無(wú)期望 的結(jié)果的結(jié)果 。3 3. . 要盡力避免在要盡力避免在xcxc指令執(zhí)行前指令執(zhí)行前2 2個(gè)周期個(gè)周期 改變所規(guī)定的條件改變所規(guī)定的條件 。 4 4. . 并沒(méi)有規(guī)定并沒(méi)有規(guī)定xcxc指令指令后的一條或兩條指后的一
47、條或兩條指 令必須是單周期指令。令必須是單周期指令。注注意意http:/ 流水線沖突原因流水線沖突原因不會(huì)產(chǎn)生流水線沖突的情況不會(huì)產(chǎn)生流水線沖突的情況(1 1)在單周期內(nèi)允許同時(shí)訪問(wèn))在單周期內(nèi)允許同時(shí)訪問(wèn)daramdaram的不同塊。的不同塊。(2 2)當(dāng)流水線中的一條指令訪問(wèn)某一存儲(chǔ)器塊時(shí),)當(dāng)流水線中的一條指令訪問(wèn)某一存儲(chǔ)器塊時(shí), 允許流水線中處于同一級(jí)的另一條指令訪問(wèn)允許流水線中處于同一級(jí)的另一條指令訪問(wèn) 另一個(gè)存儲(chǔ)器塊。另一個(gè)存儲(chǔ)器塊。(3 3)允許處于流水線不同級(jí)上的兩條指令同時(shí)訪)允許處于流水線不同級(jí)上的兩條指令同時(shí)訪 問(wèn)同一個(gè)存儲(chǔ)器塊。問(wèn)同一個(gè)存儲(chǔ)器塊。 http:/ 對(duì)對(duì)pa
48、b/pbpab/pb取指取指 利用前半周期利用前半周期對(duì)對(duì)dab/dbdab/db讀取第一個(gè)數(shù)據(jù)讀取第一個(gè)數(shù)據(jù) 利用前半周期利用前半周期對(duì)對(duì)cab/cbcab/cb讀取第二個(gè)數(shù)據(jù)讀取第二個(gè)數(shù)據(jù) 利用后半周期利用后半周期對(duì)對(duì)eab/ebeab/eb將數(shù)據(jù)寫(xiě)存儲(chǔ)器將數(shù)據(jù)寫(xiě)存儲(chǔ)器 利用后半周期利用后半周期http:/ (1) 同時(shí)從同一存儲(chǔ)器塊中取指和同時(shí)從同一存儲(chǔ)器塊中取指和取操作數(shù)(都在前半個(gè)周期);取操作數(shù)(都在前半個(gè)周期);2.2.同時(shí)對(duì)同時(shí)對(duì)同一存儲(chǔ)器塊進(jìn)行寫(xiě)操作和讀(第二個(gè)數(shù))同一存儲(chǔ)器塊進(jìn)行寫(xiě)操作和讀(第二個(gè)數(shù))操作(都在后半周期)。操作(都在后半周期)。解決解決沖突沖突辦法辦法人為合
49、理安排指令,人為合理安排指令,錯(cuò)開(kāi)訪問(wèn)時(shí)序錯(cuò)開(kāi)訪問(wèn)時(shí)序 cpucpu通過(guò)寫(xiě)操作延遲一個(gè)周通過(guò)寫(xiě)操作延遲一個(gè)周期,或者通過(guò)插入一個(gè)空周期,或者通過(guò)插入一個(gè)空周期的辦法,自動(dòng)地解決期的辦法,自動(dòng)地解決 cpucpu同時(shí)訪問(wèn)同時(shí)訪問(wèn)daramdaram的同一存儲(chǔ)器塊就會(huì)的同一存儲(chǔ)器塊就會(huì)發(fā)生時(shí)序上的沖突發(fā)生時(shí)序上的沖突。http:/ http:/ (1)可能發(fā)生流水線沖突的情況)可能發(fā)生流水線沖突的情況 1) 1) 輔助寄存器(輔助寄存器(ar0ar0ar7ar7)。)。2) 2) 重復(fù)塊長(zhǎng)度寄存器(重復(fù)塊長(zhǎng)度寄存器(bkbk)。)。3) 3) 堆棧指針。堆棧指針。4) 4) 暫存器(暫存器(t t
50、)。)。5) 5) 處理器工作方式狀態(tài)寄存器(處理器工作方式狀態(tài)寄存器(pmstpmst)。)。6) 6) 狀態(tài)寄存器(狀態(tài)寄存器(st0st0和和st1st1)。)。7 7)塊重復(fù)計(jì)數(shù)器()塊重復(fù)計(jì)數(shù)器(brcbrc)。)。8 8)存儲(chǔ)器映象累加器()存儲(chǔ)器映象累加器(agag、ahah、alal、bgbg、bhbh、blbl)。)。http:/ 在流水線的執(zhí)行在流水線的執(zhí)行階段進(jìn)行寫(xiě)操作階段進(jìn)行寫(xiě)操作 在流水線的尋址在流水線的尋址階段生成地址階段生成地址 沖突沖突無(wú)等待周期問(wèn)題無(wú)等待周期問(wèn)題 解決解決數(shù)據(jù)未準(zhǔn)備好數(shù)據(jù)未準(zhǔn)備好http:/ 在 流 水 線 的在 流 水 線 的執(zhí) 行 階 段
51、進(jìn)執(zhí) 行 階 段 進(jìn)行寫(xiě)操作行寫(xiě)操作 讀 數(shù) 階 段讀 數(shù) 階 段將 常 數(shù)將 常 數(shù) 1 01 0寫(xiě)到寫(xiě)到ar1ar1 沖突沖突同時(shí)利用同時(shí)利用e e總線總線cpucpu自動(dòng)地自動(dòng)地將將stmstm的寫(xiě)的寫(xiě)操作延遲操作延遲一個(gè)周期一個(gè)周期 在流水線的尋址在流水線的尋址階段生成地址階段生成地址 新沖突新沖突數(shù)據(jù)未準(zhǔn)備好數(shù)據(jù)未準(zhǔn)備好解決解決http:/ stlmstlm指令后指令后面 插 入 一 條面 插 入 一 條nopnop指令指令 在流水線的在流水線的執(zhí)行階段進(jìn)執(zhí)行階段進(jìn)行寫(xiě)操作行寫(xiě)操作讀 數(shù) 階 段讀 數(shù) 階 段將常數(shù)將常數(shù)1010寫(xiě)到寫(xiě)到ar1ar1在流水線的尋址在流水線的尋址階段生成
52、地址階段生成地址 e e總線總線錯(cuò)開(kāi)錯(cuò)開(kāi)解決解決數(shù)據(jù)準(zhǔn)備好數(shù)據(jù)準(zhǔn)備好解決解決http:/ (2)用等待周期表解決流水線沖突)用等待周期表解決流水線沖突 等待周期表給出了對(duì)存儲(chǔ)器映象寄存器以及等待周期表給出了對(duì)存儲(chǔ)器映象寄存器以及st0st0、st1st1、pmstpmst的的控制字段進(jìn)行寫(xiě)操作的各種指令所需插入的等控制字段進(jìn)行寫(xiě)操作的各種指令所需插入的等待周期。待周期。對(duì)雙字或三字指令,都會(huì)提供隱含的保護(hù)周期。利用對(duì)雙字或三字指令,都會(huì)提供隱含的保護(hù)周期。利用這些指令提供的隱含的保護(hù)周期,有時(shí)可以不插這些指令提供的隱含的保護(hù)周期,有時(shí)可以不插nopnop指指令。令。http:/ 1個(gè)個(gè)插入插入
53、2 2個(gè)個(gè)t tstm #1kstm #1k, t tmvdk smemmvdk smem,t tld smemld smem,t tld smemld smem,tsttst所有其它存儲(chǔ)指令所有其它存儲(chǔ)指令包括包括expexp asmasmld #k5ld #k5, asmasmld smemld smem,asmasm所有其它存儲(chǔ)指令所有其它存儲(chǔ)指令 dpdpcpl=0cpl=0ld #k9ld #k9, dpdpld smemld smem,dpdp stm # lkstm # lk,st0st0st # lkst # lk,st0st0所有其它存儲(chǔ)指令插入所有其它存儲(chǔ)指令插入3 3個(gè)個(gè)sxm c16sxm c16frct ovmfrct ovm 所有存儲(chǔ)指令所有存儲(chǔ)指令包括包括ssxmssxm和和rsxmrsxm a a 或或b b 修改累加器然后讀修改累加器然后讀mmrmmr 在在rptbdrptb
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)用物理的心得體會(huì)范文
- 浙江2024年12月浙江省麗水經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)政務(wù)服務(wù)中心公開(kāi)招錄2名綜合窗口工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 財(cái)務(wù)透明度與報(bào)表分析技巧
- 工程竣工結(jié)算編制和審查重慶市房屋建筑與市政基礎(chǔ)設(shè)施工程現(xiàn)場(chǎng)施工專業(yè)人員土建預(yù)算
- 遵循用戶習(xí)慣的在線調(diào)解平臺(tái)界面設(shè)計(jì)研究與實(shí)踐
- 金融投資中的財(cái)務(wù)管理技巧與風(fēng)險(xiǎn)識(shí)別
- 7.1《回望成長(zhǎng)》教案- -2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)下冊(cè)
- 北京2025年02月中國(guó)慈善聯(lián)合會(huì)招考2名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 山東省泰安市肥城市2025年四年級(jí)數(shù)學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 廣東省廣州市天河區(qū)2024-2025學(xué)年數(shù)學(xué)四下期末達(dá)標(biāo)測(cè)試試題含解析
- 機(jī)電企業(yè)管理導(dǎo)論第1章課件
- 水平一足球全冊(cè)教案
- 蘇教版科學(xué)二年級(jí)下冊(cè)全冊(cè)教案
- 約束評(píng)分標(biāo)準(zhǔn)
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 法律和道德的關(guān)系 課件
- GB 16780-2021水泥單位產(chǎn)品能源消耗限額
- 全面推進(jìn)依法行政課件
- 政務(wù)服務(wù)一網(wǎng)通辦平臺(tái)解決方案-最新
- 第十四屆全國(guó)交通運(yùn)輸行業(yè)職業(yè)技能競(jìng)賽(公路收費(fèi)及監(jiān)控員)賽項(xiàng)題庫(kù)-上(單選題匯總-共3部分-1)
- NBT 10664-2021 核電廠工程巖土試驗(yàn)規(guī)程
評(píng)論
0/150
提交評(píng)論