Pentium_FDIV_バグとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Pentium_FDIV_バグの意味・解説 

Pentium FDIV バグ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/10/17 02:58 UTC 版)

Pentium FDIV バグは、インテルPentiumプロセッサに含まれていた、特定の値の除算の結果が誤ったものになる、というバグである[1](コンピュータ業界内部では「ソフトウェアの記述ミス」を「バグ」、「CPUコア内部の設計ミス」を「エラッタ」と称する。よって厳密に言うならば、本項は「バグ」ではなく「エラッタ」と呼称するのが妥当である)。

発端

1994年10月30日、リンチバーグ大学のThomas Nicely教授はPentiumプロセッサの浮動小数点演算ユニットにバグがあることを報告した。その内容は、とある割り算を行うと非常に小さな量だけ間違った値を返すというものだった。この結果はインターネットを通じて他の人々の手で素早く検証された[2]。そして問題を起こすのがPentiumプロセッサのx87浮動小数点除算命令であることと、そのニモニックFDIVからPentium FDIV バグとして知られるようになった[2]。また、別の人々はPentiumが返す結果が引き起こす割り算問題は、100万回に高々61回までしか起こらないことを見つけた(これは、オペランドの色々な値に対して、という意味である。このバグは特定の値に対して必ず起きる)。

この問題はPentiumプロセッサの特定のモデルのみで発生する。120MHz以上のクロックのPentium系プロセッサのモデルには、このバグはない。

原因

Pentiumで新たに実装された割り算の回路の設計を誤ったのが原因で計算を誤ることが後に明らかにされた。インテルCPUの除算命令の実行はi486まで、non-restoringなどに見られるような1ステップで1ビットずつ商を求める方式によっていたが、PentiumではSRT法を導入し、1ステップで2ビットずつ商を求めるようにし、除算に要するステップ数を約半分にした。このアルゴリズムでは商を求める際に表を参照するが、その表のエントリの一部が誤っていた。すなわち、表のなかで参照されるエントリは一部であり、それ以外の参照されないエントリについてはゼロを設定したが、実際には参照されるエントリのごく一部についても参照されることがないと誤解し、本来有意な値を設定するべきエントリのうち5個に誤ってゼロが設定された。そのために除算の途中で当該エントリを参照すると以後の演算を誤る。ここから、誤ったエントリを参照する特定の値をFDIV命令のオペランドに与えると必ず演算を誤ることになり、確率的・偶発的に誤りが発生するのではない。

当初の対応

この報告によって大論争が巻き起こった。インテルは最初この問題の存在を否定していた。やがて、インテルは問題を認めたが、誤りは重大ではなく、たいていのユーザーには影響がないと主張する[2]一方で、影響があると確認できたユーザーにはプロセッサの交換を行うと表明した[1]。並行して、FDIVと同等の除算を行うルーチンを公開し、エラッタ回避の為にこのルーチンを用いるように求めたが、これはFDIV命令より実行に時間がかかりパフォーマンスに悪影響を及ぼした。

多くの独自の検証によって、このバグはほとんど重要ではなく、たいていのユーザーに対する影響は無視してもよいと分かったが、このインテルの対応は非常に大きな抗議を引き起こした。当時インテルのPentiumに競合する「586」クラスの互換プロセッサPowerPCの売り込みを図ったIBMのような企業は、一緒になって非難した[3]。例えばインテルが計算を誤る確率はとても小さく隕石に当たるリスクが実質的に無視出来るのと同様であると表現したのに対して、競合他社は隕石の軌道を計算して落ちてくる所に立てば必ず当たると皮肉を込めて非難した。

交換

ついにインテルは、要求があればバグのあるPentiumプロセッサをすべて修正品と交換するという、潜在的には非常に大きな損失をこうむる可能性のある対応を申し出た[1]。しかし、このチップ交換を行った顧客は、実際にはほんの少数であったことが判明した[3]。一大企業の広報としてはしばしば陥る悪夢ではあったが、実際にはすでに織り込み済みだと認識され、交換を発表したその日のインテルの株価は上がった。

結果

結局インテルは根拠のないリコールをさせられたと言う人もいる[誰によって?]。ただ、科学技術計算などでは演算結果がすべてなので、計算を誤る可能性がごく僅かであるとしても万全の信頼をおけないのであれば研究や仕事において致命的である人たちもいたこともまた事実である。前述のようにこのバグをソフトウェア的に回避できるが、引き換えに演算速度が遅くなり、結局以前のプロセッサで実行する方が早くなってPentiumプロセッサを使う意味が全くなくなってしまう。演算精度を重視する顧客は敢えてi486の高ランク品を選んだり、AMDなど競合他社の製品を選んだりした。[要出典]この問題はそのような科学技術系などの計算目的でプロセッサを購入した人をインテルが切り捨てるのか、切り捨てないのかという問題でもあった。

Pentium Pro以後のCPUではマイクロコードを修正する手段が盛り込まれている。書き換え可能なコントロールストアを持ち、エラッタが生じた場合にはBIOSOSのアップデータを介してこれを回避するマイクロコードを提供する[4]。これにより、CPUの交換によらずにエラッタを回避する。

関連項目

脚注

  1. ^ a b c コンピュータアーキテクチャの話(90) Pentiumの割り算器のバグ”. TECH+(テックプラス) (2007年8月11日). 2024年2月22日閲覧。
  2. ^ a b c 半導体業界用語の基礎知識 「エラッタとバグ」 - 吉川明日論の半導体放談(129)”. TECH+(テックプラス) (2020年3月31日). 2024年2月22日閲覧。
  3. ^ a b コンピューターの不具合と現代社会 - 吉川明日論の半導体放談(291)”. TECH+(テックプラス) (2024年2月21日). 2024年2月22日閲覧。
  4. ^ Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!”. @IT. 2024年2月22日閲覧。

参考文献

外部リンク


「Pentium FDIV バグ」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Pentium_FDIV_バグ」の関連用語

Pentium_FDIV_バグのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Pentium_FDIV_バグのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのPentium FDIV バグ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS