Intel 8087

Intel 8087: 16ビットCPU時代の数値演算革命



Intel 8087は、1980年代のコンピューティングにおいて画期的な存在でした。16ビットCPUであるIntel 8086および8088向けの、世界初のIntel製数値演算コプロセッサとして登場し、それまで整数演算に限定されていたこれらのCPUに、浮動小数点演算能力をもたらしました。このコプロセッサの搭載により、プログラムの処理速度は、その内容にもよりますが、最大で5倍近く向上したとされています。

8086の限界と8087の役割



8086/8088は、浮動小数点演算命令を備えていませんでした。そのため、浮動小数点演算を行うには、ソフトウェアで複雑な処理を行う必要があり、処理速度は著しく低下していました。8087はこの問題を解決するために開発されました。8087は、IEEE 754規格に準拠した浮動小数点演算命令セットを備えており、8086/8088と協調動作することで、あたかもCPUが浮動小数点演算を直接実行しているかのような効率的な処理を実現しました。

8086と8087の協調動作



8087は、8086/8088と同じバス上に接続され、常時8086/8088が実行する命令を監視しています。8086/8088が浮動小数点演算命令(ESC命令)を検出すると、8087はそれに対応する命令とオペランドを読み込み、演算処理を実行します。8087は68個もの新しい浮動小数点演算命令を提供しました。これには加算命令(FADD)、乗算命令(FMUL)などが含まれます。

8087は8086/8088と並列に動作できますが、8087の処理が完了するまで待たなければ次の命令を実行できないため、8086/8088には、8087の処理完了を待つWAIT命令が用意されていました。

スタックマシンとしての8087



8087は、一般的な汎用レジスタとは異なり、8個の80ビット浮動小数点レジスタスタックを採用したスタックマシンでした。演算命令はスタックトップの値を操作し、結果もスタックトップに格納されます。このスタックベースのアーキテクチャは、特定のタイプの演算において効率的な処理を実現しました。

データ型と内部演算



8087は、32ビットと64ビットの浮動小数点データ型に加え、80ビットの内部演算データ型を使用していました。これは、演算精度を向上させるためです。また、18桁のBCDデータ型や16、32、64ビットの整数型もサポートしていました。

x87シリーズとその後



8087は、その後80287、80387、80487へと進化を続けました。しかし、80486DX以降のCPUでは、浮動小数点演算ユニットがCPU本体に統合されるようになり、8087のような独立したコプロセッサは不要となりました。それでも、x87命令セットは互換性の維持のため、現代のCPUでもサポートされています。ただし、AMD64アーキテクチャでは、SSE/SSE2命令セットが浮動小数点演算の基本となっています。

普及と影響



NEC PC-9801シリーズやIBM PC互換機など、多くの8086/8088ベースのコンピュータは、8087を搭載できるよう設計されていました。8087は、当時の科学技術計算や高度なアプリケーション開発に大きな貢献を果たしました。その設計思想や技術は、今日のCPUアーキテクチャにも大きな影響を与えていると言えます。

参考文献



Intel, 1989 Intel Microprocessor and Peripheral Handbook_Vol_1, 1989, ISBN 1-55512-041-5
Intel, 80387 Programmers Reference Manual 1987, 1987, ISBN 1-55512-057-1
* 田辺皓正編著『マイクロコンピュータシリーズ15 8086マイクロコンピュータ』丸善株式会社、1983年4月30日

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。