DMB、DSB、ISB

データメモリバリア、データ同期バリア、および命令同期バリアです。

Show/hide構文

DMB{cond} {option}
DSB{cond} {option}
ISB{cond} {option}

各パラメータには以下の意味があります。

cond

任意の条件コードを指定します。

option

ヒントの演算に任意に指定できる制限です。

Show/hideDMB

データメモリバリアはメモリバリアとして機能します。これにより、DMB 命令より前にプログラム順で発生する明示的なすべてのメモリアクセスは、DMB 命令より後にプログラム順で出てくる明示的なデータアクセスよりも先に検出されます。これは、プロセッサで実行されている他の命令の順序に影響することはありません。

option に使用できる値は以下のとおりです。

SY

システム全体の DMB 演算。これはデフォルト値なので、省略できます。

ST

ストアの完了のみを待機する DMB 演算。

ISH

内部共有可能ドメインのみを対象とした DMB 演算。

ISHST

ストアの完了のみを待機し、内部共有可能ドメインを対象とした DMB 演算。

NSH

統合ポイントのみを対象とした DMB 演算。

NSHST

ストアの完了のみを待機し、統合ポイントのみを対象とした DMB 演算。

OSH

外部共有可能ドメインのみを対象とした DMB 演算。

OSHST

ストアの完了のみを待機し、外部共有可能ドメインを対象とした DMB 演算。

Show/hideDSB

データ同期バリアは、特殊なメモリバリアとして機能します。この命令が完了するまで、この命令より後にあるプログラム順の命令は実行されまん。この命令は以下の場合に完了します。

  • この命令が完了する前のすべての明示的なメモリアクセス

  • この命令が完了する前のキャッシュ、分岐予測子、および TLB メンテナンスのすべての処理

option に使用できる値は以下のとおりです。

SY

システム全体の DSB 演算。これはデフォルト値なので、省略できます。

ST

ストアの完了のみを待機する DSB 演算。

ISH

内部共有可能ドメインのみを対象とした DSB 演算。

ISHST

ストアの完了のみを待機し、内部共有可能ドメインを対象とした DSB 演算。

NSH

統合ポイントのみを対象とした DSB 演算。

NSHST

ストアの完了のみを待機し、統合ポイントのみを対象とした DSB 演算。

OSH

外部共有可能ドメインのみを対象とした DSB 演算。

OSHST

ストアの完了のみを待機し、外部共有可能ドメインを対象とした DSB 演算。

Show/hideISB

命令同期バリアはプロセッサのパイプラインをフラッシュするため、ISB に続くすべての命令は、ISB 命令が完了した後、キャッシュまたはメモリからフェッチされます。これにより、ISB 命令より前に実行されたコンテキスト変更処理(ASID の変更など)、完了した TLB メンテナンス処理、分岐予測子メンテナンス処理、および CP15 レジスタへのすべての変更は、ISB より後にフェッチされた命令で認識されます。

また、ISB 命令により、この命令より後にプログラム順で出てくるすべての分岐は、必ず ISB 命令より後で認識されるコンテキストと共に分岐予測ロジックに書き込まれます。これは、命令ストリームを正しく実行するために必要なことです。

option に使用できる値は以下のとおりです。

SY

システム全体の ISB 演算。これはデフォルト値なので、省略できます。

Show/hideエイリアス

DMBDSB でサポートされている option の代替値は以下のとおりですが、使用は非推奨です。

  • SHISH のエイリアスです。

  • SHSTISHST のエイリアスです。

  • UNNSH のエイリアスです。

  • UNSTNSHST のエイリアスです。

Show/hideアーキテクチャ

これらの ARM および 32 ビット Thumb 命令は、ARMv7 で使用できます。

これらの命令の 16 ビット Thumb バージョンはありません。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211