第二阶段:译码 ·指令译码和读寄存器 -将rs和rt送往A和B:A=Reg[IR[19-15],B=Reg[IR[24-20] 控制信号:无? lorD MemRead MemWrite IRWrite RegWrite ALUSrcA PC MU Instruction Read 0 Address [19-15] register 1 M Read Instruction Read data 1 Memory [24-201 Zero register 2 MemData Instruction Registers ALU ALU ALUOut [11-7] Write result register Read Write data 2 M data Instruction u register Write 0 data Instruction [31-0] Memory Imm data Gen ALU register control Instruction [6-0] 11 MemtoReg ALUSrcB ALUOp
llxx@ustc.edu.cn 11 第二阶段:译码 • 指令译码和读寄存器 – 将rs和rt送往A和B:A=Reg[IR[19-15]], B=Reg[IR[24-20]] • 控制信号:无?
第三阶段:R-type执行、访存地址计算 ·依赖于指令类型 funct7 rs2 rs1 funct3 rd opcode R-type immediate[11:0] rs1 funct3 rd opcode I-type -R-type指令 immed(11:5] rs2 rs1 funct3 immed[4:0] opcode S-type immed[12,10:5] rs2 rs1 funct3 immed[4:1.11] opcode B-type ·ALUOut=-AopB 一访存指令:计算访存地址 ALUOut=A+(sign-extend(IR[lmm]) orD MemRead MemWrite IRWrite RegWnite ALUSrcA ·需要的控制信号? Read 山X Address 19-15 Read nstructon Memory [24-201 Read Zero MemData Registers ALU ALU Writ ALUOut 11-7刀 result Write register data Instruction register Write data Instruction 31-01 Memory Im Gen ALU register control Instruction [6-0] MemtoReg ALUSrcB ALUOp
12 第三阶段:R-type执行、访存地址计算 • 依赖于指令类型 – R-type指令 • ALUOut= A op B – 访存指令:计算访存地址 • ALUOut=A+(sign-extend(IR[Imm] ) • 需要的控制信号?