![[信息與通信]實(shí)時(shí)數(shù)字信號(hào)處理計(jì)算單元_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/7eaeeb74-486f-4bc4-8ca4-bc1424a22349/7eaeeb74-486f-4bc4-8ca4-bc1424a223491.gif)
![[信息與通信]實(shí)時(shí)數(shù)字信號(hào)處理計(jì)算單元_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/7eaeeb74-486f-4bc4-8ca4-bc1424a22349/7eaeeb74-486f-4bc4-8ca4-bc1424a223492.gif)
![[信息與通信]實(shí)時(shí)數(shù)字信號(hào)處理計(jì)算單元_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/7eaeeb74-486f-4bc4-8ca4-bc1424a22349/7eaeeb74-486f-4bc4-8ca4-bc1424a223493.gif)
![[信息與通信]實(shí)時(shí)數(shù)字信號(hào)處理計(jì)算單元_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/7eaeeb74-486f-4bc4-8ca4-bc1424a22349/7eaeeb74-486f-4bc4-8ca4-bc1424a223494.gif)
![[信息與通信]實(shí)時(shí)數(shù)字信號(hào)處理計(jì)算單元_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/7eaeeb74-486f-4bc4-8ca4-bc1424a22349/7eaeeb74-486f-4bc4-8ca4-bc1424a223495.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)時(shí)數(shù)字信號(hào)處理第第2章章 計(jì)算單元計(jì)算單元 概述 每個(gè)內(nèi)核都有6個(gè)計(jì)算單元 兩個(gè)算術(shù)/邏輯單元(alu) 兩個(gè)乘/累加器(乘法器)單元 一個(gè)移位器 一套視頻alu 提供定點(diǎn)操作 處理不同類型的操作 數(shù)據(jù)移入和移出計(jì)算單元是通過(guò)數(shù)據(jù)寄存器文件的 數(shù)據(jù)總線 高級(jí)并行機(jī)制利用多功能指令 數(shù)據(jù)地址產(chǎn)生 寄存器文件寄存器文件 3個(gè)寄存器組數(shù)據(jù)寄存器文件為計(jì)算單元從數(shù)據(jù)總線接收操作數(shù)并存儲(chǔ)計(jì)算結(jié)果指針寄存器文件含有尋址操作的指針dag寄存器是專用于管理dsp操作中的零開(kāi)銷循環(huán)緩沖的寄存器。 數(shù)據(jù)地址產(chǎn)生器(dag)數(shù)據(jù)寄存器r0r0.hr0.lr1r1.hr1.lr2r2.hr2.lr3r3.hr3.l
2、r4r4.hr4.lr5r5.hr5.lr6r6.hr6.lr7r7.hr7.la0a0.xa0.wa1a1.xa1.wi0 l0 b0 m0 p0i1 l1 b1 m1 p1i2 l2 b2 m2 p2i3 l3 b3 m3 p3 p4 p5 sp fp數(shù)據(jù)寄存器文件數(shù)據(jù)寄存器文件 包含8個(gè)寄存器 每個(gè)32位寬 一對(duì)獨(dú)立的16位寄存器:低半部分和高半部分 3條獨(dú)立總線連接寄存器文件和l1數(shù)據(jù)存儲(chǔ)器 2條讀、1條寫 32位寬 每個(gè)周期內(nèi)搬移多達(dá)4個(gè)16位的有效數(shù)據(jù) 32-bit和16-bit操作 r2=r1 + r2; /* 32-bit addition */ r2.l=r1.h * r0.
3、l; /* 16-bit multiplication */累加寄存器 兩個(gè)專有的40位的累加寄存器(a0和a1)的訪問(wèn)形式: 16位低半部分(an.l)、高半部分(an.h) 8位擴(kuò)展(an.x) 低32位寄存器an.w 完全的40位結(jié)果寄存器(an) 指令操作 a0=a1; /* 40-bit move */ a1.w=r7; /* 32-bit move */ a0.h=r5.h; /* 16-bit move */ r6.h=a0.x; /* read 8-bit value and sign extend to 16 bits */指針寄存器指針寄存器 通用地址指針寄存器,也稱之為p
4、寄存器 6個(gè)p寄存器文件p5:0 32位寬,主要用于地址計(jì)算 也可以在一組限定的算術(shù)操作集內(nèi)用于一般的整數(shù)算術(shù)操作,譬如用作計(jì)數(shù)器,但不會(huì)影響到astat寄存器的狀態(tài)標(biāo)志。 1個(gè)幀指針(fp)用于指向當(dāng)前進(jìn)程的活動(dòng)記錄 1個(gè)堆棧指針(sp)用來(lái)指向運(yùn)行時(shí)堆棧中最近一次使用的位置dag寄存器組寄存器組 dag寄存器組用于尋址 i3:0包含索引地址 m3:0包含修改值 b3:0包含基地址 l3:0包含長(zhǎng)度值 32位寬 i寄存器和b寄存器包含存儲(chǔ)器8-bit字節(jié)地址 i寄存器含有一個(gè)有效地址,m寄存器含有用于在i寄存器上進(jìn)行加或減的偏移值 任意的m寄存器可和任意的i寄存器關(guān)聯(lián),比如,i0可被m3修改
5、 b寄存器和l寄存器定義循環(huán)緩沖,b寄存器存儲(chǔ)緩沖的起始地址,l寄存器存儲(chǔ)長(zhǎng)度,按字節(jié)計(jì)。 l和b寄存器對(duì)是與對(duì)應(yīng)的i寄存器相關(guān)聯(lián)的,例如,l0和b0總是和i0相關(guān)聯(lián)寄存器文件指令匯總寄存器文件指令匯總 符號(hào)的含義說(shuō)明如下: allreg表示:r7:0、p5:0、sp、fp、i3:0、m3:0、b3:0、l3:0、a0.x、a0.w、a1.x、a1.w、astat、rets、reti、retx、retn、rete、lc1:0、lt1:0、lb1:0、usp、seqstat、syscfg、cycles和cycles2 an表示alu結(jié)果寄存器a0或a1之一 dreg表示任一個(gè)數(shù)據(jù)寄存器文件寄存器
6、 sysreg表示系統(tǒng)寄存器astat、seqstat、syscfg、reti、retx、retn、rete或rets、lc1:0、lt1:0、lb1:0、cycles和cycles2 preg表示任一pointer寄存器、fp或sp寄存器 dreg_even表示r0、r2、r4或r6 dreg_odd表示r1、r3、r5或r7寄存器文件指令匯總寄存器文件指令匯總 符號(hào)的含義說(shuō)明如下: dpreg表示任一數(shù)據(jù)寄存器文件寄存器或任一pointer寄存器、fp或sp寄存器 dreg_lo表示任一數(shù)據(jù)寄存器文件寄存器低16位 dreg_hi表示任一數(shù)據(jù)寄存器文件寄存器高16位 an.l表示累加器an
7、.w的低16位 an.h表示累加器an.w的高16位 dreg_byte表示每一個(gè)數(shù)據(jù)寄存器的低8位 option (x)表示符號(hào)擴(kuò)展 option (z)表示零擴(kuò)展 *指示這個(gè)標(biāo)志可以置位或清零、依賴于指令的計(jì)算結(jié)果 *指示這個(gè)標(biāo)志清零 指示無(wú)作用表2-1 寄存器文件指令匯總表 指令指令astat 狀態(tài)標(biāo)志狀態(tài)標(biāo)志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsallreg = allreg ; 1an = an ;an = dreg ;dreg_even = a0 ;*dreg_odd = a1 ;*dreg_even = a0, dreg_odd =
8、 a1 ; *dreg_odd = a1, dreg_even = a0 ; *if cc dpreg = dpreg ;if ! cc dpreg = dpreg ;dreg = dreg_lo (z) ;*/dreg = dreg_lo (x) ;*/表2-1 寄存器文件指令匯總表續(xù)指令指令astat 狀態(tài)標(biāo)志狀態(tài)標(biāo)志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsan.x = dreg_lo ;dreg_lo = an.x ;an.l = dreg_lo ;an.h = dreg_hi ;dreg_lo = a0 ;*dreg_hi = a1 ;*d
9、reg_hi = a1 ; dreg_lo = a0 ;*dreg_lo = a0 ; dreg_hi = a1 ;*dreg = dreg_byte (z) ;*/dreg = dreg_byte (x) ;*/1 警告:不是所有的寄存器組合都是合法的。詳細(xì)信息見(jiàn)blackfin處理器指令集參考中的搬移寄存器指令功能描述。算術(shù)狀態(tài)寄存器(算術(shù)狀態(tài)寄存器(astat) 指示了最近的alu、乘法器或移位器操作的狀態(tài)bit31302928272625242322212019 18 17 160000000000000000復(fù)位=0 x0000 000025:vs(黏性黏性dreg溢出溢出)v的黏性
10、描述。24:v(dreg溢出溢出)0-最近從alu寫入數(shù)據(jù)寄存器文件的結(jié)果沒(méi)有溢出;1-最近結(jié)果有溢出。19:av1s(黏性黏性a1溢出溢出)av1的黏性描述。16:av0(a0溢出溢出)0-最近寫入a0的結(jié)果沒(méi)有溢出;1-最近寫入a0的結(jié)果有溢出。17:av0s(黏性黏性a0溢出溢出)av0的黏性描述。18:av1(a1溢出溢出)0-最近寫入a1的結(jié)果沒(méi)有溢出;1-最近寫入a1的結(jié)果有溢出。算術(shù)狀態(tài)寄存器(算術(shù)狀態(tài)寄存器(astat)bit1514131211109876543210000000000000000013:ac1(alu1進(jìn)位進(jìn)位)0-alu1里的操作沒(méi)有產(chǎn)生進(jìn)位。1-操作產(chǎn)生
11、了進(jìn)位。12:ac0(alu0進(jìn)位進(jìn)位)0-alu0里的操作沒(méi)有產(chǎn)生進(jìn)位。1-操作產(chǎn)生了進(jìn)位。8:rnd_mod(圓整模式圓整模式)0-無(wú)偏圓整。1-有偏圓整。6:aq(商)商位0:az(零結(jié)果零結(jié)果)0-來(lái)自alu0、alu1或移位器的最近結(jié)果不是零;1-結(jié)果是零。1:an(負(fù)數(shù)結(jié)果負(fù)數(shù)結(jié)果)0-來(lái)自alu0、alu1或移位器的最近結(jié)果不是負(fù)數(shù);1-結(jié)果是負(fù)數(shù)。2:ac0_copy,與位12一樣。3:v_copy,與位24一樣。5:cc(條件碼條件碼)多目的標(biāo)志,主要用于保存算術(shù)比較的判定。也用于一些移位器指令,保留循環(huán)移位的比特。數(shù)據(jù)類型數(shù)據(jù)類型 balckfin處理器主要是16位定點(diǎn)處理
12、器 大多數(shù)操作采用補(bǔ)碼數(shù),其它有無(wú)符號(hào)數(shù)或二進(jìn)制串 一些指令支持32位整數(shù)算術(shù)、支持8位算術(shù)和塊浮點(diǎn) 數(shù)據(jù)格式的詳細(xì)情況參閱硬件參考手冊(cè)附錄c“數(shù)字格式” 在blackfin處理器系列算術(shù)中有符號(hào)數(shù)都是2的補(bǔ)碼格式 處理器支持32-bit字、16-bit半字和字節(jié) 32-bit和16-bit字可以是整數(shù)或小數(shù),但是字節(jié)總是整數(shù) 整數(shù)可以是有符號(hào)數(shù)或無(wú)符號(hào)數(shù),但小數(shù)總是有符號(hào)數(shù)小數(shù)表示(小數(shù)表示(1.15) 對(duì)于1.15二進(jìn)制格式小數(shù)算術(shù)是優(yōu)化的 表示從-1到0.999969之間的值 圖2-3給出了1.15數(shù)的位權(quán)重和例子 1.15 數(shù)(16進(jìn)制)0x00010x7fff0xffff0x8000
13、對(duì)應(yīng)小數(shù)0.0000310.999969-0.000031-1.000000202-12-22-32-42-52-62-72-82-92-102-112-122-132-142-15圖2-3 1.15數(shù)的位權(quán)重 alu數(shù)據(jù)類型數(shù)據(jù)類型除了有符號(hào)除法原語(yǔ)(divs),每個(gè)alu操作都把操作數(shù)和結(jié)果當(dāng)作16-bit或者32-bit二進(jìn)制串處理 alu結(jié)果產(chǎn)生狀態(tài)信息 把結(jié)果當(dāng)作有符號(hào)數(shù) 溢出標(biāo)志(av0,av1)和負(fù)數(shù)標(biāo)志(an) 黏性溢出標(biāo)志av0s或av1s一旦置位將保持置位狀態(tài)直到直接寫入而清除 v標(biāo)志的置位或清除取決于從兩個(gè)累加器到寄存器文件的結(jié)果的傳送 黏性vs位隨v位一同置位并保持置位
14、狀態(tài)直到清零 溢出位(v、vs、av0、av0s、av1、av1s)邏輯都是基于補(bǔ)碼算術(shù)如果msb的改變方式不是操作數(shù)符號(hào)位和操作本身特性所預(yù)測(cè)的方式,那么一個(gè)位或一個(gè)組合位都會(huì)置位 例如兩個(gè)正數(shù)相加,結(jié)果也必為正數(shù),符號(hào)位的改變表示溢出并使相應(yīng)的溢出標(biāo)志avn置位 一個(gè)正數(shù)和一個(gè)負(fù)數(shù)相加可能產(chǎn)生一個(gè)正數(shù)或者一個(gè)負(fù)數(shù),但是不會(huì)導(dǎo)致溢出進(jìn)位(ac0、ac1)邏輯是基于無(wú)符號(hào)數(shù)算術(shù) 如果是從位16(msb)產(chǎn)生了進(jìn)位就會(huì)將進(jìn)位置位,進(jìn)位對(duì)于一個(gè)多字操作的低位字部分來(lái)說(shuō)是非常有用的乘法器數(shù)據(jù)類型乘法器數(shù)據(jù)類型 根據(jù)指令本身給定的信息,輸入被解釋成不同的類型 有符號(hào)數(shù)乘以有符號(hào)數(shù)、無(wú)符號(hào)數(shù)乘以無(wú)符號(hào)數(shù)
15、、混合類型,或者是一個(gè)取整操作 32位結(jié)果假定是有符號(hào)的,也是符號(hào)擴(kuò)展的,充滿a0或a1寄存器的整個(gè)40-bit的寬度 處理器支持兩種格式調(diào)整模式 小數(shù)模式,用于小數(shù)操作數(shù)(1.15格式) 兩個(gè)1.15操作數(shù)相乘,結(jié)果是一個(gè)2.30的數(shù) 結(jié)果傳送到乘法器結(jié)果累加器(a0,a1)之前左移一位得到1.31格式數(shù),可以圓整為1.15格式數(shù) 整數(shù)模式,用于整型操作數(shù)(16.0格式) 如果操作數(shù)都是16.0格式,乘法結(jié)果將是32.0格式。 當(dāng)用乘法器結(jié)果更新累加器,或?qū)⑺鼈儌魉偷侥康募拇嫫魑募拇嫫鲿r(shí),將產(chǎn)生狀態(tài)信息移位器數(shù)據(jù)類型移位器數(shù)據(jù)類型 移位器中的許多操作是明確地采用有符號(hào)(補(bǔ)碼)或無(wú)符號(hào)數(shù) 邏
16、輯移位采用無(wú)符號(hào)數(shù)或二進(jìn)制串 算術(shù)移位采用補(bǔ)碼數(shù) 指數(shù)邏輯采用補(bǔ)碼數(shù),指數(shù)邏輯支持塊浮點(diǎn),這也是基于補(bǔ)碼的小數(shù) 移位器結(jié)果產(chǎn)生狀態(tài)信息 圓整乘法器結(jié)果圓整乘法器結(jié)果 持乘法器結(jié)果的圓整(rnd選項(xiàng)) 圓整是降低一個(gè)數(shù)的精度的一種方式 寄存器astat里的位rnd_mod 清0對(duì)應(yīng)無(wú)偏圓整,該位置1對(duì)應(yīng)有偏圓整 對(duì)所有算法,無(wú)偏圓整是首先的無(wú)偏圓整無(wú)偏圓整傳統(tǒng)的有偏圓整方法是在加法器的比特位置15上加上一個(gè)1,這個(gè)方法將引起一個(gè)凈正偏差,因?yàn)橹虚g值(a0.l/a1.l=0 x8000)總是向上圓整的當(dāng)檢測(cè)到結(jié)果是中間點(diǎn)值時(shí),通過(guò)強(qiáng)迫結(jié)果輸出中的比特16為0,累加器可消除這個(gè)偏差累加器使用無(wú)偏圓整
17、方案 無(wú)偏圓整使alu能將40-bit的結(jié)果在比特15和比特16邊界之間進(jìn)行圓整,圓整可以指定為指令代碼的一個(gè)部分,當(dāng)選擇了圓整,輸出寄存器就包含了已經(jīng)圓整的16-bit的結(jié)果 當(dāng)原始數(shù)剛好位于兩個(gè)數(shù)中間時(shí)這個(gè)方法返回最接近的偶數(shù),最低有效位是0 例如,要圓整一個(gè)3-bit的補(bǔ)碼小數(shù)0.25(二進(jìn)制0.01)到2-bit的補(bǔ)碼小數(shù),其結(jié)果將是0.0(二進(jìn)制0.0),因?yàn)槭菑?.5(二進(jìn)制0.1)和0.0中選擇偶數(shù) 基于附近的值向上和向下圓整,所以該方法稱之為無(wú)偏圓整 強(qiáng)迫比特16為0有這樣的作用:將奇數(shù)的a0.l/a1.l值向上圓整,將偶數(shù)值向下圓整,得到大樣本偏差為0、均勻分布的數(shù)值 參見(jiàn)圖
18、2-5和2-6 累加器內(nèi)容是從不圓整的特殊的圓整指令特殊的圓整指令 提供了這樣的能力 在不同的比特邊界上圓整,這些選項(xiàng)是rnd12、rnd和rnd20,分別從比特12、16和20上提取16位的值,并執(zhí)行有偏圓整,而不管astat中的rnd_mod位的狀態(tài)。 指令: r3.l=r4 (rnd); 在比特16上執(zhí)行有偏圓整,保存結(jié)果于一個(gè)半字中 r3.l=r4+r5 (rnd12); 執(zhí)行兩個(gè)32位數(shù)的加法,在比特12上執(zhí)行有偏圓整,將結(jié)果保存到一個(gè)半字里 r3.l=r4+r5 (rnd20); 執(zhí)行兩個(gè)32位數(shù)的加法,在比特20上執(zhí)行有偏圓整,將結(jié)果保存到一個(gè)半字里算術(shù)邏輯單元(算術(shù)邏輯單元(a
19、lu) 兩個(gè)alu執(zhí)行定點(diǎn)數(shù)的算術(shù)和邏輯操作 alu定點(diǎn)指令操作16-bit、32-bit或40-bit的定點(diǎn)操作數(shù),得到16-bit、32-bit或40-bit的定點(diǎn)結(jié)果。 alu指令 寄存器的定點(diǎn)加減法、立即數(shù)的加減法、乘法結(jié)果的累加/減、邏輯(與、或、非、異或、按位異或、取反)操作、函數(shù)(取絕對(duì)值、最大值、最小值、圓整、除法原語(yǔ))操作alu操作操作 alu的主要操作是在alu0中進(jìn)行的,并行操作是在alu1中進(jìn)行的,它執(zhí)行alu0操作的一個(gè)子集 表2-8描述了每個(gè)alu可能的輸入和輸出 聯(lián)合兩個(gè)alu操作,單條指令能得到4個(gè)16-bit結(jié)果、兩個(gè)32-bit結(jié)果或兩個(gè)40-bit結(jié)果。a
20、lu操作操作單單16-bit操作操作 r3.h=r1.h+r2.l (ns);r1.h加到r2.l上,結(jié)果保存到r3.h中,不帶飽和選項(xiàng) 雙雙16-bit操作操作 r3=r1 + | - r2 (s);r2.h加到r1.h上,飽和處理后的結(jié)果保存到r3.h里從r1.l中減去了r2.l,飽和處理后的結(jié)果保存到r3.l里 4個(gè)個(gè)16-bit操作操作 r3=r0 +|+ r1,r2=r0 | r1 (s);r1.h加上r0.h,保存結(jié)果到r3.h里,帶飽和操作。r1.l加上r0.l,保存結(jié)果到r3.l里,帶飽和操作。r0.h減去r1.h,保存結(jié)果到r2.h里,帶飽和操作。r0.l減去r1.l,保存結(jié)
21、果到r2.l里,帶飽和操作。alu操作操作 單單32-bit操作操作 r3=r1 + r2 (ns); 指令中不能混合使用指針寄存器與數(shù)據(jù)寄存器 雙雙32-bit操作操作 r3=r1 + r2,r4 = r1 r2 (ns); 提供給alu0和alu1的是同樣的兩個(gè)32-bit輸入寄存器 專門形式 使用40-bit的alu結(jié)果寄存器作為操作數(shù),得到關(guān)于a0和a1寄存器的和與差。例如指令: r3=a0 + a1,r4=a0 a1 (s); 將alu寄存器值進(jìn)行加減操作,帶飽和處理,并將兩個(gè)32-bit的和與差轉(zhuǎn)輸?shù)浇Y(jié)果寄存器雙雙16-bit交叉選項(xiàng)交叉選項(xiàng) 對(duì)于雙16位操作,結(jié)果可能會(huì)交叉 “交
22、叉結(jié)果”改變了計(jì)算結(jié)果在結(jié)果寄存器中的位置。 高端結(jié)果放置在目的寄存器的低半字里,低端結(jié)果放置在目的寄存器的高半字里,參見(jiàn)圖2-9 在處理復(fù)數(shù)數(shù)學(xué)運(yùn)算和快速傅立葉變換(fft)的部分操作時(shí)有用,交叉選項(xiàng)只適用于alu031rmrprn圖2-9 雙16-bit alu操作的交叉選項(xiàng) alu除法支持與視頻操作除法支持與視頻操作 alu支持除法 兩個(gè)專用的除法原語(yǔ)divs和divq讓程序?qū)嵤┮粋€(gè)不復(fù)原的、有條件的(錯(cuò)誤檢查)加/減/除算法 除法可以是有符號(hào)的或無(wú)符號(hào)的,但是被除數(shù)和除數(shù)必須是同一類型,參見(jiàn)處理器指令集參考 處理器具有特殊的simd視頻alu操作功能 4個(gè)8-bit視頻alu使處理器能
23、夠高效率地處理視頻信息 每個(gè)視頻alu指令可能需要1至4對(duì)8-bit的輸入,輸出1至4對(duì)8-bit的結(jié)果 輸入是用數(shù)據(jù)寄存器文件按兩個(gè)32-bit字的形式提交給視頻alu的 可能的操作包括 4個(gè)8-bit數(shù)的加法或減法、4個(gè)8-bit數(shù)的平均、4個(gè)8-bit數(shù)的打包和解包、4個(gè)8-bit數(shù)的減-絕對(duì)值-累加、字節(jié)對(duì)齊 參見(jiàn)處理器指令集參考alu指令匯總指令匯總符號(hào)的含義說(shuō)明如下dreg_lo_hi表示任何數(shù)據(jù)寄存器文件寄存器里的16-bit寄存器半字。imm7表示有符號(hào)的7-bit寬的立即數(shù)。divs表示除法符號(hào)原語(yǔ)。divq表示除法商原語(yǔ)。max表示源寄存器里的最大值,或最大的正值。min表
24、示源寄存器的最小值。abs表示一個(gè)32-bit寄存器的高或低半字的絕對(duì)值。rnd表示對(duì)一個(gè)半字圓整。rnd12表示對(duì)加法或減法結(jié)果飽和處理,并在結(jié)果的第12位上進(jìn)行圓整。rnd20表示對(duì)加法或減法結(jié)果飽和處理,并在結(jié)果的第20位上進(jìn)行圓整。signbits表示一個(gè)數(shù)里的符號(hào)位的個(gè)數(shù)減1。expadj表示一個(gè)數(shù)里次要的符號(hào)位的個(gè)數(shù)減一個(gè)數(shù)里次要的符號(hào)位的個(gè)數(shù)減1和一個(gè)閾值。和一個(gè)閾值。d指示aq包含被除數(shù)最高有效位與除數(shù)最高有效位的異或。 表2-9 alu指令匯總表部分指令指令astat 狀態(tài)標(biāo)志azanac0ac0_copyac1av0av0sav1av1svv_copyvsaqdreg =
25、max (dreg, dreg ) (v) ;*/dreg = min (dreg, dreg) (v) ;*/dreg = abs dreg (v) ;*dreg_lo_hi = dreg (rnd) ;*dreg_lo_hi = dreg dreg (rnd12) ;*dreg_lo_hi = dreg + dreg (rnd20) ;*dreg_lo = signbits dreg ;dreg_lo = signbits dreg_lo_hi ;dreg_lo = signbits an ;dreg_lo = expadj (dreg, dreg_lo ) (v) ; dreg_lo =
26、 expadj (dreg_lo_hi, dreg_lo); 本講作業(yè)1 理解并整理指令功能(參考adsp-bf53x/bf56x blackfin processor programming reference) max min vector search vector max vector min乘累加器乘累加器 乘累加器mac0和mac1 執(zhí)行定點(diǎn)乘法運(yùn)算和乘累加操作 用于累加或累減 定點(diǎn)指令對(duì)16-bit數(shù)據(jù)進(jìn)行操作,產(chǎn)生32-bit結(jié)果,它可被加到40-bit累加器里或從中減去 輸入 小數(shù)或整數(shù),無(wú)符號(hào)或補(bǔ)碼數(shù) 指令 乘法、乘累加(帶圓整選項(xiàng))、乘累減(帶圓整選項(xiàng))、同時(shí)包含前面兩種
27、操作乘法器操作乘法器操作輸入 數(shù)據(jù)寄存器文件寄存器 從兩個(gè)32-bit輸入得到兩個(gè)16-bit操作數(shù)輸出 累加其結(jié)果到它的累加器寄存器a1或a0 累加器結(jié)果可飽和成32或40位 或圓整后直接寫入16-bit或32-bit目的寄存器數(shù)據(jù)類型 輸入都是整數(shù)類型或者是小數(shù)類型,結(jié)果的類型和輸入的類型一致 對(duì)于mac0,兩個(gè)輸入都被當(dāng)作無(wú)符號(hào)或有符號(hào)數(shù) 對(duì)于mac1,有一個(gè)混合類型選項(xiàng) 若兩個(gè)輸入都是小數(shù)形式并是有符號(hào)數(shù),將結(jié)果左移一位,以消除冗余符號(hào)位 而對(duì)于無(wú)符號(hào)小數(shù)、整數(shù)或者混合類型,不執(zhí)行符號(hào)位修正的移位操作乘法指令選項(xiàng)指定了輸入數(shù)據(jù)的格式 參見(jiàn)“乘法器指令選項(xiàng)”乘法器操作乘法器操作 乘法器結(jié)
28、果的圓整或飽和乘法器結(jié)果的圓整或飽和 乘法結(jié)果溢出時(shí)的飽和處理乘法結(jié)果溢出時(shí)的飽和處理 乘法器指令匯總(參見(jiàn)整理文稿)乘法器指令匯總(參見(jiàn)整理文稿) 乘法器指令選項(xiàng)(參見(jiàn)整理文稿)乘法器指令選項(xiàng)(參見(jiàn)整理文稿) 不帶累加的乘法不帶累加的乘法 乘積結(jié)果直接存入一個(gè)數(shù)據(jù)寄存器文件寄存器或累加器寄存器 目的寄存器可以是16位的或32位的 16-bit目的寄存器,低半字則使用mac0 16-bit目的寄存器,高半字則使用mac1 32-bit目的寄存器,mac0和mac1都可以使用乘法器操作乘法器操作 特殊的32-bit整數(shù)mac指令 dreg*=dreg; 雙mac操作 兩個(gè)16-bit mac使m
29、ac吞吐率加倍 兩個(gè)32-bit輸入寄存器可提供給每一個(gè)mac單元,提供了4種可能組合的16-bit輸入操作數(shù)。 矢量操作 存儲(chǔ)樣點(diǎn)矢量到4個(gè)輸入操作數(shù),并執(zhí)行矢量計(jì)算。 例子 a1+=r1.h * r2.l, a0+=r1.l * r2.h; mac操作中4個(gè)可能的組合mac0mac0mac0mac039a31rmrpa039b31rmrpa039c31rmrpa039d31rmrpa0桶式移位器桶式移位器 提供對(duì)16-bit、32-bit或40-bit輸入的移位功能,產(chǎn)生一個(gè)16-bit,32-bit,或40-bit的輸出 功能 算術(shù)移位、邏輯移位、循環(huán)移位和各種位測(cè)試、設(shè)置、打包、解包和
30、指數(shù)檢測(cè) 移位功能可以組合 實(shí)現(xiàn)數(shù)字格式控制,包括完整的浮點(diǎn)表示移位器操作移位器操作 指令 ,指令表示算術(shù)移位 lshift、指令表示邏輯移位 在16-bit單個(gè)或成對(duì)的數(shù)值上操作的指令都可以采用ashift和lshift指令 在許多dsp算法中用到,典型的3操作數(shù)指令 操作一個(gè)32-bit寄存器值并使用兩個(gè)操作數(shù)的指令,可以利用和指令 算術(shù)移位、邏輯移位和循環(huán)指令 可從寄存器或直接從指令的立即數(shù)中獲得移位參數(shù)兩操作數(shù)移位兩操作數(shù)移位 移位一個(gè)輸入寄存器并將結(jié)果存入同一寄存器 立即移位立即移位 r0 contains 0000 b6a3; r0 =0 x04; 結(jié)果:r0 contains 0
31、000 0b6a 寄存器移位寄存器移位 r0 contains 0000 b6a3; r2 contains 0000 0004; r00 x04; 結(jié)果:r1 contains 0000 0b6a 寄存器移位寄存器移位 r0 contains 0000 b6a3; r2.l contains 0004; r1=r0 ashift by r2.l; 結(jié)果:r1 contains 000b 6a30 r0 contains abcd ef12; r2.l contains 0004; r1=r0 rot by r2.l; (循環(huán)移位,假設(shè)條件碼位(cc)設(shè)置為0 ) 結(jié)果:r1 contains
32、 bcde f125 cc位包含在結(jié)果中,在第3位 位測(cè)試、置位、清零、切換位測(cè)試、置位、清零、切換 對(duì)一個(gè)數(shù)據(jù)寄存器中的指定位進(jìn)行測(cè)試、置位、清零及切換 兩個(gè)參數(shù)源寄存器和位域值 不改變?cè)醇拇嫫鳎Y(jié)果保存在cc位里 例子 bitclr (r0, 6) ; bitset (r2, 9) ; bittgl (r3, 2) ; cc=bittst (r3, 0) ;域抽取和域存儲(chǔ)域抽取和域存儲(chǔ) 可從一個(gè)32-bit源域中的任何位置上抽取出一個(gè)1-bit到16-bit域 可以將1-bit到16-bit長(zhǎng)度的源域存儲(chǔ)到一個(gè)32-bit目的域中的任何位置上 使用兩個(gè)寄存器參數(shù) 一個(gè)包含32-bit目的或
33、32-bit源 另一個(gè)包含要抽取/存儲(chǔ)的值,它的長(zhǎng)度和它在源里的位置表表2-12移位器指令匯總表移位器指令匯總表部分指令指令astat 狀態(tài)標(biāo)志azanac0ac0_copyac1av0av0sav1av1sccvv_copyvsdreg = deposit (dreg, dreg) ;*/dreg = extract (dreg, dreg) ;*/bitmux (dreg, dreg, a0) ;dreg_lo = ones dreg ;dreg = pack (dreg_lo_hi,dreg_lo_hi);dreg = dreg uimm4 (v) ;*/dreg = dreg uimm
34、4 (v) ;*/dreg = dreg uimm4 (v) ;dreg = dreg uimm4 (v) ;dreg = dreg uimm4 (v) ;dreg = rot dreg by imm6 ;dreg = ashift dreg by dreg_lo (v) ;dreg = lshift dreg by dreg_lo (v) ;數(shù)據(jù)地址產(chǎn)生器數(shù)據(jù)地址產(chǎn)生器 數(shù)據(jù)地址產(chǎn)生器數(shù)據(jù)地址產(chǎn)生器(dag)功能與寄存器功能與寄存器 dag產(chǎn)生數(shù)據(jù)地址以將數(shù)據(jù)移到存儲(chǔ)器或從中取數(shù) 程序用dag寄存器代替絕對(duì)地址來(lái)間接尋址 支持幾種功能用于減少數(shù)據(jù)訪問(wèn)時(shí)的開(kāi)銷 提供地址:在數(shù)據(jù)訪問(wèn)期間提供地址
35、 提供地址并后修改:在數(shù)據(jù)轉(zhuǎn)移時(shí)提供地址,并為下一次轉(zhuǎn)移自動(dòng)增/減存儲(chǔ)地址 提供偏移地址:提供相對(duì)于某基地址的偏移址,不增加原始地址指針 修改地址:增加或減少存儲(chǔ)地址,不執(zhí)行數(shù)據(jù)轉(zhuǎn)移 位反向進(jìn)位地址:在數(shù)據(jù)轉(zhuǎn)移時(shí)提供位反向進(jìn)位地址,而不是反轉(zhuǎn)存儲(chǔ)地址 dag子系統(tǒng) 兩個(gè)dag算術(shù)單元、9個(gè)指針寄存器、4個(gè)索引寄存器、4套相關(guān)的變址、基址和長(zhǎng)度寄存器dag的尋址的尋址 blackfin處理器按字節(jié)尋址,所有的數(shù)據(jù)訪問(wèn)必須對(duì)齊數(shù)據(jù)字節(jié)大小 32-bit取指必須對(duì)齊32位,但8位的存儲(chǔ)可對(duì)齊任意字節(jié) 指令: r0=p3+; 取一個(gè)32位字,由p3中的值來(lái)指向,并把它放在r0中,然后p3加4以維持32位對(duì)齊訪問(wèn) r0.l=wi3+; 取一個(gè)16位字,由i3中的值來(lái)指向,并把它放進(jìn)目的寄存器低半部分r0.l中,然后i3加2來(lái)維持16位對(duì)齊訪問(wèn) r0=bp3+(z); 取
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育成就未來(lái)數(shù)學(xué)試卷
- 南開(kāi)區(qū)小升初數(shù)學(xué)試卷
- 廊坊5年級(jí)數(shù)學(xué)試卷
- 2025年骨關(guān)節(jié)康復(fù)用品項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年液壓元件、系統(tǒng)及裝置項(xiàng)目申請(qǐng)報(bào)告模板
- 洛陽(yáng)市三練文科數(shù)學(xué)試卷
- 南京各區(qū)初一數(shù)學(xué)試卷
- 2025年事業(yè)單位招聘考試綜合類專業(yè)能力測(cè)試試卷(法律咨詢案例解析)
- 2025年西班牙語(yǔ)DELEB2級(jí)寫作沖刺試卷精講
- 2025年通信工程師考試衛(wèi)星通信仿真試卷
- 運(yùn)用PDCA降低I類切口感染率模板課件
- 特種設(shè)備安全管理課件-電梯安全知識(shí)
- 車輛轉(zhuǎn)讓合同電子版下載可打印
- 深圳填海工程施工實(shí)施方案
- BB/T 0023-2017紙護(hù)角
- 建設(shè)集團(tuán)有限公司安全生產(chǎn)管理制度匯編
- 行為習(xí)慣養(yǎng)成教育校本教材
- 疫苗運(yùn)輸溫度記錄表
- logopress3培訓(xùn)視頻教程整套模具大綱
- DB32-T 2945-2016硬質(zhì)合金刀具PVD涂層測(cè)試方法-(高清現(xiàn)行)
- TB∕T 3526-2018 機(jī)車車輛電氣設(shè)備 接觸器
評(píng)論
0/150
提交評(píng)論