
[理工] 請教一題pipeline 101交大

首先想問的是第一題
我算出來的cycle是19個
http://i.imgur.com/JknAtpk.jpg

(5-1)stage數減一
cycle2因為load use要stall
cycle4 7因為預測錯誤要stall3個
這樣多出來的1是發生在哪?
還有第二題也是被同樣問題困住
2(load+beq) 1(penalty) 1(R+beq) 1(penalty)
多出來的1是?
還有那個stall cycle是指什麼?cycle2時第二個指令不是還在fetch而已嗎?
另外想問一個很白痴的問題
有一點不是很清楚
就是branch在ID跟在mem
branch在ID的時候不是ID才能透過comparison得到結果嗎
所以正確指令的IF應該會出現在第二個ID下方(假設預測錯誤)
這樣penalty只有1
那branch在mem呢?總感覺說branch在mem很難理解,因為理當在Ex階段就應該comparison
就已經算完了,這樣想想在mem階段時新的IF就進來了這樣penalty是3
但實際上不是可以把penalty壓到2嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.71.187
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1485764819.A.FB8.html
推
01/30 17:00, , 1F
01/30 17:00, 1F
→
01/30 17:01, , 2F
01/30 17:01, 2F
因為第一個bne是在ex的時候compare,所以還是要等一回合才可以forwarding,是吧?!
※ 編輯: newpuma (114.136.71.187), 01/30/2017 17:04:22
可是這樣第二小題的1又是怎麼來的,lw+beq含在一起已經算2了@@
※ 編輯: newpuma (114.136.71.187), 01/30/2017 17:06:06
→
01/30 17:07, , 3F
01/30 17:07, 3F
一開始的load use 1
第二個loaduse+beq 2
beq預測錯 1
後來的r type跟beq 1
beq預測錯 1?
→
01/30 17:07, , 4F
01/30 17:07, 4F
→
01/30 17:09, , 5F
01/30 17:09, 5F
→
01/30 17:09, , 6F
01/30 17:09, 6F
→
01/30 17:14, , 7F
01/30 17:14, 7F
→
01/30 17:14, , 8F
01/30 17:14, 8F
※ 編輯: newpuma (114.136.71.187), 01/30/2017 17:18:25
→
01/30 17:17, , 9F
01/30 17:17, 9F
推
01/30 17:50, , 10F
01/30 17:50, 10F
→
01/30 17:51, , 11F
01/30 17:51, 11F
→
01/30 17:52, , 12F
01/30 17:52, 12F
總是失敗所以一定penalty
推
01/30 17:54, , 13F
01/30 17:54, 13F
→
01/30 17:56, , 14F
01/30 17:56, 14F
→
01/30 17:56, , 15F
01/30 17:56, 15F
我好像有點自問自答 不過感謝y大點出lw!!
※ 編輯: newpuma (114.136.71.187), 01/30/2017 18:08:54
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):