Re: [理工] 計組同步指令

看板Grad-ProbAsk作者 (riverK)時間8年前 (2016/04/25 18:01), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《gsmzxcvbnm ()》之銘言: : http://i.imgur.com/BBlAyGm.jpg
: 有人可以跟我解釋這段程式到底在表達什麼嗎? : 抱歉直接要大家整個解釋好像不太好,但我今天已經看了一整天了還看不出來這斷程式到 : 底完成了什麼 : 如果是以下題目我還會寫,就是不讓兩個處理器同時存取某個參數 : http://i.imgur.com/dNw6Zah.jpg
: 但一開始的範例到底要表達什麼啊 這段程式就是$s4跟0($s1)在做atomic swap 第一行 先把$s4的值丟到$t0 (因為如果直接用$s4去做store conditional會有個回傳值 如果失敗的話連原本的資料都不見了) 第二行 把0($s1)的值丟到$t1 第三行 拿$t0跟0($s1)做store conditinal 如果成功 $t0的值就存到0($s1) 然後會有個回傳值$t0 = 1 如果失敗(代表有其他人在存取) 0($s1)的值不變 然後回傳值 $t0 = 0 (這就是為何不直接拿$s4去做store conditional的原因) 第四行 如果 $t0 = 0 代表交換失敗 跳回try這個label從頭開始 如果 $t0 = 1 代表交換成功 繼續做下一行 第五行 執行到這行代表剛剛store conditional已經成功 $s4的值已經成功經由$t0存到0($s1) 所以最後再把$t1的值丟到$s4 就完成了整個atomic swap -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.76.238 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1461578463.A.7DE.html

04/26 16:09, , 1F
嗯嗯,謝謝你
04/26 16:09, 1F
文章代碼(AID): #1N7UhVVU (Grad-ProbAsk)
文章代碼(AID): #1N7UhVVU (Grad-ProbAsk)