Professional Documents
Culture Documents
M I P S Reference Data r
ARITHMETIC CORE INSTRUCTION SET OPCODE / FMT /FT
ht
/ FUNCT (Hex)
e
4
a
a
p
Add Imm. Unsigned addiu I R[rt] = R[rs] + SignExtImm (2) 9hex Or or R R[rd] = R[rs] | R[rt] 0 / 25hex
s
m
Add Unsigned addu R R[rd] = R[rs] + R[rt] 0 / 21hex n
o
Or Immediate ori I R[rt] = R[rs] | ZeroExtImm (3) dhex
And and R R[rd] = R[rs] & R[rt] 0 / 24hex
i
c
a
( o
f
Set Less Than Imm. slti I R[rt] = (R[rs] < SignExtImm)? 1 : 0 (2) ahex
r
PC=PC+4+BranchAddr (4) 4hex FP Add Single add.s FR F[fd ]= F[fs] + F[ft] 11/10/--/0 FP Add
FR
d
Double add.d
s
{F[fd],F[fd+1]} = {F[fs],F[fs+1]} +
{F[ft],F[ft+1]} 11/11/--/0
Branch On Not Equal bne I if(R[rs]!=R[rt]) FP Compare Single c.x.s* FR FPcond = (F[fs] op F[ft]) ? 1 : 0 11/10/--/y FP
Compare
m
{F[ft],F[ft+1]}) ? 1 : 0 11/11/--/y
* (x is eq, lt, or le) (op is ==, <, or <=) ( y is 32, 3c, or 3e)
b
l
Double div.d {F[fd],F[fd+1]} = {F[fs],F[fs+1]} /
o
Jump Register jr R PC=R[rs] 0 / 08hex {F[ft],F[ft+1]} 11/11/--/3
F FP Multiply Single mul.s FR F[fd] = F[fs] * F[ft] 11/10/--/2 FP Multiply
FR
. Double mul.d {F[fd],F[fd+1]} = {F[fs],F[fs+1]} *
Load Byte Unsigned lbu I R[rt]={24’b0,M[R[rs]
{F[ft],F[ft+1]} 11/11/--/2
+SignExtImm](7:0)} (2) 24hex FP Subtract Single sub.s FR F[fd]=F[fs] - F[ft] 11/10/--/1 FP Subtract
FR
2
r
+SignExtImm](15:0)} (2) 25hex Double ldc1 F[rt]=M[R[rs]+SignExtImm]; (2)
a
F[rt+1]=M[R[rs]+SignExtImm+4] 35/--/--/--
c
a
Load Upper Imm. lui I R[rt] = {imm, 16’b0} fhex Store FP Single swc1 I M[R[rs]+SignExtImm] = F[rt] (2) 39/--/--/-- Store FP
r
I d
(2) SignExtImm = { 16{immediate[15]}, immediate }
Double sdc1 M[R[rs]+SignExtImm] = F[rt]; (2) r
a
(3) ZeroExtImm = { 16{1b’0}, immediate }
M[R[rs]+SignExtImm+4] = F[rt+1] 3d/--/--/--
(4) BranchAddr = { 14{immediate[15]}, immediate, 2’b0 }
FLOATING-POINT INSTRUCTION FORMATS
C
I
Unsigned sltiu R[rt] = (R[rs] < SignExtImm) (5) JumpAddr = { PC+4[31:28], address, 2’b0 }
a
FR
t
? 1 : 0 (2,6) bhex
a
D
(7) Atomic test&set pair; R[rt] = 1 if pair atomic, 0 if not atomic
g
Set Less Than Unsig. sltu R R[rd] = (R[rs] < R[rt]) ? 1 : 0 (6) 0 / 2bhex
o
c
BASIC INSTRUCTION FORMATS
n
R
l
31 26 25 21 20 16 15 11 10 6 5 0 f
PSEUDOINSTRUCTION SET
opcode fmt ft fs fd funct
NAME MNEMONIC OPERATION
Branch Less Than blt if(R[rs]<R[rt]) PC = Label Branch Greater Than
bgt if(R[rs]>R[rt]) PC = Label Branch Less Than or Equal ble
if(R[rs]<=R[rt]) PC = Label Branch Greater Than or Equal bge
if(R[rs]>=R[rt]) PC = Label Load Immediate li R[rd] = immediate
31 26 25 21 20 16 15 11 10 6 5 0 Move move R[rd] = R[rs]
opcode fmt ft immediate REGISTER NAME, NUMBER, USE, CALL CONVENTION
1
R[rt](7:0) (2) 28hex and Expression Evaluation No
Store Word sw I M[R[rs]+SignExtImm] = R[rt] (2) 2bhex $gp 28 Global Pointer Yes
n
R S
PI
I J
31 26 25 21 20 16 15 0 31 26 25 0
Copyright 2009 by Elsevier, Inc., All rights reserved. From Patterson and Hennessy, Computer Organization and Design,
4th ed. M
3
OPCODES, BASE CONVERSION,
ASCII SYMBOLS
IEEE 754 FLOATING-POINT
STANDARD
4
IEEE 754 Symbols
re
01 0100 20 14 DC401
0101 21 15 NAK01
0110 22 16 SYN01
0111 23 17 ETB
01 1100 28 1c FS01
1101 29 1d GS01 1110
30 1e RS01 1111 31 1f
US
lb add cvt.s.f lh 10 0000 32 20 Space10 sc c.sf.f swc1 11 1000 56 38 811 1 to MAX - any
addu cvt.d.f lwl sub 0001 33 21 !10 0010 34.f swc2 c.seq.f
c.ngle 1001 57 39 911 1010 1 in
lw subu 22 "10 0011 35 23 # c.ngl.f 58 3a :11 1011 59
3b ;
MAX 0
10 0100 36 24 $10 c.lt.f 11 1100 60 3c <11
lbu and cvt.w.f lhu 1101 61 3d =11 1110
or sdc1 c.nge.f sdc2
0101 37 25 %10 0110
38 26 &10 0111 39 27 c.le.f c.ngt.f 62 3e >11 1111 63 3f
lwr xor MAX
’ ? ≠0
nor
sb 10 1000 40 28 (10
sh 1001 41 29 )10 1010
swl slt 42 2a *10 1011 43 2b
sw sltu + (Exponent - Bias)
(-1)S ⋅ (1 + Fraction) ⋅ 2 S.P. MAX = 255, D.P. MAX = 2047
ht
46 2e .10 1111 47
2f / IEEE Single Precision and
)
c.ueq.f 3 n
S Exponent Fraction
31 30 23 22 0 m
Exponent Fraction
S lo
63 62 52 51 0 c
STACK FRAME
Higher ...
di
dr
$gp 1000 8000hex 1000 pc 0040 0000hex 0hex Reserved Saved Registers Local Lower a
Memory Addresses
c
Variables o
t
e
t
a
o r
a
b
Addresses
dl
p
Argument 6
Text Argument 5 Stack .
Grows 2
(1) opcode(31:26) == 0 EXCEPTION CODES
)
fmt(25:21)==17ten (11hex) f = d (double) Number Name Cause of Exception Number Name Cause of Exception
Double Word
0 Int Interrupt (hardware) 9 Bp Breakpoint Exception
Word Word
4 AdEL Address Error Exception 10 RI Reserved Instruction
Halfword Halfword Halfword Halfword (load or instruction Exception
fetch)
Byte Byt Byt Byt Byt Byte Byte Byte
e e e e 5 AdES Address Error Exception 11 CpU Coprocessor
(store) Unimpleme
nted
13 Tr Trap
n
7 DBE Bus Error on Load
o or Store
i
B Interrupt Exception
Mask Code n
D
e
r
l
31 15 8 6 2
a
a
Pending U E I
Interrupt SIZE PREFIXES (10x for Disk, Communication; 2x for Memory)
M L E
t
3 10 15 50 -3 -15
10 , 2 Kilo- 10 , 2 Peta- 10 milli- 10 femto
u
15 8 4 1 0 106, 220 Mega- 1018, 260 Exa- 10-6 micro- 10-18 atto
.
1012, 240 Tera- 1024, 280 Yotta- 10-12 pico- 10-24 yocto
D
e
r
The symbol for each prefix is just its first letter, except μ is used for micro.
e
S
Copyright 2009 by Elsevier, Inc., All rights reserved. From Patterson and Hennessy, Computer Organization and Design, 4th ed. M