Sun Microsystems 最大のリストラ
■ このスレッドは過去ログ倉庫に格納されています
0445名無しさん@お腹いっぱい。
2006/08/05(土) 14:55:28> VMTでメモリのポーリングをされると台なしになるから。
> ビジーウェイトはキャッシュにヒットするので、ほかのスレッドに切り替わらない。
スピンロックで待つということは、直ちにメモリが更新されることを期待して、
他スレッドに切り替えず待つということなので、キャッシュにヒットしても、
それが直ちに更新されるのであれば、逆にスレッドに切り替えない方がいいかも
しれん。
でも、同一ロック待ちのスレッドが増加すれば、あきらかにスレッドに切り替えた方が
逆に効率がよくなるので、スピンロックの実装で、
1 メモリ値の確認
2 未更新であれば、スレッドを放棄 (スレッドコントロール命令?)
3 イベント発生時のスレッド切り替えで起きる → 1
というのもあるのかも。いずれにせよ、要件はソフト側によるもので、そうなると
「メモリの内容が変更されるまで待って変更後の値をロードする命令」というのが、
ハードにとってどれだけ効率良く実装できるかにもよるのじゃないか?
どっちにせよ、SPARC CPUの実装依存の命令になるので、SPARCのISAではなくて、
独自拡張命令にいれる類(SPARCの規約上、許される独自命令の範囲)で、一般の
SPARC ISAに命令がない、というのは、むしろ当たり前ではないのだろうか?
■ このスレッドは過去ログ倉庫に格納されています