Intel 8087
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Intel 8087は、インテルの16ビットCPU、i8086およびi8088のために用意されていた数値演算コプロセッサ。インテル製としては初の数値演算コプロセッサである。8087を装着することによって、プログラムの処理内容にもよるが、20%~500%の性能改善が期待できた。
8086は数値演算に関して、整数演算命令しか備えていないため、8086だけで浮動小数点演算を行うには独自にライブラリを用意する必要があった。8087を8086の搭載されたコンピュータにセットすると、IEEE754形式の浮動小数点計算の命令をあたかもひとつのCPUで実行しているかのように使うことができるようになる。8087は8086と共通のバス上に配置され、8086の実行する命令を常時監視する。8086では無効命令(ESC) となる浮動小数点計算の命令を検出すると、8086側で発生する適切なアドレスモードにより追加OPコードおよびオペランドを自身内部にロードし、浮動小数点命令を処理する。8087によって新たに利用できる命令はFADD(加算命令)やFMUL(乗算命令)など60個。
8087などのインテル製の数値演算コプロセッサ(x87)は、AX~DXのようなプログラマが自由に利用できるレジスタ・セットを内蔵していない。x87の「レジスタ」はスタックを用いて実装されており、ST0~ST7と呼ばれていた。演算途中にこれらのスタックに値をpush(追加)、pop(取り出し)することで、演算を続行していた。
同社が8087を設計した当時、将来の浮動小数点形式の標準となることを目指していた。実際、IEEE754のx86向け実装の標準となることができた(厳密にはIEEE754と8087/80287の実装の間には非互換部分が存在する)。8087を使うと、32もしくは64ビットの浮動小数点データ型を利用でき、内部演算には長大で複雑な演算の誤差を少なくするために80ビットのデータ型を使っていた。その他、80ビット(17文字)のBCDデータ型と16、32、64ビットの整数型を利用できた。
1980年に発表された8087は、80287、80387DX (80387SX)、80487SXへと発展していったが、80486DXやそれ以降のPentiumなどにはCPUコア内にコプロセッサが内蔵されている。
NECのPC-9801やIBM-PCなど、8086を搭載したコンピュータには、8087を挿すことができるソケットが用意されていた。
カテゴリ: コンピュータ関連のスタブ項目 | マイクロプロセッサ | インテル