- - PR -
初期Pentiumの浮動小数点演算ユニットのバグの件
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-09-02 20:03
申し訳ありませんでした。
ただ、誤るしかありません。 ちょっとこのスレッドの話題から離れますが、これを最後の書き込みとして書かせてください。 私が見てわかる範囲の言語(プログラムではなく英語とかです)であれば、この世界で国なんて関係ないって考え方が根本にあったんで、アップルの契約は金額以外何の抵抗もありませんでした。 世界みんないろんな状態の人達が居る。戦争で苦しんでる人も居る。犯罪者も居る。 いい人も居る。 私はものすごく昔から人間(人)と文化(宗教や考え方)これ以外で区切るのは好きでありませんでした。 私は、もしこんな事はかけらも信じていませんが、生まれ変わる時は多民族国家が好きです。 あと、ある最近ちょっと売れた関西の関西弁だらけの女性の歌手の所に、こういう事を書きました。 「必要なのは、努力と、パワーと、絶え間ない挑戦と、パイオニア精神だ。誰が何と言おうと、東京で関西弁でコンサートやって東京の人間が文句を言ったって気にするな。関西弁で東京で頑張れ、東京なんかじゃない、海外をめざそう!!」 と。。。 このスレッドと全く関係ない、私の持論を書いてしまって申し訳ありません。 これを最後にしたいと思います。 お許しください。 | ||||||||
|
投稿日時: 2002-09-02 22:10
はじめまして。
こちらにははじめての書き込みとなります。宜しくお願いします。 ----- Pentiumの除算アルゴリズムについては、確かに非常に面白い手法をつかっていると 思います。ただ、各社CPUはもともと、非常に工夫されていますし、ことさらそれを 取り上げる必然性は正直、感じません。 ただ、このエラッタにまつわる騒動は、非常に興味深かったことを記憶しています。 それまで、他社でもCPUのバグはありましたが、たいした話題にもなりませんでした。 それどころか、Intel製チップにおいては、バグを利用してコンベンショナルメモリ の拡張までやっていました。 ところが、Intelも気づかない?うちに、Intelの影響力は増していたのでしょう、 いつもどおり、さらっと流したかったのに、大騒ぎになってしまった上、「細かい ことにコダワルなよ、いいじゃん、これくらい」風の対応が被害を拡大してしまい ました。 そういう意味で、「巨人」Intelも人の子か、という印象をもっています。技術的な 点からは離れてしまいますが、取り上げる価値はある事件ではありました。 | ||||||||
|
投稿日時: 2002-09-02 22:19
失敗から学ぶというか、失敗学の勧めというか。 INTELの技術者も人の子です。 高等数学を駆使したかなり微妙な表だったらしく、その一部が間違っていたとのことでした。 普通はさらっと読み流すだけの歴史ですが、失敗とその改善の過程も取り上げるとより深く印象に残るとおもいます。 | ||||||||
|
投稿日時: 2002-09-02 22:31
バグ騒動は記憶にありますが。たしかA*B/A=Bにならなかったような(違ったかな?)。
その当時はあまりそういったことに興味がなかったのですが、今は非常に興味があり ます。だれか、浮動小数点の除算アルゴリズムを説明をしてくれるとうれしいです。 | ||||||||
|
投稿日時: 2002-09-04 07:44
Pentiumのバグなどは、以下のページにまとまっています。 http://www.intel.com/support/processors/pentium/fdiv/wp/ この中のセクション4に除算のアルゴリズムがまとまっています。 http://www.intel.com/support/processors/pentium/fdiv/wp/4.htm 解説はちょっと面倒なのでパス。要点だけ述べると、486以前では割り算の アルゴリズムとして、「non-restoring(非回復法), shift and subtract」を 使っていたが、これは1サイクルで商が1ビットしか求まらない。 そこでPentiumでは、新たにSRT法(SRTは開発者3人の頭文字)を採用。 これも繰り返し型のアルゴリズムだが、1回の繰り返しで商を2ビットずつ 求めることが可能。これによりほぼ2倍に高速化。 SRT法では、各繰り返しステップごとに、仮の商を求めるためにテーブルを引くが、 初期Pentiumではこのテーブルの内容に一部誤りがあり、結果が正しくなかった。 もう少し分かりやすくいうと、例えば筆算で除算を行う場合、仮の商を 立てますよね? SRT法では、除数や非除数の最上位を何ビットか組み合わせて、 あらかじめ用意した表を引き、高速に仮の商を求めています。この表が間違っていた というわけです。Intelは、Pentiumで初めてこの方法を実装したので、経験値が 足りなかった、というのがほんとのところらしいです。でも他のCPUではすでに あたりまえの方法ですので、これが特別すごいことかといわれると、 ちょっとちがうかも。 | ||||||||
|
投稿日時: 2002-09-04 09:27
Uchikoさん、回答ありがとうございました。
SRT法と言うんですか。英語は苦手なのですが、がんばって読んでみようと思います。 SRT法で検索をしてみたのですが、Weitek社のコプロにSRT法が使われているものがあ るようです。386/486のマザーボードにWeitek社のコプロが載るものもあったそうで、387/487よりも速かったそうです。もしかしたら、それにもSRT法が使われていたのか も知れませんね。 | ||||||||
|
投稿日時: 2002-09-04 22:45
SRT法という手法ですか、INTELが初めて実装したのではないのですね。 僕の記憶違いでした。 | ||||||||
|
投稿日時: 2002-09-14 09:30
大学で忙しくて静かでした・・・。
昨日の授業でちょっと嬉しいことがありました。今学期には「Professionalism & Ethics」という倫理やらプロとは何かという教科をとっています。(まったくもってコンピュータとは関係ないのに必修なんです・・・) その中の課題で、なんと「初期Pentiumの浮動小数点演算ユニットのバグ」においての企業の倫理とプロフェッショナリズムを議論せよなんていうのが出ました。論文の宿題なのであまり嬉しくないのですが、ここでのトピックと同じなので「おおぉ、らっき〜♪」なんて思ってしまいました。
ここら辺のIntelの企業としてのプロフェッショナリズムと道徳・美徳とかを主に書いていこうかなと思っています。 |