看板 Grad-ProbAsk 關於我們 聯絡資訊
這題拿來複習FGMT很棒,有一些FGMT和thread的觀念就可以了 回顧thread組成,有自己的 1.PC 2.stack 3.reg. 4.thread ID,... 回顧一下FGMT特性 1.類似RR 2.CPU必須在每個Cycle替換另一個thread 由上面兩點得到一優點一缺點 pros:thread夠多,可以隱藏stall cons:平均turnaround time上升(對於Hard Real time OS可能是不適用的) a.考慮thread1執行到branch, th1=thread1 stl=stall IF │ID │EX │MEM│WB cycle1 th1│ cycle2 stl│th1│ cycle3 stl│stl│th1 cycle4 th1│stl│stl│th1 此圖表示只有一個thread時遇到branch的情形 cycle1 th1 cycle2 th2 th1 cycle3 th3 th2 th1 cycle4 th1 th3 th2 th1 th2 th1 th3 th2 th1 正常來說,th1會有control hazard,但因為這題的設計,IF只要遇到branch就會stall, 所以stall剛好被th2,th3蓋住了。 每一個pipeline stage都是滿的,故最少需要3個 b. 考慮th1有以下instruction add $1,$2,$3 or $2,$1,$3 發生RAW IF │ ID│ EX│MEM│WB cycle1 th1 cycle2 th1 th1 cycle3 th1 stl th1 cycle4 th1 stl stl th1 cycle5 th1 stl stl stl th1 此圖表示只有一個thread遇到data hazard的時候,會一直stall到把結果寫回 register為止(instruction走到WB) cycle1 th1 cycle2 th2 th1 cycle3 th3 th2 th1 cycle4 th4 th3 th2 th1 cycle5 th1 th4 th3 th2 th1 正常來說,在IF&ID時會檢查(與hazard detection設計不同)到同一個thread的reg而產生 stall,直到寫回去為止, 順帶一提的是,這邊的reg.沒有先寫後讀,因此同上需要總共四個thread保證 no flow dependence。 c.Yes, 與(a)解釋一樣 d.No IF │ ID │EX0~EX7│MEM0~MEM1│WB th1 stl0 stl 1~8 stl 9~10 th1 th1 th2 th3~10 th11~12 th1 需要共12個thread保證 no flow dependence。 結論:由單一時脈圖(詳看張凡課本圖示)可以看到,原本由其中一個thread造成的stall ,可以切換另一個thread隱藏起來,而這個優點原本課本不清晰的解說,這題可以很清楚表 達出來。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.164.94 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1546166700.A.4C0.html
wacheck: 想請問一下,thread在IF階段就有了嗎?拍謝一直想到os的部12/30 19:49
thread也會翻譯成instruction
wacheck: 份,但一直連接不上來12/30 19:49
wacheck: 然後d小題我覺得是11個@@ 因為ex階段到wb階段有8+2+1個th12/30 19:52
圖應該很明顯了
wacheck: 要移除,但不確定是不是我想法太簡陋 ORZ12/30 19:52
wacheck: 第b小題只有4個stage@@ 而且分支也要考慮?個人認為因為沒12/30 19:57
a小題已經說明3thread可以保證不會有control hazard了,所以b的4可以包含a
wacheck: forward所以decode階段到wb階段都要停 所以兩個thread12/30 19:58
wacheck: 若再考慮branch的話就3+2=5 總共五個12/30 19:58
※ 編輯: b10007034 (1.161.164.94), 12/30/2018 20:26:45 ※ 編輯: b10007034 (223.140.232.129), 12/31/2018 10:24:22 ※ 編輯: b10007034 (223.140.232.129), 12/31/2018 10:43:23 ※ 編輯: b10007034 (1.161.165.108), 12/31/2018 10:49:18 ※ 編輯: b10007034 (1.161.165.108), 12/31/2018 10:51:18
jojoboy0115: 好猛,感謝大大的解說! 12/31 22:06
wacheck: 感謝回覆 01/01 09:39
dumpling1234: 推 01/25 14:35
Kanaheipapa: 謝謝大大!! 02/08 12:34
ff00662299: 受益匪淺,謝謝! 11/20 17:22
j12345453: 請問C小題 12/21 14:56
j12345453: 因為有明講了Ex stage是佔8個Stage 12/21 14:56
j12345453: 大家怎麼會直接認定Machine2也是在第三Stage就做完Br 12/21 14:56
j12345453: anch? 12/21 14:56
j12345453: 我一開始就誤以為是要整個Ex階段結束8個Stage Branch 12/21 14:56
j12345453: 才完成? 12/21 14:56
j12345453: 有人跟我想法一樣嗎 12/21 14:56