当前位置:   article > 正文

单周期MIPS CPU(处理器)的设计_单周期mips cpu设计

单周期mips cpu设计

MIPS CPU(处理器)的设计

一、MIPS指令

1.指令格式
1.1 R型指令

(1)R型指令格式

000000 (op) Rs Rt Rd shamt funct
6bits 5bits 5bits 5bits 5bits 6bits

注意: 该类型指令操作数和保存结果均通过寄存器进行

操作 含义
op 操作码,所有R型指令都全为0
rs 寄存器编号,对应第一个源操作数
rt 寄存器编号,对应第二个源操作数
rd 寄存器编号,保存结果
shamt 常数,在移位指令中使用
funct 功能码,指定指令的具体功能

(2)具体R型指令
注意: R型指令根据操作的寄存器数可以分为三种不同类型。

【1】带有3个寄存器

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 11] [10 : 6] [5 : 0] 指令功能
add 000000 rs rt rd 00000 100000 寄存器加
sub 000000 rs rt rd 00000 100010 寄存器减
and 000000 rs rt rd 00000 100100 寄存器与
or 000000 rs rt rd 00000 100101 寄存器或
xor 000000 rs rt rd 00000 100110 寄存器异或
	$rd = $rs op $rt
  • 1

【2】带有2个寄存器

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 11] [10 : 6] [5 : 0] 指令功能
sll 000000 00000 rt rd sa 100000 逻辑左移
srl 000000 00000 rt rd sa 000010 逻辑右移
sll 000000 00000 rt rd sa 000011 算术右移
	$rd = $rt shift sa
  • 1

【3】带有1个寄存器

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 11] [10 : 6] [5 : 0] 指令功能
jr 000000 rs 00000 00000 00000 001000 寄存器跳转
	jr rs;
	PC = rs
  • 1
  • 2
1.2 I型指令

(1)I型指令格式

OP Rs Rt imm(立即数)
6bits 5bits 5bits 16bits

注意: 操作数中涉及立即数,结果保存到寄存器

操作 含义
op 标识指令的操作功能
rs 第一个源操作数,是寄存器操作数
rt 目的寄存器编号,用来保存运算结果
imm 第二个源操作数,立即数

(2)具体I型指令
注意: I型指令存在4种不同的类型

【1】面向运算的I型指令

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 0] 指令功能
addi 001000 rs rt imm 寄存器和立即数“加”
andi 001100 rs rt imm 寄存器和立即数“
ori 001101 rs rt imm 寄存器和立即数“或”
xori 001110 rs rt imm 寄存器和立即数“异或”
第一条指令是对立即数进行符号拓展,其他都是0拓展
addi rt, rs, imm;
$rt = $rs op E(imm)
  • 1
  • 2
  • 3

【2】面向访存的I型指令

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 0] 指令功能
lw 100011 rs rt imm 从存储器种读取数据
sw 101011 rs rt imm 把数据保存到存储器
MIPS 32中唯一两条访问存储器的指令(RISC)
lw rt, imm(rs) #rt = mem [ rt = mem[rt=mem[rs+E(imm)]
sw rt, imm(rs) #mem [ mem[mem[rs+E(imm)] = $rt
  • 1
  • 2
  • 3

【3】面向数位设置的I型指令

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 0] 指令功能
lui 001111 00000 rt imm 设置寄存器的高16位
lui rt, imm #$rt = imm<<16(空位补0)
  • 1

【4】面向条件转移(分支)的I型指令

指令 [31 : 26] [25 : 21] [20 : 16] [15 : 0] 指令功能
beq 000100 rs rt imm 寄存器相等则转移
bne 000101 rs rt imm 寄存器不相等则转移
beq rs, rt, imm #if(rs = = rt) PC=PC+E(imm)<<2
bne rs, rt, imm #if(rs ! = rt) PC=PC+E(imm)<<2
标准的PC相对寻址方式
  • 1
  • 2
  • 3
1.3 J型指令

(1)J型指令格式

OP 立即数
6bits 26bits

(2)具体J型指令

指令 [31 : 26] [25 : 0] 指令功能
j 000010 address 无条件跳转
jal 001100 address 调用与联接
j address;
$ PC=($PC+4)H4 U (address<<2)
  • 1
  • 2
jal address;
$ra = $PC+4(保存返回地址)
$ PC=($PC+4)H4 U (address<<2)
  • 1
  • 2
  • 3
2.指令功能

MIPS 指令集(共31条)

助记符 指令格式 示例 示例含义 操作及其解释
Bit # 31…26 25…21 20…16 15…11 10…6 5…0
R-type op rs rt rd shamt func
add 000000 rs rt rd 00000 100000 add $1,$2,$3 $1=$2+$3 rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1
addu 000000 rs rt rd 00000 100001
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号