x86 でのロードとストアのアトミック性
x86 アーキテクチャは、データ パスのサイズまで、アライメントされたロードとストアのアトミック性を保証します。コア、メモリ、および I/O バスの間。これは、単一の操作が不可分に発生し、それを監視する他の操作は、それが完全に発生したか、またはまったく発生していないとみなされることを意味します。
内部的には、CPU はアラインされた操作に対して「無料」でアトミック性を実装できます。データ転送は、十分な幅のデータ バスを介して、または単一のメッセージを介して行われます。より広範囲のアクセスや非整列操作の場合、操作を小さなチャンクに分割し、より複雑な操作を実行する必要がある場合があります。
アトミック操作とキャッシュ
アトミック操作は完全に発生する可能性があります。操作がキャッシュラインの境界を越えない限り、キャッシュ内に保存されます。これは、キャッシュへの変更はアトミック性を確保するのに十分であることを意味します。
アトミック読み取り-変更-書き込み
アトミック読み取り-変更-書き込み (RMW) 操作はより困難です。実装する。 CPU はキャッシュ ラインを Modified 状態に保ち、オペレーションの進行中にキャッシュ コヒーレンシ メッセージを無視することができるため、他のコアにはアトミックに見えることができます。
Unaligned Locked Operations
非整列ロック操作では、操作中に他のアクセスを防ぐためにバス ロックを取得するなど、より複雑なハードウェア介入が必要になる場合があります。
以上がx86 のロードとストアはどの程度アトミックであり、アトミック性に影響を与える要因は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。