Pentiumのバグ
読み:ペンティアムのバグ
Intelが1993(平成5)年に発売した
IA-32
アーキテクチャー
マイクロプロセッサー
、
Pentium
の
バグ
。
目次
概要
主なバグ
小数の割り算のバグ
LOCK命令のエラッタ
FPU命令のエラッタ
概要
Pentiumは旧製品と大きく仕様が違うためかバグが多く、
小数
の
割り算
のバグ、LOCK命令でのバグ、FPU命令でのバグなどが大きなものとして知られる。
特に小数計算のバグは計算機としては致命的で、最終的には回収・交換騒ぎに発展してしまった。これによってIntelの損害は4億7500万ドル(約500億円)にものぼった。
主なバグ
小数の割り算のバグ
割り算のバグは、Pentium発売後すぐに発覚した。
これは実数除算で商の精度が極端に悪くなる
不具合
で、マスコミでも報道され、無料交換措置が取られた。
例えば、5505001÷294911は、18.66665197…が正解であるが、バグありPentiumは18.66600093…という結果を返す。
LOCK命令のエラッタ
LOCK命令の不具合はInvalid Operand with Locked CMPXCHG8B Instruction Erratumが正式名称である。公式な邦訳名は不明だが、日本マイクロソフトは
ロックされたCMPXCHG8Bインストラクションでの不正なオペランド
と訳している。
PentiumとMMX Pentiumで発生するもので、次の4バイトの命令列F0h、0Fh、C7h、C8h〜CFhが実行されると、プロセッサーはハングアップする。
これは、対処法があることからPentiumの81番目のエラッタとして登録された。
FPU命令のエラッタ
FPU命令での不具合は、特定の条件でフラグが立たないことがある問題である。
80ビットのFPU浮動小数点レジスターの内容を16ビット又は32ビットの整数値に変換する命令FISTに不具合があり、特定の条件下では、
オーバーフロー
時にセットされるはずのフラグビットがセットされない。
対処法さえ分かっていればプログラムで対処可能な不具合である上、条件は32ビット値の3倍以上の数値でなければならない等、不具合が再現するのは希なケースであるとして、Pentium Pro/Pentium IIの25番目のエラッタとして登録され、交換に相当するような問題ではない、つまり仕様とされた。
再検索