DLX指令集結構課件_第1頁
DLX指令集結構課件_第2頁
DLX指令集結構課件_第3頁
DLX指令集結構課件_第4頁
DLX指令集結構課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DLX指令集結構DLX是一種多元未飽和型指令集結構。DLX指令集結構的設計思想:具有一個簡單的Load/Store指令集;注重指令流水效率;簡化指令的解碼;高效支持編譯器。

2.6.1DLX指令集結構1.DLX中的寄存器

(1)32個通用寄存器

命名:R0、R1、

、R31

長度:32位寄存器R0的值總是為0。

(2)32個浮點寄存器

命名:F0、F1、

、F31

長度:32位

(用來保存32位的單精確度浮點數(shù)

)◆

64位雙精度浮點數(shù)相鄰兩個浮點寄存器奇偶對FiFi+1

(i=0,2,4,

,30)

命名:F0、F2、

、F28、F30

(3)一些特殊的寄存器(比如用來保存浮點操作結果資訊的浮點狀態(tài)寄存器)可以和通用寄存器相互進行數(shù)據(jù)傳送。2.DLX的數(shù)據(jù)類型

DLX提供了多種長度的整型數(shù)據(jù)和浮點數(shù)據(jù)。

(1)

整型數(shù)據(jù)有8位、16位和32位多種長度。

(當8位和16位整型數(shù)據(jù)載入到寄存器中時,

用0或數(shù)據(jù)的符號位來填充32位通用寄存器

中的剩餘位。)(2)

浮點數(shù)據(jù)有32位單精確度浮點數(shù)和64位雙精度浮點數(shù)。浮點數(shù)據(jù)表示採用的是IEEE754標準。3.DLX的尋址方式和數(shù)據(jù)傳送

(1)

尋址方式寄存器尋址立即值尋址偏移尋址寄存器間接尋址

(2)寄存器尋址字段的大小為5位,用來表示32個

通用寄存器或浮點寄存器。

(3)記憶體地址採用的是高端位元組表示順序,存儲器按位元組尋址,其地址寬度為32位。4.DLX的指令格式

尋址方式編碼在操作碼中。

指令的字長32位,其中用6位表示操作碼。(4)通過寄存器(通用寄存器和浮點寄存器)和存

儲器之間的數(shù)據(jù)傳送操作完成對存儲器的訪問。各種類型指令的格式5.DLX中的操作

(1)四種類型的操作

Load和Store操作

ALU操作分支和跳轉操作浮點操作(2)約定

(1)符號“

”:

數(shù)據(jù)傳送操作其後附帶一個下標n,也即“

n”表示傳送

一個n位數(shù)據(jù)。

(2)符號“##”:

兩個域的串聯(lián)操作(3)域的下標:表明從該域中選擇某一位。域中位的標記是從最高位開始標記,並且

起始標記為0。下標可以是一個單獨的數(shù)字。如Regs[R4]0

:選擇寄存器R4中內容的符號位。下標也可以是一個範圍。如Regs[R3]24..31

:選擇寄存器R3中內容

的最低一個位元組。(4)上標:表示複製一個域。如024可以得到一個24位全為0的一個域。(5)變數(shù)Mem:表示記憶體中的一個數(shù)組,

記憶體按照位元組尋址。舉例

R8和R10:32位寄存器Regs[R10]16..31

16(Mem[Regs[R8]]0)8##Mem[Regs[R8]]的含義。3.DLX中的四種操作類型

(1)Load和Store操作指令實例指令名稱含義LWR1,30(R2)載入整型字Regs[R1]←32Mem[30+Regs[R2]]LWR1,1000(R0)載入整型字Regs[R1]←32Mem[1000+0]LBR1,40(R3)載入位元組Regs[R1]←32(Mem[40+Regs[R3]]0)24##Mem[40+Regs[R3]]LBUR1,40(R3)載入無符號位元組Regs[R1]←32024##Mem[40+Regs[R3]]LHR1,40(R3)載入整型半字Regs[R1]←32(Mem[40+Regs[R3]]0)16##Mem[40+Regs[R3]]##Mem[41+Regs[R3]]LFF0,50(R3)載入單精確度浮點Regs[F0]←32Mem[50+Regs[R3]]LDF0,50(R2)載入雙精度浮點Regs[F0]##Regs[F1]←64Mem[50+Regs[R2]]SW500(R4),R3儲存整型字Mem[500+Regs[R4]]←32Regs[R3]SF40(R3),F0儲存單精確度浮點Mem[40+Regs[R3]]←32Regs[F0]SD40(R3),F0儲存雙精度浮點Mem[40+Regs[R3]]←32Regs[F0]Mem[44+Regs[R3]]←32Regs[F1]SH502(R2),R31儲存整型半字Mem[502+Regs[R2]]←16Regs[R31]16..31SB41(R3),R2儲存整型位元組Mem[41+Regs[R3]]←8Regs[R2]24..31DLX中Load和Store指令實例(2)ALU操作簡單的算術和邏輯運算寄存器比較指令(

,

,

)指令實例指令名稱

含義AddR1,R2,R3加Regs[R1]←Regs[R2]+Regs[R3]ADDIR1,R2,#3和立即值相加Regs[R1]←Regs[R2]+3LHIR1,#42載入高位立即值Regs[R1]←42##016SLLIR1,R2,#5邏輯左移的立即值形式Regs[R1]←Regs[R2]<<5SLTR1,R2,R3設置小於if(Regs[R2]<Regs[R3])Regs[R1]←1elseRegs[R1]←0ALU指令實例

(3)分支和跳轉操作

◆根據(jù)描述目標地址的方法和是否鏈接可以將

跳轉操作指令分為四種類型。 其中:

兩種類型的跳轉指令用帶符號位的26位偏移量加上程式計數(shù)器的值來確定跳轉的目標地址;另外兩種類型的跳轉指令則指定一個寄

存器,由寄存器中的內容決定跳轉的目

標地址?!?/p>

跳轉有兩種類型

簡單跳轉

跳轉並鏈接(用於過程調用)返回一個地址,也即將下一條順序指令

地址(返回地址)保存在寄存器R31中?!?/p>

所有分支指令均是條件分支指令。分支目標地址由一個帶符號的26位偏移量加

上程式計數(shù)器的值來確定。指令實例指令名稱含義Jname跳轉PC←name;((PC+4)-225)≤name≤((PC+4)+225)JALname跳轉並鏈接Regs[R31]←PC+4;PC←name;((PC+4)-225)≤name≤((PC+4)+225)JALRR2寄存器型跳轉並鏈接Regs[R31]←PC+4;PC←Regs[R2];JRR3寄存器型跳轉PC←Regs[R3];BEQZR4,name“等於0”分支if(Regs[R4]==0)PC←name;((PC+4)-215)≤name≤((PC+4)+215)BNEZR4,name“不等於0”分支if(Regs[R4]!=0)PC←name;((PC+4)-215)≤name≤((PC+4)+215)典型的分支和跳轉指令

(4)浮點操作浮點操作:加、減、乘、除。(尾碼D:雙精度浮點操作尾碼F:單精確度浮點操作)

下表列出了DLX所有指令及其含義。

各種指令使用頻率測試統(tǒng)計結果。(SPECint92和SPECfp92基準程式)DLX中的所有指令及其含義指令類型操作碼含義

數(shù)據(jù)傳送LB,LBU,SB載入位元組,載入無符號位元組,儲存位元組LH,LHU,SH載入半字,載入無符號半字,儲存半字LW,SW載入字,儲存字LF,LD,SF,SD載入單精確度浮點,載入雙精度浮點,儲存單精確度浮點,儲存雙精度浮點MOVI2S,MOVS2I將通用寄存器中的內容移入特殊寄存器,將特殊寄存器中的內容移入通用寄存器MOVF,MOVD將一個單精確度/雙精度浮點寄存器的內容拷貝到另一個單精確度/雙精度浮點寄存器MOVFP2I,MOVI2FP將32位浮點寄存器中的內容移入整型寄存器,將32位整型寄存器中的內容移入浮點寄存器指令類型操作碼含義

