第二阶段:译码 31 25242091514121176 finct7 rs2 rs1 funct3 rd opcode R-type ·指令译码和寄存器读 imm(11:01 s1nc3 rd opcode☐Hyp rs1 funct3 imm(4:0]opcode S-type -将rs和rt送往A和B:A=Reg[IR[19-15],B=Reg[IR[24-20] ·计算beq目标地址 lorD MemRead MemWrite IRWrite RegWrite ALUSrcA PC Instruction Read 0 Address [19-15] register 1 M Read Instruction data 1 Memory Read [24-20] Zero register 2 MemData ●物 Instruction Registers ALU ALU ALUOut [11-7] Write result Read Write register data 2 M data Instruction u register Write 0 data Instruction [31-0] Memory Imm data Gen ALU register control Instruction [6-0] 12 MemtoReg ALUSrcB ALUOp
llxx@ustc.edu.cn 12 第二阶段:译码 • 指令译码和寄存器读 – 将rs和rt送往A和B:A=Reg[IR[19-15]], B=Reg[IR[24-20]] • 计算beq目标地址
第三阶段: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 -beq比较 需要的控制信号? Read Address 19-15 Read nstructon Memory [24-20 Read Zero MemData Registers ALU ALU Writ ALUOut 11-7 result Write register data Instruction register Write > data Instruction 310] Memory Im Gen ALU register control Instruction [6-0] MemtoReg ALUSrcB
13 第三阶段:R-type执行、访存地址计算 • 依赖于指令类型 – R-type指令 • ALUOut= A op B – 访存指令:计算访存地址 • ALUOut=A+(sign-extend(IR[Imm] ) – beq比较 • 需要的控制信号?