DLX指令集结构课件.ppt
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位的單精確度浮點數)
◆64位雙精度浮點數相鄰兩個浮點寄存器奇偶對FiFi+1(i=0,2,4,?,30)命名:F0、F2、?、F28、F30(3)一些特殊的寄存器(比如用來保存浮點操作結果資訊的浮點狀態寄存器)可以和通用寄存器相互進行數據傳送。
2.DLX的數據類型DLX提供了多種長度的整型數據和浮點數據。(1)??整型數據有8位、16位和32位多種長度。(當8位和16位整型數據載入到寄存器中時,
用0或數據的符號位來填充32位通用寄存器
中的剩餘位。)(2)??浮點數據有32位單精確度浮點數和64位雙精度浮點數。浮點數據表示採用的是IEEE754標準。
3.DLX的尋址方式和數據傳送(1)?尋址方式寄存器尋址立即值尋址偏移尋址寄存器間接尋址(2)寄存器尋址字段的大小為5位,用來表示32個
通用寄存器或浮点寄存器。(3)記憶體地址採用的是高端位元組表示順序,存儲器按位元組尋址,其地址寬度為32位。
4.DLX的指令格式◆尋址方式編碼在操作碼中。◆指令的字長32位,其中用6位表示操作碼。(4)通過寄存器(通用寄存器和浮點寄存器)和存
储器之间的数据传送操作完成对存储器的访问。
各種類型指令的格式
5.DLX中的操作(1)四種類型的操作Load和Store操作ALU操作分支和跳轉操作浮點操作(2)約定(1)符號“?”:數據傳送操作其後附帶一個下標n,也即“?n”表示傳送
一個n位數據。(2)符號“##”:兩個域的串聯操作
(3)域的下標:表明從該域中選擇某一位。域中位的標記是從最高位開始標記,並且
起始標記為0。下標可以是一個單獨的數字。如Regs[R4]0:選擇寄存器R4中內容的符號位。下標也可以是一個範圍。如Regs[R3]24..31:選擇寄存器R3中內容
的最低一個位元組。(4)上標:表示複製一個域。如024可以得到一個24位全為0的一個域。
(5)變數Mem:表示記憶體中的一個數組,
記憶體按照位元組尋址。举例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]