版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1DSP原理與應(yīng)用CPU結(jié)構(gòu)與指令集DSP的一般結(jié)構(gòu)2.1CPU結(jié)構(gòu)外設(shè)CPU內(nèi)部存儲(chǔ)器內(nèi)部總線外部存儲(chǔ)器數(shù)據(jù)寄存器處理單元片內(nèi)存儲(chǔ)器片外存儲(chǔ)器存儲(chǔ)器的層次第1頁(yè)/共128頁(yè)2.1.1CPU結(jié)構(gòu)框圖程序取指指令分配指令譯碼程序執(zhí)行機(jī)構(gòu)程序總線數(shù)據(jù)總線第2頁(yè)/共128頁(yè)存儲(chǔ)器映射(統(tǒng)一編址)描述起始地址終止地址單字節(jié)或四字節(jié)尋址內(nèi)部ROM頁(yè)0(256KBytes)0x000000000x0003FFFF單字節(jié)或四字節(jié)內(nèi)部ROM頁(yè)1(128KBytes)0x000400000x0005FFFF單字節(jié)或四字節(jié)內(nèi)部RAM頁(yè)0(256KBytes)0x100000000x1003FFFF單字節(jié)或四字節(jié)存儲(chǔ)器和緩存控制寄存器0x200000000x2000001F單字節(jié)器件配置寄存器0x400000000x40000083單字節(jié)PLL控制寄存器0x410000000x4100015F單字節(jié)定時(shí)器(RTI)控制寄存器0x420000000x420000A3單字節(jié)通用主機(jī)接口(UHPI)寄存器0x430000000x43000043單字節(jié)McASP0控制寄存器0x440000000x440002BF單字節(jié)SPI0控制寄存器0x470000000x4700007F單字節(jié)I2C0控制寄存器0x490000000x4900007F單字節(jié)I2C1控制寄存器0x4A0000000x4A00007F單字節(jié)McASP0DMA端口(此范圍內(nèi)的任何地址)0x540000000x54FFFFFF單字節(jié)dMAX控制寄存器0x600000000x6000008F單字節(jié)dMAX0(HiMAX)事件入口表0x610080000x6100807F單字節(jié)或四字節(jié)dMAX0(HiMAX)傳輸入口表0x610080A00x610081FF單字節(jié)或四字節(jié)通過(guò)EMIF訪問(wèn)的外部SDRAM空間0x800000000x8FFFFFFF單字節(jié)或四字節(jié)通過(guò)EMIF訪問(wèn)的外部異步器件/Flash空間0x900000000x9FFFFFFF單字節(jié)或四字節(jié)EMIF控制寄存器0xF00000000xF00000BF單字節(jié)第3頁(yè)/共128頁(yè)2.1.2CPU數(shù)據(jù)通道2個(gè)通用寄存器組(A和B),包括32個(gè)寄存器8個(gè)功能單元(.L1、.L2、.S1、.S2、.M1、.M2、.D1、.D2)
2個(gè)數(shù)據(jù)讀取通路(LD1和LD2),每側(cè)有2個(gè)32位讀取總線2個(gè)數(shù)據(jù)存儲(chǔ)通路(ST1和ST2),每側(cè)有1個(gè)32位存儲(chǔ)總線2個(gè)寄存器組交叉通路(1x和2x)2個(gè)數(shù)據(jù)尋址通路(DA1和DA2)第4頁(yè)/共128頁(yè)1.通用寄存器組功能(1)存放數(shù)據(jù),作為指令的源操作數(shù)和目的操作數(shù)。注意傳送方向和數(shù)據(jù)字長(zhǎng)(2)作為間接尋址的地址指針,寄存器A4~A7和B4~B7還能夠以循環(huán)尋址方式工作(3)A1、A2、B0、B1和B2可用做條件寄存器第5頁(yè)/共128頁(yè)A1:A0A3:A2…A29:A28A31:A30oddeven:32840-bitRegB1:B0B3:B2…B29:B28B31:B30oddeven:32840-bitReg40位/64位寄存器對(duì)
Allcombinationsof40-bitregistersareshownbelow:Theregistersmustbefromthesameside.Thefirstregistermustbeevenandthesecondodd.Theregistersmustbeconsecutive.第6頁(yè)/共128頁(yè)2.功能單元
功能單元
定點(diǎn)操作
浮點(diǎn)操作.L單元32/40位算術(shù)和比較操作32-位最左邊1或0的位數(shù)計(jì)數(shù)32位和40位歸一化操作32位邏輯操作算術(shù)操作數(shù)據(jù)類(lèi)型轉(zhuǎn)換操作DP→SPINT→DP,INT→SP.S單元32位算術(shù)操作32/40位移位和32位位域操作32位邏輯操作轉(zhuǎn)移常數(shù)產(chǎn)生寄存器與控制器數(shù)據(jù)傳遞(僅.S2)比較倒數(shù)和倒數(shù)平方根操作絕對(duì)值操作SP→DP數(shù)據(jù)類(lèi)型轉(zhuǎn)換.M單元16×16位乘法操作32×32乘法操作浮點(diǎn)乘法操作.D單元32-位加,減,線性及循環(huán)尋址計(jì)算帶5位常數(shù)偏移量的字讀取與存儲(chǔ)帶15位常數(shù)偏移量的字讀取與存儲(chǔ)(僅.D2)帶5位常數(shù)偏移量的雙字讀取第7頁(yè)/共128頁(yè)3.寄存器組交叉通路.L1、.S1、.D1和.M1可以直接讀寫(xiě)寄存器組A
.L2、.S2、.D2和.M2可以直接讀寫(xiě)寄存器組B
1x交叉通路允許數(shù)據(jù)通道A的功能單元從寄存器組B讀它的源操作數(shù)
2x交叉通路允許數(shù)據(jù)通道B的功能單元從寄存器組A讀它的源操作數(shù)第8頁(yè)/共128頁(yè)4.數(shù)據(jù)存儲(chǔ)器及讀取存儲(chǔ)通路(Load指令)寄存器組A的讀入通路為L(zhǎng)D1(2個(gè)32位)
寄存器組B的讀入通路為L(zhǎng)D2(2個(gè)32位)
LDDW指令一次可讀取64位數(shù)據(jù)到A或B寄存器
(Store指令)寄存器組A的寫(xiě)數(shù)據(jù)通路為ST1寄存器組B的寫(xiě)數(shù)據(jù)通路為ST2第9頁(yè)/共128頁(yè)5.數(shù)據(jù)地址通路數(shù)據(jù)地址通路DA1和DA2來(lái)自.D功能單元
數(shù)據(jù)通道以T1、T2表示
LDW.D1T2*A0[3],B1D1產(chǎn)生地址,用LD2數(shù)據(jù)通道讀入數(shù)據(jù)到B1寄存器第10頁(yè)/共128頁(yè)6.控制寄存器組縮寫(xiě)寄存器名描述AMR尋址模式寄存器指定是否使用線性或循環(huán)尋址。如果是循環(huán)尋址,還包括循環(huán)尋址的尺寸CSR控制狀態(tài)寄存器包括全局中斷使能位,高速緩沖存儲(chǔ)器控制位和其他各種控制和狀態(tài)位FADCR浮點(diǎn)加法配置寄存器指定.L單元的溢出方式,舍入方式,記錄NaN及其他異常FAUCR浮點(diǎn)輔助配置寄存器記錄.S單元NaN及其他異常FMCR浮點(diǎn)乘法配置寄存器指定.M單元的溢出方式,舍入方式,記錄NaN及其他異常ICR中斷清除寄存器允許軟件清除掛起的中斷IER中斷使能寄存器允許使能/禁止個(gè)別中斷IFR中斷標(biāo)志寄存器顯示中斷狀態(tài)IRP中斷返回指針保存從可屏蔽中斷返回時(shí)的地址ISR中斷設(shè)置寄存器允許軟件控制設(shè)置中斷ISTP中斷服務(wù)表指針指向中斷服務(wù)表的起始地址NRP不可能屏蔽中斷返回指針保存從不可屏蔽中斷返回時(shí)的地址PCE1程序計(jì)數(shù)器保存處于流水線E1節(jié)拍的取指包地址第11頁(yè)/共128頁(yè)6.控制寄存器組模式描述00線性尋址(復(fù)位后默認(rèn)值)01循環(huán)尋址使用BK0字段10循環(huán)尋址使用BK1字段11保留尋址模式寄存器(AMR)
第12頁(yè)/共128頁(yè)控制狀態(tài)寄存器(CSR)位字段名功能15?10PWRD控制低功耗模式,該值讀時(shí)總為零9SAT飽和位。任一功能單元執(zhí)行一個(gè)飽和操作時(shí)被置1,飽和位只能有MVC指令清零,被功能單元飽和操作置位。當(dāng)清除和置位在同一周期內(nèi)發(fā)生時(shí),功能單元對(duì)它的置位優(yōu)先。飽和位在飽和發(fā)生后一個(gè)周期被置位8EN端結(jié)方式:1=小端終結(jié),0=大端終結(jié)7?5PCCPCC程序高速緩沖存儲(chǔ)器控制模式4?2DCC數(shù)據(jù)高速緩沖存儲(chǔ)器控制模式1PGIE當(dāng)一個(gè)中斷發(fā)生時(shí),保存以前的全局中斷使能位GIE0GIE全局中斷使能位,它控制除復(fù)位和不可屏蔽中斷之外的所有可屏蔽中斷使能:GIE=1時(shí),可屏蔽中斷使能:GIE=0時(shí),可屏蔽中斷禁止6.控制寄存器組第13頁(yè)/共128頁(yè)2.2.1指令集概述1.指令和功能單元之間的映射
指令功能單元
乘法相關(guān)的指令都是在.M單元執(zhí)行
產(chǎn)生數(shù)據(jù)存儲(chǔ)器地址的指令在.D功能單元
算術(shù)邏輯運(yùn)算大多在.L與.S單元執(zhí)行
第14頁(yè)/共128頁(yè)2.延遲間隙延遲間隙在數(shù)量上等于從指令的源操作數(shù)被讀取直到執(zhí)行的結(jié)果可以被訪問(wèn)所需要的指令周期數(shù)。指令類(lèi)型延遲間隙功能單元等待時(shí)間讀周期寫(xiě)周期單周期01ii2周期DP11ii,i+1DP比較12i,i+11+14周期31ii+3INT到DP轉(zhuǎn)換41ii+3,i+4Load41ii,i+4MPYSP2DP42ii+3,i+4ADDDP/SUBDP62i,i+1i+5,i+6MPYSPDP63i,i+1i+5,i+6MPYI84i,i+1,1+2,i+3i+8MPYID94i,i+1,1+2,i+3i+8,i+9MPYDP94i,i+1,1+2,i+3i+8,i+9第15頁(yè)/共128頁(yè)3.指令操作碼映射圖代碼段說(shuō)明creg指定條件寄存器的代碼z指定條件src,dst分別指定源及目的操作數(shù)代碼x指定源操作數(shù)2是否使用交叉通道op指令操作代碼s選擇寄存器組A或B作為目的操作數(shù)p指定是否并行執(zhí)行第16頁(yè)/共128頁(yè)CPU運(yùn)行時(shí),總是一次取
8條指令,組成一個(gè)取指包
所有并行執(zhí)行的指令組成一個(gè)執(zhí)行包
周期/執(zhí)行包指令1A2B3CDE4FGH4.并行操作第17頁(yè)/共128頁(yè)3位操作碼字段creg指定條件寄存器1位字段z指定是零測(cè)試還是非零測(cè)試z=1,進(jìn)行零測(cè)試,即條件寄存器的內(nèi)容為0是真z=0,進(jìn)行非零測(cè)試,即條件寄存器的內(nèi)容非0是真creg=0,z=0,則指令將無(wú)條件地執(zhí)行
條件寄存器:A1、A2、B0、B1和B2[B0]ADD.L1A1,A2,A3||[!B0]ADD.L2B1,B2,B3
以上2條指令是相互排斥5.條件操作第18頁(yè)/共128頁(yè)6.尋址方式全部采用間接尋址
所有寄存器都可以做線性尋址的地址指針
循環(huán)尋址的地址指針:A4-A7,B4-B7
由AMR控制地址修改方式:線件方式或循環(huán)方式
循環(huán)尋址循環(huán)塊的尺寸與BK0/BK1內(nèi)5位數(shù)值N的關(guān)系為塊尺寸=2(N+1)字節(jié)例如N的二進(jìn)制數(shù)為10000,等于十進(jìn)制16,則塊尺寸=2(16+1)=131072字節(jié)第19頁(yè)/共128頁(yè)尋址方式不修改地址寄存器先修改地址寄存器后修改地址寄存器寄存器間接尋址*R*++R*--R*R++*R--寄存器相對(duì)尋址*+R[ucst5]*-R[ucst5]*++R[ucst5]*--R[ucst5]*R++[ucst5]*R--[ucst5]基地址+變址*+R[offseR]*-R[offseR]*++R[offseR]*--R[offseR]*R++[offseR]*R--[offseR]帶15位常數(shù)偏移量的寄存器相對(duì)尋址*+B14/B15[ucst15]6.尋址方式讀?。鎯?chǔ)類(lèi)指令訪問(wèn)數(shù)據(jù)存儲(chǔ)器地址的匯編語(yǔ)法格式
ucst5-----無(wú)符號(hào)二進(jìn)制5位常數(shù)偏移量ucst15---無(wú)符號(hào)二進(jìn)制15位常數(shù)偏移量第20頁(yè)/共128頁(yè)Little-endianordering,inwhichbytesareorderedfromrighttoleft,themostsignificantbytehavingthehighestaddressBig-endianordering,inwhich
bytes
areorderedfromlefttoright,themostsignificantbytehavingthelowestaddress大小端位由DSP的LENDIAN管腳設(shè)置終結(jié)方式(大小端位)第21頁(yè)/共128頁(yè)BA987654h11,10,01,00BA987654h00,01,10,11終結(jié)方式(大小端位)第22頁(yè)/共128頁(yè)C6000DSP匯編指令分類(lèi)讀取/存儲(chǔ)類(lèi)指令 算術(shù)運(yùn)算類(lèi)指令邏輯與位操作類(lèi)指令搬移類(lèi)指令程序轉(zhuǎn)移類(lèi)指令
空操作類(lèi)指令浮點(diǎn)操作類(lèi)指令第23頁(yè)/共128頁(yè)2.2.2讀取/存儲(chǔ)類(lèi)指令讀取指令:LDB/LDBU/LDH/LDHU/LDW/LDDW
存儲(chǔ)指令:STB/STH/STW
單字節(jié)(Byte)、雙字節(jié)(半字HalfWord)和四字節(jié)(字Word)位數(shù)不同有符號(hào)/無(wú)符號(hào)(U),符號(hào)位的擴(kuò)展不同地址偏移修正因子:LDB(U)/LDH(U)/LDW指令分別讀入字節(jié)/半字/字,要乘以相應(yīng)的比例因子1、2、4
第24頁(yè)/共128頁(yè)2.2.2讀取/存儲(chǔ)類(lèi)指令例2-1線性尋址下的變址計(jì)算
LDW.D1*++A4[1],A6
此例為先修改地址,地址偏移量按1×4計(jì)算,計(jì)算結(jié)果如下所示:示例0201第25頁(yè)/共128頁(yè)2.2.2讀取/存儲(chǔ)類(lèi)指令例2-2循環(huán)尋址方式下的地址計(jì)算
LDW.D1*++A4[9],A1
此處假設(shè)尋址模式寄存器AMR=0x00030001,A4已被設(shè)定為循環(huán)尋址方式,塊字節(jié)尺寸為24=16=10h(N=3)。因?yàn)槭且宰譃閱挝蛔x取,變址偏移量為9×4=36=24h。線件尋址時(shí)地址應(yīng)為00000124h;循外尋址時(shí),24h對(duì)低4位(第0-3位)地址10h取模,余數(shù)為4,故實(shí)際尋址地址為00000104h。
示例0202第26頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令1.加減運(yùn)算指令
(1)ADD/ADDU/SUB/SUBU
操作數(shù)為整型(32位)或長(zhǎng)整型(40位)的指令(2)ADD2/SUB2
操作數(shù)為半字(16位)的指令,ADD2/SUB2指令的特點(diǎn)是同時(shí)進(jìn)行2個(gè)16位補(bǔ)碼數(shù)的加減運(yùn)算,高半字與低半字之間沒(méi)有進(jìn)/借位,各自獨(dú)立進(jìn)行(3)SADD/SSUB
帶飽和的有符號(hào)數(shù)加減運(yùn)算指令,操作數(shù)為32位或40位有符號(hào)數(shù)(4)ADDK
與16位常數(shù)進(jìn)行加法操作的指令(5)ADDAB/ADDAH/ADDAW/ADDAD,SUBAB/SUBAH/SUBAW
按尋址方式的加減運(yùn)算類(lèi)指令第27頁(yè)/共128頁(yè)溢出問(wèn)題如果運(yùn)算結(jié)果超出目的操作數(shù)字長(zhǎng)所能表示的范圍,造成運(yùn)算結(jié)果的高位丟失,使保存的運(yùn)算結(jié)果不正確,稱(chēng)為溢出。通常有3種辦法解決溢出問(wèn)題(1)用較長(zhǎng)的字長(zhǎng)來(lái)存放運(yùn)算結(jié)果:1632可行,3240耗時(shí)(2)用帶飽和的加減運(yùn)算指令做補(bǔ)碼數(shù)加減運(yùn)算:保證符號(hào)不變,并且給出提示位(3)對(duì)整個(gè)系統(tǒng)乘一個(gè)小于1的比例因子:實(shí)際中最常用2.2.3算術(shù)運(yùn)算類(lèi)指令第28頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令例2-3減法運(yùn)算舉例SSUB.L2B1,B2,B3
SUB.L2B1,B2,B3SUB.L2B1,B2,B5:B4示例0203溢出了!符號(hào)位在這里無(wú)溢出!第29頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令例2-4計(jì)算累加和的程序,用長(zhǎng)型數(shù)存放和數(shù),有8位保護(hù)位,示例0204Loop:LDW.D1*A4++,A0NOP4ADD.L1A3:A2,A0,A3:A2SUB.L2B1,1,B1[B1]B.S1LoopNOP5
第30頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令例2-5按尋址方式的加法運(yùn)算指令
ADDAH.D1A4,A2,A4B×2=16h對(duì)8取余得6示例0205第31頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令例2-6按尋址方式的減法運(yùn)算指令
SUBAB.D1A5,A0,A5-4×1=-4h對(duì)10h取余得C示例0205第32頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令2.乘法運(yùn)算指令
(1)適宜于整數(shù)乘法的指令
以MPY為首字母的22條指令
(2)適宜于Q格式數(shù)相乘的3條指令
SMPY/SMPYLH/SMPYHL
以16×16位的硬件乘法器為基礎(chǔ),整數(shù)乘法的2個(gè)源操作數(shù)都是16位字長(zhǎng),目的操作數(shù)為32的寄存器,不存在溢出問(wèn)題。
第33頁(yè)/共128頁(yè)所謂定點(diǎn)格式,即約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。在計(jì)算機(jī)中通常采用兩種簡(jiǎn)單的約定:將小數(shù)點(diǎn)的位置固定在數(shù)據(jù)的最高位之前,或者是固定在最低位之后。一般常稱(chēng)前者為定點(diǎn)小數(shù),后者為定點(diǎn)整數(shù)。Q格式:小數(shù)點(diǎn)位于第n位之右側(cè),稱(chēng)為Qn格式
定點(diǎn)小數(shù)是純小數(shù),約定的小數(shù)點(diǎn)位置在符號(hào)位之后、有效數(shù)值部分最高位之前。若數(shù)據(jù)
x的形式為
x=x0.x1x2…xn(其中x0為符號(hào)位,x1~xn是數(shù)值的有效部分,也稱(chēng)為尾數(shù),x1為最高有效位),則在計(jì)算機(jī)中的表示形式為:Q格式定點(diǎn)數(shù)2-n
≤|x|≤1-2-nQ0格式數(shù)第34頁(yè)/共128頁(yè)定點(diǎn)整數(shù)是純整數(shù),約定的小數(shù)點(diǎn)位置在有效數(shù)值部分最低位之后。若數(shù)據(jù)
x的形式為
x=x0x1x2…xn(其中x0為符號(hào)位,x1~xn
是尾數(shù),xn
為最低有效位),則在計(jì)算機(jī)中的表示形式為:Q格式定點(diǎn)數(shù)1≤|x|≤2n-1
Q15格式數(shù)第35頁(yè)/共128頁(yè)2.2.3算術(shù)運(yùn)算類(lèi)指令例2-7整數(shù)乘法運(yùn)算
(1)MPYH.M1A1,A2,A3
(2)MPYHU.M1A1,A2,A3
示例0207符號(hào)位擴(kuò)展無(wú)符號(hào)數(shù)第36頁(yè)/共128頁(yè)1.邏輯運(yùn)算指令:
AND、OR、XOR、NEG(求補(bǔ)碼)2.移位指令:
算術(shù)左移指令SHL、算術(shù)右移指令SHR、邏輯右移(無(wú)符號(hào)擴(kuò)展右移)指令SHRU、帶飽和的算術(shù)左移指令SSHL。
SHRsrc2,src1,dst
(src1的低6位指定右移位數(shù))
3.位操作指令:寄存器控制中常用
位域清零/置位指令CLR/SET;
帶符號(hào)擴(kuò)展與無(wú)符號(hào)擴(kuò)展的位域提取指令EXT/EXTU
LMBD指令,尋找src2中與src1最低位(LSB)相同的最高位位置
NORM指令,檢測(cè)有多少個(gè)冗余的符號(hào)位4.比較及判別類(lèi)指令:循環(huán)條件判斷時(shí)用
CMPEQ/CMPGT(U)/CMPLT(U)指令用于比較兩個(gè)有/無(wú)符號(hào)數(shù)的相等、大于、小于,若為真,則目的寄存器置1;反之,目的寄存器置0。
2.2.4邏輯及位域操作指令第37頁(yè)/共128頁(yè)MV:
通用寄存器之間傳送數(shù)據(jù)MVC:
用于在通用寄存器與控制寄存器之間傳送數(shù)據(jù),此條指令只能使用.S2功能單元MVK:
用于把16位常數(shù)送入通用寄存器MVKH/MVKLH
MVKL
結(jié)合生成32位常量2.2.5搬移類(lèi)指令第38頁(yè)/共128頁(yè)用標(biāo)號(hào)label表示目標(biāo)地址的轉(zhuǎn)移指令B(.S)label用寄存器表示目標(biāo)地址的轉(zhuǎn)移指令B.S2src2從可屏蔽中斷寄存器取目標(biāo)地址的轉(zhuǎn)移指令B.S2IRP從不可屏蔽中斷寄存器取目標(biāo)地址的轉(zhuǎn)移指令B.S2NRP轉(zhuǎn)移指令有5個(gè)指令周期的延遲間隙。轉(zhuǎn)移指令后的5個(gè)指令執(zhí)行包全部進(jìn)入CPU流水線,并相繼執(zhí)行。2.2.6
程序轉(zhuǎn)移類(lèi)指令第39頁(yè)/共128頁(yè)2.2.7浮點(diǎn)運(yùn)算指令(1)浮點(diǎn)加減法指令
ADDSP/ADDDP/SUBSP/SUBDP
(2)數(shù)據(jù)類(lèi)型轉(zhuǎn)換指令10條
INTSP(U)/INTDP(U)/SPINT/DPINT/SPDP/SPTRUNC/DPSP/DPTRUNC
(3)浮點(diǎn)乘法及32位整數(shù)乘法指令6條
MPYSP/MPYSPDP/MPYSP2DP/MPYDP/MPYI/MPYID
(4)特殊的浮點(diǎn)運(yùn)算指令6條
ABSSP/ABSDP/RCPSP/RCPDP(倒數(shù))/RSQRSP/RSQRDP(平方根倒數(shù))
(5)單/雙精度浮點(diǎn)數(shù)的比較判決指令6條
CMPLTSP/CMPLTDP/CMPGTSP/CMPGTDP/CMPEQSP/CMPEQDP
(6)雙精度數(shù)據(jù)的讀?。鎯?chǔ)指令
LDDW/STDW
第40頁(yè)/共128頁(yè)1.IEEE標(biāo)準(zhǔn)的浮點(diǎn)數(shù)表示法s代表數(shù)的符號(hào),0為正,1為負(fù)
e是指數(shù)階碼,視做無(wú)符號(hào)數(shù)(0<e<255)
f是尾數(shù)的分?jǐn)?shù)部分floatdouble第41頁(yè)/共128頁(yè)32位單精度浮點(diǎn)數(shù)格式數(shù)的格式符號(hào)位(s)指數(shù)階碼(e)尾數(shù)的分?jǐn)?shù)(f)代表的數(shù)值規(guī)格化數(shù)x0<e<255x(-1)s×2(e-127)×1.f非規(guī)格化數(shù)x0非零(-1)s×2(-126)×0.f無(wú)窮大數(shù)02550+無(wú)窮大12550?無(wú)窮大無(wú)效數(shù)x255非零NaN(Not-a-Number)x2551xx..xQnaN(QuietNaN)x2550xx..x和非零SnaN(SignalNaN)第42頁(yè)/共128頁(yè)符號(hào)十六進(jìn)制值十進(jìn)制值備注NaN_out0x7FFFFFFFQnaN(QuietNaN)00x000000000.0-00x80000000-0.010x3F8000001.020x400000002.0LFPN0x7F7FFFFF3.40282347e+38單精度規(guī)格化浮點(diǎn)數(shù)最大值SFPN0x008000001.17549435e-38單精度規(guī)格化浮點(diǎn)數(shù)正最小值LDFPN0x0007FFFF1.17549421e-38單精度非規(guī)格化浮點(diǎn)數(shù)最大值SDFPN0x000000011.40129846e-45單精度非規(guī)格化浮點(diǎn)數(shù)正最小值一些特殊數(shù)的單精度浮點(diǎn)數(shù)的符號(hào)1+2-1+2-2+…+2-23=1+=1+1-2-23=1.99999988079071044921875×2127=3.40282346638528860e+38第43頁(yè)/共128頁(yè)64位雙精度浮點(diǎn)數(shù)格式數(shù)的格式符號(hào)位(s)指數(shù)階碼(e)尾數(shù)的分?jǐn)?shù)(f)代表的數(shù)值規(guī)格化數(shù)x0<e<2047x(-1)s×2(e-1023)×1.f非規(guī)格化數(shù)x0非零(-1)s×2(-1022)×0.f無(wú)窮大數(shù)020470+無(wú)窮大120470?無(wú)窮大無(wú)效數(shù)x2047非零NaN(Not-a-Number)x20471xx..xQnaN(QuietNaN)x20470xx..x和非零SnaN(SignalNaN)第44頁(yè)/共128頁(yè)一些特殊數(shù)的單精度浮點(diǎn)數(shù)的符號(hào)符號(hào)十六進(jìn)制值十進(jìn)制值備注NaN_out0x7FFFFFFFFFFFFFFFQnaN(QuietNaN)00x00000000000000000.0-00x8000000000000000-0.010x3F800000000000001.020x40000000000000002.0LFPN0x7F7FFFFFFFFFFFFF1.7976931348623157e+308單精度規(guī)格化浮點(diǎn)數(shù)最大值SFPN0x00800000000000002.2250738585072014e?308單精度規(guī)格化浮點(diǎn)數(shù)正最小值LDFPN0x0007FFFFFFFFFFFF2.2250738585072009e?308單精度非規(guī)格化浮點(diǎn)數(shù)最大值SDFPN0x00000000000000014.9406564584124654e?324單精度非規(guī)格化浮點(diǎn)數(shù)正最小值第45頁(yè)/共128頁(yè)2.C672x的浮點(diǎn)運(yùn)算控制寄存器作用:
(1)為.L、.S和.M單元的運(yùn)算設(shè)置浮點(diǎn)舍入方式;
(2)包括一些字段用來(lái)記錄指令執(zhí)行中遇到的問(wèn)題,以便檢查,包括:
源操作數(shù)src1和src2是否是無(wú)效數(shù)NaN或非規(guī)格化數(shù);
結(jié)果是否上溢、下溢、不準(zhǔn)確、無(wú)窮大或者無(wú)效;
是否執(zhí)行了除以零的操作;
是否用了NaN源操作數(shù)作比較等。第46頁(yè)/共128頁(yè)FADCR2.C672x的浮點(diǎn)運(yùn)算控制寄存器第47頁(yè)/共128頁(yè)ImplementationofSumofProducts(SOP)第48頁(yè)/共128頁(yè)ImplementationofSumofProducts(SOP)SOPisthekeyelementformostDSPalgorithms.Solet’swritethecodeforthisalgorithmandatthesametimelearntheC6000architecture.Twobasicoperationsarerequiredforthisalgorithm.(1)Multiplication(2)AdditionThereforetwobasicinstructionsarerequiredY=Nan
xnn=1*=a1
*x1+a2*x2
+...+aN*
xN第49頁(yè)/共128頁(yè)Multiply(MPY)Themultiplicationofa1byx1isdoneinassemblybythefollowinginstruction:MPY a1,x1,YThisinstructionisperformedbyamultiplierunitthatiscalled“.M”Y=Nan
xnn=1*=a1
*x1+a2*x2
+...+aN*
xNTheimplementationinthismodulewillbedoneinassembly.第50頁(yè)/共128頁(yè)Multiply(.Munit).MY=40anxnn=1*The.MunitperformsmultiplicationsinhardwareMPY .M a1,x1,Y
Note:16-bitby16-bitmultiplierprovidesa32-bitresult. 32-bitby32-bitmultiplierprovidesa64-bitresult.第51頁(yè)/共128頁(yè)Addition(.?).M.?Y=40anxnn=1*
MPY .M a1,x1,prod
ADD .? Y,prod,Y
第52頁(yè)/共128頁(yè)Add(.Lunit).M.LY=40anxnn=1*
MPY .M a1,x1,prod
ADD .L Y,prod,Y
RISCprocessorssuchastheC6000useregisterstoholdtheoperands,soletschangethiscode.第53頁(yè)/共128頁(yè)RegisterFile-AY=40anxnn=1*
MPY .M a1,x1,prod ADD .L Y,prod,Y
.M.LA0A1A2A3A4A15RegisterFileA.
.
.a1x1prod32-bitsYLetuscorrectthisbyreplacinga,x,prodandYbytheregistersasshownabove.第54頁(yè)/共128頁(yè)SpecifyingRegisterNamesY=40anxnn=1*
MPY .M A0,A1,A3 ADD .L A4,A3,A4
TheregistersA0,A1,A3andA4containthevaluestobeusedbytheinstructions..M.LA0A1A2A3A4A15RegisterFileA.
.
.a1x1prod32-bitsY第55頁(yè)/共128頁(yè)Y=40anxnn=1*
MPY .M A0,A1,A3 ADD .L A4,A3,A4
RegisterFileAcontains16registers(A0-A15)whichare32-bitswide..M.LA0A1A2A3A4A15RegisterFileA.
.
.a1x1prod32-bitsYSpecifyingRegisterNames第56頁(yè)/共128頁(yè)A:Theoperandsareloadedintotheregistersbyloadingthemfromthememoryusingthe.Dunit..M.LA0A1A2A3A15RegisterFileA.
.
.a1x1prod32-bitsY.DDataMemoryQ:Howdoweloadtheoperandsintotheregisters?Dataloading第57頁(yè)/共128頁(yè)A:Theloadinstructions..M.LA0A1A2A3A15RegisterFileA.
.
.a1x1prod32-bitsY.DDataMemoryQ:Whichinstruction(s)canbeusedforloadingoperandsfromthememorytotheregisters?LoadInstructions(LDB,LDH,LDW,LDDW)第58頁(yè)/共128頁(yè)0000000000000004000000080000000C00000010Data32-bitsBeforeusingtheloadunityouhavetobeawarethatthisprocessorisbyteaddressable,whichmeansthateachbyteisrepresentedbyauniqueaddress.Alsotheaddressesare32-bitwide.addressFFFFFFFFLoadInstructions(LDB,LDH,LDW,LDDW)第59頁(yè)/共128頁(yè)Thesyntaxfortheloadinstructionis:Where:Rnisaregisterthatcontainstheaddressoftheoperandtobeloadedand
Rmisthedestinationregister.0000000000000004000000080000000C00000010Dataa1x1prod32-bitsYaddressFFFFFFFFLDx*Rn,RmLoadInstructions(LDB,LDH,LDW,LDDW)第60頁(yè)/共128頁(yè)Thesyntaxfortheloadinstructionis:Thequestionnowishowmanybytesaregoingtobeloadedintothedestinationregister?0000000000000004000000080000000C00000010Dataa1x1prod32-bitsYaddressFFFFFFFFLoadInstructions(LDB,LDH,LDW,LDDW)LDx*Rn,Rm第61頁(yè)/共128頁(yè)Thesyntaxfortheloadinstructionis:0000000000000004000000080000000C00000010Dataa1x1prod32-bitsYaddressFFFFFFFFTheanswer,isthatitdependsontheinstructionyouchoose: LDB:loadsonebyte(8-bit) LDH:loadshalfword(16-bit) LDW:loadsaword(32-bit) LDDW:loadsadoubleword(64-bit)Note:LDonitsowndoesnotexist.LoadInstructions(LDB,LDH,LDW,LDDW)LDx*Rn,Rm第62頁(yè)/共128頁(yè)0000000000000004000000080000000C00000010Data32-bitsaddressFFFFFFFFDCBAExample:IfweassumethatA5=0x4then:(1) LDB*A5,A7;givesA7=0x00000001(2) LDH*A5,A7;givesA7=0x00000201(3) LDW*A5,A7;givesA7=0x04030201(4) LDDW*A5,A7:A6;
givesA7:A6=0x0807060504030201Thesyntaxfortheloadinstructionis:01LoadInstructions(LDB,LDH,LDW,LDDW)LDx*Rn,Rm43218765FE90第63頁(yè)/共128頁(yè)Question:Ifdatacanonlybeaccessedbytheloadinstructionandthe.Dunit,howcanweloadtheregisterpointerRninthefirstplace?Thesyntaxfortheloadinstructionis:LoadInstructions(LDB,LDH,LDW,LDDW)LDx*Rn,Rm0000000000000004000000080000000C00000010Data32-bitsaddressFFFFFFFFDCBA0143218765FE90第64頁(yè)/共128頁(yè)TheinstructionMVKLwillallowamoveofa16-bitconstantintoaregisterasshownbelow: MVKL.?a,A5 (‘a(chǎn)’isaconstantorlabel)Howmanybitsrepresentafulladdress?32bitsSowhydoestheinstructionnotallowa32-bitmove? Allinstructionsare32-bitwide(seeinstructionopcode).LoadingthePointerRn第65頁(yè)/共128頁(yè)Tosolvethisproblemanotherinstructionisavailable:
MVKH.?a,A5Finally,tomovethe32-bitaddresstoaregisterwecanuse:MVKL a,A5MVKH a,A5LoadingthePointerRn第66頁(yè)/共128頁(yè)MVKL 0x1234FABC,A5A5=0xFFFFFABC;WrongExample1A5=0x87654321MVKL 0x1234FABC,A5A5=0xFFFFFABC(signextension)MVKH 0x1234FABC,A5A5=0x1234FABC;OKExample2
MVKH 0x1234FABC,A5A5=0x12344321AlwaysuseMVKLthenMVKH,lookatthefollowingexamples:
LoadingthePointerRn第67頁(yè)/共128頁(yè)LDH,MVKLandMVKH.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.DDataMemory
MVKL pt1,A5MVKH pt1,A5MVKL pt2,A6MVKH pt2,A6LDH .D *A5,A0LDH .D *A6,A1
MPY .M A0,A1,A3ADD .L A4,A3,A4
第68頁(yè)/共128頁(yè)CreatingaloopWiththeC6000processorstherearenodedicatedinstructionssuchasblockrepeat.TheloopiscreatedusingtheBinstruction.
SofarwehaveonlyimplementedtheSOPforonetaponly,i.e.Y=a1
*x1Solet’screatealoopsothatwecanimplementtheSOPforNTaps.第69頁(yè)/共128頁(yè)Whatarethestepsforcreatingaloop1. Createalabeltobranchto.2. Addabranchinstruction,B.3. Createaloopcounter.4. Addaninstructiontodecrementtheloopcounter.5. Makethebranchconditionalbasedonthevalueintheloopcounter.第70頁(yè)/共128頁(yè)1.Createalabeltobranchto
MVKL pt1,A5 MVKH pt1,A5 MVKL pt2,A6 MVKH pt2,A6loop LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4
第71頁(yè)/共128頁(yè)
MVKL pt1,A5 MVKH pt1,A5 MVKL pt2,A6 MVKH pt2,A6loop LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 B .? loop
2.Addabranchinstruction,B.第72頁(yè)/共128頁(yè)DataMemoryWhichunitisusedbytheBinstruction?.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.S
MVKL .S pt1,A5 MVKH .S pt1,A5 MVKL .S pt2,A6 MVKH .S pt2,A6loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 B .S loop
第73頁(yè)/共128頁(yè)DataMemory3.Createaloopcounter..M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.S
MVKL .S pt1,A5 MVKH .S pt1,A5 MVKL .S pt2,A6 MVKH .S pt2,A6 MVKL .S count,B0loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 B .S loop
Bregisterswillbeintroducedlater第74頁(yè)/共128頁(yè)4.Decrementtheloopcounter.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.DDataMemory.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.S
MVKL .S pt1,A5 MVKH .S pt1,A5 MVKL .S pt2,A6 MVKH .S pt2,A6
MVKL .S count,B0loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4
SUB .S B0,1,B0 B .S loop
第75頁(yè)/共128頁(yè)Whatisthesyntaxformakinginstructionconditional? [condition] Instruction Label e.g. [B0] B loop (1) Theconditioncanbeoneofthefollowingregisters:A1,A2,B0,B1,B2.(2) Anyinstructioncanbeconditional.5.Makethebranchconditional第76頁(yè)/共128頁(yè)Theconditioncanbeinvertedbyaddingtheexclamationsymbol“!”asfollows: [!condition] Instruction Label e.g. [!B0] B loop;branchifB0=0 [B0] B loop ;branchifB0!=05.Makethebranchconditional第77頁(yè)/共128頁(yè)DataMemory.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.M.LA0A1A2A3A15RegisterFileA.
.
.axprod32-bitsY.D.S
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6
MVKL .S2 count,B0loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0
[B0] B .S loop
5.Makethebranchconditional第78頁(yè)/共128頁(yè)Case1: B.S1 label
Relativebranch.Labellimitedto+/-220offset.
MoreontheBranchInstruction(1)Withthisprocessoralltheinstructionsareencodedina32-bit.Thereforethelabelmusthaveadynamicrangeoflessthan32-bitastheinstructionBhastobecoded.21-bitrelativeaddressB32-bit第79頁(yè)/共128頁(yè)MoreontheBranchInstruction(2)Byspecifyingaregisterasanoperandinsteadofalabel,itispossibletohaveanabsolutebranch.Thiswillallowadynamicrangeof232.Case2: B.S2
registerAbsolutebranch.Operateson.S2ONLY!5-bitregistercodeB32-bit第80頁(yè)/共128頁(yè)TestingthecodeThiscodeperformsthefollowingoperations:a0*x0+a0*x0+a0*x0+…+a0*x0However,wewouldliketoperform:a0*x0+a1*x1+a2*x2+…+aN*xN
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6
MVKL .S2 count,B0loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0[B0] B .S loop
第81頁(yè)/共128頁(yè)ModifyingthepointersThesolutionistomodifythepointersA5andA6.
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6
MVKL .S2 count,B0loop
LDH .D *A5,A0 LDH .D *A6,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0[B0] B .S loop
第82頁(yè)/共128頁(yè)IndexingPointersDescriptionPointerSyntaxPointer
Modified*RNoRcanbeanyregisterInthiscasethepointersareusedbutnotmodified.第83頁(yè)/共128頁(yè)IndexingPointersDescriptionPointer+Pre-offset-Pre-offsetSyntaxPointer
Modified*R*+R[disp]*-R[disp]NoNoNo[ disp]specifiesthenumberofelementssizeinDW(64-bit),W(32-bit),H(16-bit),orB(8-bit).disp=Ror5-bitconstant.Rcanbeanyregister.InthiscasethepointersaremodifiedBEFOREbeingusedandRESTOREDtotheirpreviousvalues.第84頁(yè)/共128頁(yè)IndexingPointersDescriptionPointer+Pre-offset-Pre-offsetPre-incrementPre-decrementSyntaxPointer
Modified*R*+R[disp]*-R[disp]*++R[disp]*--R[disp]NoNoNoYesYesInthiscasethepointersaremodifiedBEFOREbeingusedandNOTRESTOREDtotheirPreviousValues.第85頁(yè)/共128頁(yè)IndexingPointersDescriptionPointer+Pre-offset-Pre-offsetPre-incrementPre-decrementPost-incrementPost-decrementSyntaxPointer
Modified*R*+R[disp]*-R[disp]*++R[disp]*--R[disp]*R++[disp]*R--[disp]NoNoNoYesYesYesYesInthiscasethepointersaremodifiedAFTERbeingusedandNOTRESTOREDtotheirPreviousValues.第86頁(yè)/共128頁(yè)DescriptionPointer+Pre-offset-Pre-offsetPre-incrementPre-decrementPost-incrementPost-decrementSyntaxPointer
Modified*R*+R[disp]*-R[disp]*++R[disp]*--R[disp]*R++[disp]*R--[disp]NoNoNoYesYesYesYes[disp]specifies#elements-sizeinDW,W,H,orB.disp=Ror5-bitconstant.Rcanbeanyregister.IndexingPointers第87頁(yè)/共128頁(yè)ModifyandtestingthecodeThiscodenowperformsthefollowingoperations:a0*x0+a1*x1+a2*x2+...+aN*xN
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6
MVKL .S2 count,B0loop
LDH .D *A5++,A0 LDH .D *A6++,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0[B0] B .S loop
第88頁(yè)/共128頁(yè)ThePointerA7isnowinitialised.
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6
MVKL .S2 pt3,A7 MVKH .S2 pt3,A7
MVKL .S2 count,B0loop LDH .D *A5++,A0 LDH .D *A6++,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0[B0] B .S loop
STH .D A4,*A7
Storethefinalresult第89頁(yè)/共128頁(yè)WhatistheinitialvalueofA4?A4isusedasanaccumulator,soitneedstoberesettozero.
MVKL .S2 pt1,A5 MVKH .S2 pt1,A5 MVKL .S2 pt2,A6 MVKH .S2 pt2,A6 MVKL .S2 pt3,A7 MVKH .S2 pt3,A7
MVKL .S2 count,B0
ZERO .L A4loop LDH .D *A5++,A0 LDH .D *A6++,A1
MPY .M A0,A1,A3 ADD .L A4,A3,A4 SUB .S B0,1,B0[B0] B .S loop
STH .D A4,*A7
第90頁(yè)/共128頁(yè)Howcanweaddmoreprocessingpowertothisprocessor?.S1.M1.L1.D1A0A1A2A3A4RegisterFileA.
.
.DataMemoryA1532-bitsIncreasingtheprocessingpower!第91頁(yè)/共128頁(yè)(1) Increasetheclockfrequency.(2) IncreasethenumberofProcessingunits..S1.M1.L1.D1A0A1A2A3A4RegisterFileA.
.
.DataMemory32-bitsA15Increasingtheprocessingpower!第92頁(yè)/共128頁(yè)TwosideProcessingunits(AandB)DataMemory.S1.M1.L1.D1A0A1A2A3A4RegisterFileA.
.
.A1532-bits.S2.M2.L2.D2B0B1B2B3B4RegisterFileB.
.
.B1532-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)公司合作協(xié)議
- 2025版委托代辦食品生產(chǎn)許可合同2篇
- 2025年度個(gè)人股權(quán)交易合同范本:股權(quán)轉(zhuǎn)讓流程與稅務(wù)籌劃4篇
- 2025-2030全球合成麝香香料行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)3D ToF深度相機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025版屋頂廣告牌廣告位租賃合同(二零二五年度)3篇
- 2025-2030全球氯化鍶89Sr行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024年趣味化學(xué)知識(shí)競(jìng)賽題庫(kù)及答案(共180題)
- 2025版微電影主創(chuàng)人員聘用合同模板3篇
- 2025版定制化柴油采購(gòu)居間服務(wù)合同6篇
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 《風(fēng)電場(chǎng)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)規(guī)范》(NB-T 31085-2016)
- 2024屆甘肅省蘭州市五十一中生物高一上期末檢測(cè)模擬試題含解析
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)上圖入庫(kù)(技術(shù)培訓(xùn))
- 火災(zāi)隱患整改登記表
- 普通地質(zhì)學(xué)教材
- 天津華寧KTC101說(shuō)明書(shū)
- 【智慧校園】-智慧校園系統(tǒng)方案
- 外研版高中新教材英語(yǔ)單詞表(必修一)
- 高中物理必修一第六節(jié)共點(diǎn)力的平衡條件及其應(yīng)用課件
- 2020版曼昆版宏觀經(jīng)濟(jì)學(xué)(第十版)課件第3章
評(píng)論
0/150
提交評(píng)論