看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/0HVgLfd.jpg 如圖 想請問各位 如果沒有forwarding的話 1、2、3、4分別需要插入多少nop指令? 感謝大家的幫忙 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.142.177 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1507436021.A.CF9.html
box38431: 應該只有第一題需要插2個 nop 10/08 12:33
box38431: 另外三個應該都沒 data hazar 還請其他大大確認 10/08 12:34
ping780520: 2到4好像沒有Data hazard耶,像第二題SW我記得是讀t0 10/08 12:59
ping780520: 跟t1兩個register然後將值當做memory address寫入memo 10/08 12:59
ping780520: ry中32(t1)這個位置,所以不會有寫入register的動作 10/08 12:59
nat99up: b大正解 10/08 13:01
jeff80228: 想請問為什麼第3個不用加入nop呢? 10/08 13:07
jeff80228: 如果第3個沒有nop t1會不會讀到還沒取得t0的值呢 10/08 13:25
sarsman: sw是參照t1的位置存t0到記憶體中 10/08 13:42
sarsman: t1值不會變動,故可拿來運算 10/08 13:43
sarsman: 應該說,把t1的值讀出來後,將t0儲存到該值的記憶體位址 10/08 13:46
jeff80228: 抱歉s大 我不是很清楚 10/08 14:36
jeff80228: t1應該要在mem的時候改成t0的值 但是此時ex用的t1應該 10/08 14:39
jeff80228: 還沒被更改 10/08 14:39
sarsman: MEM時,暫存器的t1並不會被改,而是把t0的值放到memory中 10/08 16:03
sarsman: memory位址是由暫存器t1的值指定而已 10/08 16:05
jeff80228: https://i.imgur.com/SducTc6.jpg 10/08 19:35
jeff80228: Ex階段t1和t2的暫存器內容已經在ALU中此時的t1應該來 10/08 19:39
jeff80228: 不及得到t0的值吧 10/08 19:39
jeff80228: 希望大家可以為我解答 感謝 10/08 19:40
mloop: 第一句是把t0 register存到位置t1的memory 10/08 20:36
mloop: 第二句是把t1 register的值拿出來做事,不會有hazard問題 10/08 20:36
jeff80228: 意思是說add中的t1 register的值不會是t0的值對吧? 10/08 20:44
mloop: 不會 會是t1原本的值 10/08 20:55
ping780520: t0跟t1暫存器都只有被讀取沒有寫入,所以t1值還是原 10/08 20:58
ping780520: 本的值 10/08 20:58
jeff80228: 了解 謝謝各位大神們的回覆!! 10/08 21:05