私はメモリバリアが必要な理由を理解していますが、ユニプロセッサの場合はそれを得られません。メモリバリアはSMPでのみ意味がありますか?
私がUPを使用しても障壁に対処する必要はありますか?すべてのドキュメントはSMPで説明しますが、UPでは説明しません。
次のコードでは、r2 == 0
がポイントAにある可能性はありますか?
// the location 0xdeadbeef has a zero initial value
ldr r0, =0xdeadbeef
ldr r1, =0xdeadbeef
ldr r2, =1
str r2, [r0]
ldr r2, [r1]
// point a
スーパスカラ・アウト・オブ・オーダーのシングルプロセッサに関連している可能性があります。プロセッサのメモリモデルと命令セットによって実際に指定されるべきです。 (悪は細部にある)。 –
@Basile:私はそうは思わない - 鉄則は、単一のプロセッサ上の単一のスレッドの実行は常に以下の理由で効果があることである。 –