〜Pentiumのバグ〜
Pentiumがハングするプログラム
 

  comp.sys.intelあたりで、Pentiumのバグが報告されたそうです。で、さっそくそのオブジェクトを作ってみたんですが、ちゃんと、飛びます(笑)

http://www.news.com/News/Item/0,4,16173,00.html
http://www.news.com/News/Item/0,4,16187,00.html

あたりが、その情報のようです。

Pentiumのバグが発生するのは、次のプログラムのようですが、
 0xf0      lock
 0x0f 0xc7 cmpxchg8b オペランド 0xc8( 11001000 mod=11 reg=001 r/m=000)

さっそく作ってみました。
 

確かに相手がPentiumだと、ハングするようです。486や、それ以前だと「サポートしていない命令」の例外に、PentiumProだと、特に問題なくエラーになります(^^;; 他メーカの互換CPUや、Pentium2は、どうなんでしょうね。

 #ちなみに本当にハングします。ちゃんと飛んでもよい状態になってから、実行してみましょう。

このバグは、Pentiumプロセッサが停止してしまうというものです。従って、OSのレベルでとまる/とまらないという話ではないので、どんな強力なOSが動作していても、ハングすることができます。どうもlockプレフィクスをつけると、次の命令でデッドロックしてるような感じです。ちなみにバグのないプロセッサでは、Windowsが一般保護例外を主張します。これは、正しいCPUの挙動です。

なお、このプログラムを実行した結果、マシンが固まって、大切な文書を保存しわすれた、とか、その他このプログラムに起因する問題について当方は責任を一切負いません。あくまでも自分の責任でご利用ください。
 


ミント★(S.Kamio)
1997/11/10
 

このページのホストは  です。 無料ホームページをどうぞ!