作者vul3865 (阿嘎)
看板Grad-ProbAsk
标题[理工] 107北科 计算机概论 clk计算
时间Mon Feb 17 12:59:41 2020
各位大大好:
想请教关於下题的一些讨论
题目:
https://imgur.com/OLtR6UK
https://imgur.com/oVIgjmQ
根据题目的叙述,题目提供predict-taken beq predictor with a btb
根据张凡计概书内的叙述,btb可以用来消除 1 clk 的惩罚
https://imgur.com/M6VfZdN
想请教在解这题时,btb会在哪个环节产生影响吗?
是代表消除掉 predict失败的1 clk吗?
或是其实btb消除的是其他地方的clk
也想请各位大大协助一下我是否过程还有没算到的部分
以下为小弟的推题过程
(题目)
行数 指令
1 add r1,r2,r3
2 lw r2, 0(r1)
3 beq r2,r1,Label
#not-taken
4 add r3 ,r2 ,r1
5 beq r2 ,r1 ,Label #taken
6 lw r2 0(r3)
7Label: lw r1,0(r2)
第一题:题目说beq在mem stage才决定,支持full forwarding
计算流程
1. 实际执行指令数为6行
完美执行clk数 = 6 + (5-1) = 10
2.Data Hazard判断
(1,2)行有DH,但可透过Forwarding解决
(1,3)行有DH,也可透过Forwarding解决
(2,3)行有load-use DH,需stall +Forwarding可解 >> +1clk
(3) 行beq predict taken 但是实际not taken
又因为beq在mem阶段才进行判读,beq之後会接着NOP/ NOP/ NOP 共3clk
发现判读错误後接续读取第5行继续执行
(4,5)无DH,不影响
(5)的beq,虽然predict成功,但因MEM阶段才判断,也需3 CLK
所以第一题为10 + 1 +3 +3 = 17 clk
第二题:BEQ 在 id stage 就决定
1.完美指令为10 clk
2.(2,3)行的hazard因id stage关系,变成需2clk
3.(3)的beq, predict taken but fail >>1 clk惩罚
4. predict正确 无影响
故第二题推论为10 +1 +2 = 13 clk
以上,再麻烦各位大大指点 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.177.36.24 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1581915585.A.A54.html
1F:→ zuchang: BTB应该是配合ID跳 如果在EXE才算出target addr 那在哪跳 02/18 13:51
2F:→ zuchang: 都至少要在EXE才知道target addr在哪 02/18 13:53
3F:→ DLHZ: btb会在fetch阶段被存取 decode阶段确定 在decode确定这个指 02/18 16:16
4F:→ DLHZ: 令是branch後 再来用先前的结果预测最後的结果 02/18 16:17
5F:→ DLHZ: 计算应该没什麽问题 02/18 16:27
6F:→ vul3865: 那这样的话就不会再增加clk了 感谢大大们的详细回答! 02/18 22:16