看板 Grad-ProbAsk 關於我們 聯絡資訊
http://i.imgur.com/orFCKwm.jpg 小弟想問一下 第三個cycle跟第四個cycle要怎麼在不插stall 跟執行NOP的情況下 讓beq 跟and指令分別都是執行IF 跟 ID呢? 圖的下面有寫到cycle圖 跟同學討論之後還是不知道有什麼方法可以不用stall 再麻煩各位大大幫忙解釋 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.203.74 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1484236282.A.46D.html
lingege32: 有data harzard一定停。而且你的圖中的forwarding錯了 01/12 23:58
lingege32: ,是sub的EXE結果forward給beq的ID使用 01/12 23:58
joeboy: 嗯那個地方我可能畫錯,可是為什麼答案給的時候第四個cyc 01/13 00:08
joeboy: le不用插入stall呢?這樣有什麼方法可以達成? 01/13 00:08
k2shouai: 題目一開始有跟你講上面那圖是cycle3的狀況 01/13 00:19
Astar5566: 他應該是問說 第三個週期實際上是stall吧? 01/13 00:53
aa06697: 題目有說在branch之後哪個cycle有stall cycle4的時候還在 01/13 01:18
aa06697: 決定要不要跳而已 另外那題沒答案 應該要是8 01/13 01:18
aa06697: 啊 我好像誤會你想問的了 請忽略我的留言 01/13 01:20
aa06697: cycle3的時候就是圖這樣 然後下一個cycle4的時候 stall前 01/13 01:21
aa06697: 兩個指令 為了forwarding給id stage的beq 01/13 01:21
Astar5566: 想請問 3 4 cycle算是真的stall嗎? 因為beq要到ID階 01/13 01:53
Astar5566: 段才會發現自己跟前一個R type有dependency 要多等一 01/13 01:53
Astar5566: 個 cycle 下一個cycle時候再比較rs跟rt. 這樣要說第 01/13 01:53
Astar5566: 三個cycle是stall似乎不太對(畢竟題目都畫出來了) 01/13 01:53
lingege32: 原po右下角的圖是對的,在第3 cycle時大家正常運作, 01/13 09:42
lingege32: 但是第四cycle時beq and收到命令不要往前(beq指令因 01/13 09:42
lingege32: 為hazard錯掉)所以第四個cycle是stall。stall是暫停 01/13 09:42
lingege32: 的意思,所以不會有插入stall這種詞 01/13 09:42
aa06697: 是stall第四個cycle 01/13 10:08
Astar5566: 可是第四個cycle有工作要作啊 怎麼能說是stall呢? 感 01/13 12:13
Astar5566: 覺像是一樣的指令跑了兩個周期 01/13 12:13