算術/邏輯ADD,ADDI,ADDU,ADDUI帶符號加,帶符號立即值加,無符號加,無符號立即值加SUB,SUBI,SUBU,SUBUI帶符號減,帶符號立即值減,無符號減,無符號立即值減MULT,MULTU,DIV,DIVU帶符號乘,無符號乘,帶符號除,無符號除AND,ANDI與,和立即值與OR,ORI,XOR,XORI或,和立即值或,異或,和立即值異或LHI載入高位立即值SLL,SRL,SRA,SLLI,SRLI,SRAI包含了立即值(S_I)和變數(shù)(S_)的移位操作,移位有:邏輯左移,邏輯右移和算術右移S_,S_I設置條件,“_”可以是LT,GT,LE,GE,EQ,NE指令類型操作碼含義

制BEQZ,BNEZ根據(jù)指定通用寄存器的內容等於/不等於0分支BFPT,BFPF測試浮點狀態(tài)寄存器中的比較位為真/假進行分支J,JR跳轉,基於寄存器的跳轉JAL,JALR跳轉並鏈接,基於寄存器的跳轉並鏈接TRAP轉換到操作系統(tǒng)RFE從異常恢復用戶模式指令類型操作碼含義

點ADDD,ADDF雙精度浮點加,單精確度浮點加SUBD,SUBF雙精度浮點減,單精確度浮點減MULTD,MULTF雙精度浮點乘,單精確度浮點乘DIVD,DIVF雙精度浮點除,單精確度浮點除CVTF2D,CVTF2I,CVTD2F,CTD2I,CVTI2F,CVTI2D轉換指令,CVTx2y表示從類型x轉換到類型y,其中x和y可以是I(整型)、D(雙精度浮點)、F(單精確度浮點)_D,_F雙精度浮點和單精確度浮點比較,“_”可以是LT、GT、LE、GE、EQ、NE,根據(jù)比較結果設置浮點狀態(tài)寄存器中的位基於SPECint92基準程式集的指令使用頻率測量統(tǒng)計結果指令compresseqntottEspressogcc(cc1)li整型平均載入19.8%30.6%20.9%22.8%31.3%26%存儲5.6%0.6%5.1%14.3%16.7%9%加14.4%8.5%23.8%14.6%11.1%14%減1.8%0.3%

0.5%

0%乘

0.1%

0%除

0%比較15.4%26.5%8.3%12.4%5.4%13%載入立即值8.1%1.5%1.3%6.8%2.4%3%指令compresseqntottEspressogcc(cc1)li整型平均條件分支17.4%24.0%15.0%11.5%14.6%16%無條件分支1.5%0.9%0.5%1.3%1.8%1%調用0.1%0.5%0.4%1.1%3.1%1%返回,跳轉0.1%0.5%0.5%1.5%3.5%1%移位6.5%0.3%7.0%6.2%0.7%4%與2.1%0.1%9.4%1.6%2.1%3%或6.0%5.5%4.8%4.2%6.2%5%其他(異或,非)1.0%

2.0%0.5%0.1%1%指令compresseqntottEspressogcc(cc1)li整型平均載入浮點數(shù)

0%儲存浮點數(shù)

0%浮點加

0%浮點減

0%浮點乘

0%浮點除

0%浮點比較

0%浮點寄存器移動

0%其他浮點操作

0%基於SPECfp92基準程式集的指令使用頻率測量統(tǒng)計結果指令doducearhydro2dmdljdp2su2cor整型平均載入1.4%0.2%0.1%1.1%3.6%1%儲存1.3%0.1%

0.1%1.3%1%加13.6%13.6%10.9%4.7%9.7%11%減0.3%

0.2%

0.7%0%乘

0%除

0%比較3.2%3.1%1.2%0.3%1.3%2%載入立即值2.2%

0.2%2.2%0.9

溫馨提示

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

評論

0/150

提交評論