SEV、WFE、WFI、YIELD

イベントの設定、イベント待機、割り込み待機、および明け渡しを行うヒント命令です。

Show/hide構文

SEV{cond}
WFE{cond}
WFI{cond}
YIELD{cond}

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

cond

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

Show/hide使用法

これらはヒント命令です。これらの命令は任意に実装することができます。いずれの命令も実装されていない場合は、NOP として実行されます。命令がターゲットで NOP として実行された場合、診断メッセージが生成されます。

SEVWFEWFI、および YIELD は、ARMv6T2 では NOP 命令として実行されます。

SEV

SEV により、マルチプロセッサシステム内のすべてのコアに対してイベントを発生させます。SEV を実装する場合は、WFE も実装する必要があります。

WFE

イベントレジスタが設定されていない場合、WFE は、以下のいずれかのイベントが発生するまで実行を保留します。

  • IRQ 割り込み(CPSR の I ビットでマスクされている場合を除く)

  • FIQ 割り込み(CPSR の F ビットでマスクされている場合を除く)

  • 不正確なデータアボート(CPSR の A ビットでマスクされている場合を除く)

  • デバッグエントリ要求(デバッグがイネーブルの場合)

  • 別のプロセッサが SEV 命令を使用して発生させたイベント

イベントレジスタが設定されている場合、WFE は、そのレジスタをクリアしてすぐに戻ります。

WFE を実装する場合は、SEV も実装する必要があります。

WFI

WFI は、以下のいずれかのイベントが発生するまで実行を保留します。

  • IRQ 割り込み(CPSR の I ビットの設定とは無関係)

  • FIQ 割り込み(CPSR の F ビットの設定とは無関係)

  • 不正確なデータアボート(CPSR の A ビットでマスクされている場合を除く)

  • デバッグエントリ要求(デバッグがイネーブルされているかどうかは無関係)

YIELD

YIELD は、現在のスレッドが、スワップアウトできるタスク(スピンロックなど)を実行していることをハードウェアに示します。ハードウェアは、このヒントを使用して、マルチスレッドシステムでスレッドを中断および再開できます。

Show/hideアーキテクチャ

これらの ARM 命令は、ARMv6K 以降で使用できます。

これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。

これらの 16 ビット Thumb 命令は、ARMv6T2 以降で使用できます。

Show/hide関連項目

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