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、 带有异常和中断处理功能的处理器的设计