ll/scを使用しているときに、sc文が実行される前にプロセッサに変更があった場合、何が結果になるか知りたいと思っていました。MIPSの同期化(ll/sc)
など。
CPU 1 ==> $さt1 = 1、$のT0 = 2
CPU 2 ==> $さt1 = 30、$のT0 = 40
MEMORY ==> $ S0 = 99
我々はこれらのステートメントを実行した場合:
ll $t1, 0($s0) # CPU 1
ll $t1, 0($s0) # CPU 2
addi $t1, $t1, 1 # CPU 2
sc $t1, 0($s0) # CPU 2 ($t1 = 1, $s0 = 100)
sc $t0, 0($s0) # CPU 1
私はその実行後(私が間違っているなら、私を修正して)知っている:
CPU 2 = => $ t1の= 1、$ t0の= 40
CPU 1 ==> $ t1の= 99
私は$ S0と最後のCPU 1コマンドの後$ T0に何が起こるか分かりません。 $ s0 = 2ですか?