Pentiumのバグ
読み:ペンティアムのバグ

 Intelが1993(平成5)年に発売したIA-32アーキテクチャーマイクロプロセッサーPentiumバグ
目次

概要
 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番目のエラッタとして登録され、交換に相当するような問題ではない、つまり仕様とされた。

再検索