memory复用:IF/MM,IR=MDR? Data Instruction Register# PC Address Instruction ALUOut Address register Registers Instruction Register# Memory memory Data Register# memory data register Data Instruction register PC Address Data Instruction Register ALU● ALUOut Memory or data Registers Register Memory Data data Register register FIGURE e4.5.1,The high-level view
memory复用:IF/MM,IR=MDR? FIGURE e4.5.1,The high-level view
ALU复用:PC+1/EX/beq FIGURE e4.5.6 Action for R-type Action for memory Action for Step name instructions reference Instructions branches Instruction fetch IR <Memory[PC] Add. PC <=PC+4 Instruction decode/register fetch A<=Reg [IR[19:15]] B<=Reg [IR[24:20]] ALUOut <PC immediate Data Execution,address computation, ALUOut <A op B ALUOut <=A+immediate if (A==B) Register# branch/jump completion PC <ALUOut PC Address Instruction Registers ALU Address Register# Memory access or R-type Reg[1R11:7】<= Load:MDR <MemoryfALUOut] Data Instruction completion ALUOut or memory Register memory Store:Memory [ALUOut]<B Data Memory read completion Load:Reg[IR[11:7]]<=MDR Instruction register PC Address Data Instruction Register Memory or data Registers ALU ALUOut Register Memory Data data Register register
ALU复用:PC+1/EX/beq FIGURE e4.5.6
funct7 rs2 rs1 funct3 rd opcode R-type 多周期数据通路 immediate[11:0] rs1 funct3 rd opcode Itype mmed[11:5] rs2 rs1 funct3 immed[4:0] opcode S-type immed12,10:5] rs2 rs1 funct3 immed[4:1,11] opcode B-type 取指 lw/sw PC+4 PC 0 M Instruction Read 0 U Address [19-15] register 1 M X Read u 1 Instruction data 1 Memory Read [24-20] 1 Zero register 2 MemData Instruction Registers ALU ALU ALUOut [11-7刀 Writ Read result Write register data 2 B 0 data Instruction 1 M register Write u 0 data Instruction M [31-0] X 1 Memory Imm data Gen register beq SW I-type/lw/sw FIGURE e4.5.2 llxx@ustc.edu.cn 9
llxx@ustc.edu.cn 9 多周期数据通路 取指 lw/sw PC+4 I-type/lw/sw beq sw FIGURE e4.5.2
funct7 rs2 rs1 funct3 rd opcode R-type 多周期控制信号 immediate[11:0] rs1 funct3 rd opcode I-type immed(11:5] rs2 rs1 funct3 immed[4:0] opcode S-type immed12,10:5] rs2 rs1 funct3 immed[4:1,11] opcode B-type lorD MemRead MemWrite IRWrite RegWrite ALUSrcA PC 0 0 M Instruction Read Address [19-15] register 1 M X Read A Instruction Memory Read data 1 [24-20] Zero register 2 MemData Instruction Registers ALU ALU ALUOut [11-7刀 Write Read result Write register data 2 B M data Instruction u register o Write data Instruction M [31-0] 1 Memory Imm data Gen ALU register control Instruction [6-0] FIGURE e4.5.3 MemtoReg ALUSrcB ALUOp llxx@ustc.edu.cn 10
llxx@ustc.edu.cn 10 多周期控制信号 FIGURE e4.5.3
第一阶段:取指 根据PC从MEM中取指,IR=MEM[PC] 计算NPC,PC=PC+4 控制信号:lorD,MemRead,IRWrite;ALUSrcA,ALUSrcB ALUOp,PCWrite orD MemRead MemWrite IRWrite RegWrite ALUSrcA PC 0 Instruction Read Address [19-15 register 1 Read Instruction Read data 1 Memory [24-20] 1 Zero register 2 MemData Instruction Registers ALU ALU ALUOut [11-7刀 Write result Read Write register data 2 M data Instruction register Write data 2 Instruction [31-0 PC“后写”? Memory Imm data Gen ALU register control Instruction [6-0] MemtoReg ALUSrcB ALUOp
11 第一阶段:取指 • 根据PC从MEM中取指,IR=MEM[PC] • 计算NPC,PC=PC+4 • 控制信号:IorD, MemRead, IRWrite;ALUSrcA, ALUSrcB, ALUOp, PCWrite PC“后写”?