[理工] 107北科 計算機概論 clk計算

看板Grad-ProbAsk作者 (阿嘎)時間4年前 (2020/02/17 12:59), 編輯推噓0(006)
留言6則, 3人參與, 4年前最新討論串1/1
各位大大好: 想請教關於下題的一些討論 題目: 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://www.ptt.cc/bbs/Grad-ProbAsk/M.1581915585.A.A54.html

02/18 13:51, 4年前 , 1F
BTB應該是配合ID跳 如果在EXE才算出target addr 那在哪跳
02/18 13:51, 1F

02/18 13:53, 4年前 , 2F
都至少要在EXE才知道target addr在哪
02/18 13:53, 2F

02/18 16:16, 4年前 , 3F
btb會在fetch階段被存取 decode階段確定 在decode確定這個指
02/18 16:16, 3F

02/18 16:17, 4年前 , 4F
令是branch後 再來用先前的結果預測最後的結果
02/18 16:17, 4F

02/18 16:27, 4年前 , 5F
計算應該沒什麼問題
02/18 16:27, 5F

02/18 22:16, 4年前 , 6F
那這樣的話就不會再增加clk了 感謝大大們的詳細回答!
02/18 22:16, 6F
文章代碼(AID): #1UIXt1fK (Grad-ProbAsk)