>>444

> VMTでメモリのポーリングをされると台なしになるから。
> ビジーウェイトはキャッシュにヒットするので、ほかのスレッドに切り替わらない。

スピンロックで待つということは、直ちにメモリが更新されることを期待して、
他スレッドに切り替えず待つということなので、キャッシュにヒットしても、
それが直ちに更新されるのであれば、逆にスレッドに切り替えない方がいいかも
しれん。

でも、同一ロック待ちのスレッドが増加すれば、あきらかにスレッドに切り替えた方が
逆に効率がよくなるので、スピンロックの実装で、

   1 メモリ値の確認
   2 未更新であれば、スレッドを放棄 (スレッドコントロール命令?)
   3 イベント発生時のスレッド切り替えで起きる → 1

というのもあるのかも。いずれにせよ、要件はソフト側によるもので、そうなると
「メモリの内容が変更されるまで待って変更後の値をロードする命令」というのが、
ハードにとってどれだけ効率良く実装できるかにもよるのじゃないか?

どっちにせよ、SPARC CPUの実装依存の命令になるので、SPARCのISAではなくて、
独自拡張命令にいれる類(SPARCの規約上、許される独自命令の範囲)で、一般の
SPARC ISAに命令がない、というのは、むしろ当たり前ではないのだろうか?