数字系统设计实践——MIPS基本指令 下载本文

MIPS基本指令和寻址方式:

MIPS是典型的RISC处理器,采用32位定长指令字,操作码字段也是固定长度,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。

MIPS指令格式一般有三种格式: R-型指令格式 I-型指令格式 J-型指令格式

R_Type 指指指指312621161160OP6bitrs5bitrt5bitrd5bitshamt5bitfunc6bit

OP: 操作码

rs: 第一个源操作数寄存器

rt: 第二个源操作数寄存器(单目原数据) rd: 结果寄存器 shamt:移位指令的位移量 func: 指令的具体操作类型

特点:R-型指令是RR型指令,其操作码OP字段是特定的“000000”,具体操作类型由func

字段给定。例如:func=“100000”时,表示“加法”运算。

R[rd] ← R[rs] + R[rt]

I_Type 指指指指31262116150OP6bitrs5bitrt5bitimmediate16bit

特点:I-型指令是立即数型指令

双目运算: R[rt] ? R[rs](OP)SignExt(imm16) Load指令:

Addr ← R[rs] + SignExt(imm16) 计算数据地址 (立即数要进行符号扩展) R[rt] ← M[Addr] 从存储器中取出数据,装入到寄存器中

Store指令:

Addr ← R[rs] + SignExt(imm16) M[Addr] ← R[rt]

J_Type 指令格式3126250OP6bittarget address26bit

特点:J-型指令主要是无条件跳转指令,将当前PC的高4位拼上26位立即数,后补两个“0”,

作为跳转目标地址。

2target addressj L //goto L 指指指指指指指指指3target addressjal L //$ra指PC+4;goto L 指指指指指指指指指

R型指令:

定点运算: add / addu, sub / subu, sra, mult/multu, div/divu 逻辑运算: and / or / nor, sll / srl 比较分支: beq / bne / slt / sltu 跳转指令: jr

I型指令:

定点运算: addi / addiu 逻辑运算: andi / ori 比较分支: slti / sltiu

数据传送: lw / sw/ lhu / sh / lbu / sb / lui

J型指令: j / jal

设计模块划分,教学安排

Alu_ctrlmoduleMain_ctrlmoduleInstruction Fetch Unitmoduleaddrdatadatacore_registersmoduleALU unitmoduleImm16 unitmoduledataaddrExt_memory

1、 MIPS格式指令系统设计 2、 指令存储器设计 3、 寄存器堆设计

4、 ALU设计——基本算术、逻辑单元的设计

32位超前进位加法器的设计 32位桶式移位寄存器的设计

5、 取指令部件的设计 6、 立即数处理单元设计

7、 单周期处理器设计——R型指令的数据通路设计

I型指令的数据通路设计 Load/Store指令的数据通路设计 分支指令/转移指令的数据通路设计 综合12条指令的完整数据通路设计

8、 ALU控制单元设计 9、 主控制单元的设计 10、 单周期处理器总体验证 11、 异常和中断处理及其电路实现

12、 带有异常和中断处理功能的处理器的设计