[理工] 102 交大 計組跟作業系統

看板Grad-ProbAsk作者 (PyramidInc)時間6年前 (2019/12/12 21:21), 編輯推噓5(5010)
留言15則, 5人參與, 6年前最新討論串1/1
1. https://i.imgur.com/AnUtU9w.jpg
為什麼是6不是11?跑了兩次的runner值不會更改兩次嗎? 2. https://i.imgur.com/IsDq5O7.jpg
為什麼第二個是(5-1)+4+1+2? 在ID階段不是只要沖掉一個指令嗎,為什麼是+2? ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.25.168 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1576156902.A.77A.html

12/12 21:29, 6年前 , 1F
第二題的2應該是lw跟beq的data hazard
12/12 21:29, 1F

12/12 21:29, 6年前 , 2F
第二題的+2是因為lw接beq要拿到正確的值要stall*2
12/12 21:29, 2F

12/12 22:10, 6年前 , 3F
研究了一下 應該是sleep()這個函數的影響,第一條thread
12/12 22:10, 3F

12/12 22:10, 6年前 , 4F
進入runner後temp+=5然後睡兩秒,這之間第二條thread進來
12/12 22:10, 4F

12/12 22:10, 6年前 , 5F
執行temp+=5,接著第一條thread執行完離開後再換第二條th
12/12 22:10, 5F

12/12 22:10, 6年前 , 6F
read離開,造成race condition
12/12 22:10, 6F

12/12 22:14, 6年前 , 7F

12/12 23:11, 6年前 , 8F
所以沒有sleep的話值會是11嗎?
12/12 23:11, 8F

12/13 11:19, 6年前 , 9F
如果硬體支援多個thread平行處理 那program沒處理同步的情況
12/13 11:19, 9F

12/13 11:20, 6年前 , 10F
一樣會造成race condition還是寫下去另一個就invalidate了?
12/13 11:20, 10F

12/13 16:51, 6年前 , 11F
抱歉忘記補上另一個的
12/13 16:51, 11F

12/13 16:51, 6年前 , 12F
,應該要防止的話要自己再做同步措施啦
12/13 16:51, 12F

12/13 16:54, 6年前 , 13F
等等 D大的意思是按道理在另一個核心的執行緒按道理他的
12/13 16:54, 13F

12/13 16:54, 6年前 , 14F
變數要invalidate嗎?但我猜這個線上compilier只有用到單
12/13 16:54, 14F

12/13 16:54, 6年前 , 15F
12/13 16:54, 15F
文章代碼(AID): #1TyZxcTw (Grad-ProbAsk)