期設計概念就是藉由刪除需要interlock的指令,讓整個instruction pipeline可以加快速度。
雖然後期卻又還是加上了一些會interlock的instruction,但是整體架構已經很optimize的,據說這是第一個RISC Processor,很都設計都為其他processor (無論是CISC或RISC)所採用。
MIPS的指令很少,分為三種Type:
- R : 3 register,1 function field.
- I : 2 register,16bit immediate value.
- J : 6 bit opcode,26 bit immediate value.
運算指令
- add $1, $2, $3; $1 = $2 + $3 (signed)
- addu $1, $2, $3; $1 = $2 + $3 (unsigned)
- sub $1, $2, $3; $1 = $2 - $3 (signed)
- subu $1, $2, $3; $1 = $2 - $3 (unsigned)
- addi $1, $2, 13; $1 = $2 + 13 (immediate)
- lw $1, 100( $2 ); 把位址 $2 + 100的word資料搬到$1
- st $1, 100( $2 ); 把$1的word資料放到位址 $2 + 100的地方
- beq $1, $2, 100; if $1==$2 goto PC + 4 + 100
- slt $1, $2, $3 ; if ($2<$3) $1 = 1 ; else $1=0
- j 10000 ; goto 10000
- jal 10000 ; $31= PC + 4 and goto 10000
- lui $1, 100 ; load the immediate into the upper 16bit
R0的內容固定是0 (是constant) zero
R1是assembler的temp $at
R2, R3是subroutine的return value $v0, $v1
R4- R7 subroutine的參數 $a0- $a3
R8- R15 Temperory,呼叫function後摧毀, $t0 - $t7
R16 - R23 Saved,呼叫function後依然不變, $s0 - $s7
R24, R25 Temporary $t8, $t9
R26, R27 kernel (OS)用 $k0, $k1
R28 Global pointer $gp
R29 Stack Pointer $sp
R30 Frame Pointer $fp
R31 Return Address $ra (在某些instruction中使用)
R
沒有留言:
張貼留言