※ 引述《qoojordon (颖川琦)》之铭言:
: Q1:
: lw = 400+200+(40+120)+350+(40+200)=1350
: 想问ID stage 不用加上Sign-Ext的延迟是因为线路同时跑 Reg File 和 Sign-Ext ,
: 因为前者时间长所以不用考虑后者 ?
lw指令只要比较rs、rt和16-bit constant三者的资料路径
需要跑完资料流花掉最长时间者即为lw指令的cycle time
rs:IM(400) + Reg(200) + ALU(120) + DM(350) + MUX(40) + Reg(200) = 1310
rt:IM(400) + MUX(40) + Reg(200) = 640
16-bit constant:IM(400) + SE(20) + MUX(40) + ALU(120) + DM(350) + MUX(40)
+ Reg(200) = 1170
所以lw指令的cycle time为1310 ps
此题答案有误
: Q1-1:
: 如果是的话 , 同理 , 在beq的 EX stage也有相同状况 ?
: beq = 400+200+40+120+40 = 800
beq也是一样要比较rs、rt和memory address(有时候题目会直接写成16-bit constant)
三者的资料路径
rs:IM(400) + Reg(200) + ALU(120) = 720
rt:IM(400) + MUX(40) + Reg(200) + MUX(40) + ALU(120) = 800
ma:Adder(100) + Adder(100) + MUX(40) = 240
所以beq指令的cycle time为800 ps
: (sll 2 和 分支位址加法)与(ALUSrc 和 ALU)同时跑取延迟大者 ?
: [交大100 计组非选5(a)]
: 题目截图 http://ppt.cc/0UL2
: 1 lw $t2,4($t0) 为啥一样是load use , I1,I3有data hazard
: 2 lw $t3,4($t1) 可是 I2,I4没有 ?
: 3 or $t3,$t2,$t3
: 4 add $t4,$t2,$t3
add指令的$3虽然跟lw与or指令有data dependency
但实际上会造成hazard的只有or跟add指令
因为add指令要用的$3是or的运算结果而非lw的运算结果
所以lw指令与add指令不会有hazard
: .
: . 以下略
: .
: 谢谢大家看完 , 再请大家指导惹