推 q1qip123: 因為hazard unit是在id跟ex stage偵測,foward是拿ex跟m 01/04 19:33
→ q1qip123: em/wb比 01/04 19:33
→ q1qip123: 然後他沒有畫從mem牽回I'd stage的線 所以才要停兩個吧 01/04 19:34
推 NCTUFAIWEN: L,D有load use,所以stall一個cycle之後就不需要forwd 01/04 19:36
→ NCTUFAIWEN: 建議把整個圖畫出來吧 這樣直接看很難看懂 才15個 01/04 19:37
→ NCTUFAIWEN: cycle而已 不難畫 01/04 19:37
→ NCTUFAIWEN: L,B也一樣 因為beq要在ID判斷 所以一定會停一cycle 01/04 19:39
→ NCTUFAIWEN: 在pipeline後面的指令就利用這個stall存回去惹 01/04 19:40
→ NCTUFAIWEN: 拍謝 眼殘 是D.B才對 and跟beq 01/04 19:45
→ moneylon: 我缺少了哪兩個cycle QQ 01/04 20:32
→ moneylon: 喔喔喔我懂了 因為沒有辦法從ex/mem前饋到Id 所以要stal 01/04 20:39
→ moneylon: l到上一行的add已經WB 是這樣吧 01/04 20:39
→ moneylon: and已經WB(修正 01/04 20:40
推 q1qip123: 對 然後beq是stall在id 不是IF,因為他要需要解瑪才能知 01/04 21:05
→ q1qip123: 道是beq 01/04 21:05
→ q1qip123: 啊我看錯了 不用理我 01/04 21:12
推 NCTUFAIWEN: and的alu算完才會給beq 所以中間要一個stall 01/04 21:30
→ NCTUFAIWEN: 另外一個我找不到== 感覺14個cycle而已啊 01/04 21:38
→ NCTUFAIWEN: 看起來是因為mem沒有前饋給ID 所以要等一個cycle 01/04 21:41
→ NCTUFAIWEN: 要等lw的write back才可以動beq 01/04 21:42
→ NCTUFAIWEN: 那就15個 01/04 21:42