MIPS数据路径混乱
一直在学习mips数据路径,有几个问题MIPS数据路径混乱,mips,pipeline,Mips,Pipeline,一直在学习mips数据路径,有几个问题 为什么会有写回阶段? -想法:如果没有增加更多延迟或延长时钟周期,似乎可以将写回阶段中的mux移动到Mem阶段,移除Mem/写回缓冲区,并完全摆脱写回阶段。为什么不是这样 关于分支预测和暂停的混淆。 -想法:如果add指令跟随beq指令进入pipline(beq在ID阶段,add在fetch阶段),但执行了分支,那么add指令如何转换为no op?(设置了哪些控制信号,如何设置?) 级间缓冲区何时更新? 想法:我认为它们会在时钟周期结束时更新,但无法验证这
mem
阶段。例如,在指令中,
LW R1,8(R2)
由8(R2)
寻址的内存位置的内容将存储在MEM/WB缓冲区中。通过将内容复制到缓冲区,MEM stage现在可以接受另一条LW
指令,从而获得更多的ILPbeq$6,$7,label
,add$8,$9,$7
,sub$3,$4,$2
,label:mul
。对于未执行,执行顺序为add,beq,sub,mul
,对于执行的分支,执行顺序为add,beq,mul
。概念是,add
必须由inst-fetch单元预取[因为它运行“一个先行”],那么为什么要“浪费”它呢?