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

本文详细介绍了MIPS处理器的设计,包括MIPS指令的R型、I型和J型指令格式及其功能,以及数据通路的设计,如PC、NPC、寄存器文件RF、ALU等组件的功能和描述。重点讲解了单周期MIPS处理器的数据通路设计,展示了各种指令的执行流程和数据流走向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

【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

【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 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)

【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

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

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

【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.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)
jal address;
$ra = $PC+4(保存返回地址)
$ PC=($PC+4)H4 U (address<<2)
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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值