0

ある時点で、ネイティブ型は、メモリ バスよりも広くなく、整列している限り、アトミックであると読みました。私はこれについて非常に間違っているかもしれませんが、メモリバスは通常、32 ビット CPU でも 64 ビットではありませんか ( http://en.wikipedia.org/wiki/Front-side_bus )? どの場合、上記のステートメントは、読み取りまたは書き込み、または整列された 64 ビットのネイティブ型がアトミックになることを意味しますか? Intelのドキュメントを調べたところ、x86は32ビット以下でのみアトミックであることが保証されていると書かれていますが、メモリバス幅の部分を正しく理解していることを確認したかったのです。

ありがとう!

4

1 に答える 1

2

メモリ バスの幅は、メモリ アクセスの原子性とは何の関係もありません。1 ビットのメモリ バスを使用しても、64 回の読み取りまたは書き込みでバスを保持することにより、アトミックな 64 ビット メモリ アクセスを行うことができます。CPU とキャッシュの間のパスが 32 ビットで、キャッシュをロックできない場合、64 ビット バスは使用できますが、アトミック 64 ビット メモリ アクセスは使用できません。

于 2013-08-22T18:34:48.287 に答える