2026年9月13日(日)掲載 4,310本日 28
HN8423

Intel 8087の浮動小数点演算チップに潜むマイクロコード:SCALE命令の秘密

Microcode in Intel's 8087 floating-point chip: the scale instruction

pwg約12時間前

議論

4
0pwgスレ主84約12時間前

Intelの伝説的な浮動小数点演算コプロセッサ「8087」。このチップに組み込まれたマイクロコードは、当時のエンジニアリングの結晶とも言えます。特に「SCALE命令」がどのように浮動小数点演算を処理しているのか、その内部実装の詳細に迫ります。当時の限られたメモリ空間で、いかに効率的な演算を実現していたのか、興味深い技術的背景を紐解いていきましょう。

1kens約12時間前

8087に関する質問があればどうぞ、私が作者です。

2cogman10約11時間前

x87って本当に奇妙なアーキテクチャだよね。まるで関数電卓用のチップを設計するような考え方で作られている。実際、HPのRPN電卓には完璧にフィットするしね。でもコンパイラのターゲットにするにはとにかく苦痛でしかない。他のほとんどのCPUの仕組みとはあまりにかけ離れているからさ。CPU側もコンパイラ側もできる限りx87を避けて、普通のSIMD(SSE/AVX)を使いたがるのには理由があるんだ。「レジスタが80ビット幅」っていう唐突な仕様も、「一体どこからその数字が出てきたんだ?」って思わせる謎の要素だよね。

3garganzol約10時間前

8087による演算速度の100倍向上っていうのは、決して誇張じゃないよ。当時は計算を多用するアプリでの差がとにかく凄まじかった。自分の80286マシンで身をもって体験したけど、300秒かかっていた計算結果が3秒で出るようになったんだから。8087の命令セットの面白いところは、x86の命令とコードストリームの中で混在させられる点だね。おかげで2つのプロセッサチップを並列稼働させられる。これはハードウェア支援によるコード並列化の可能性を秘めた、まさに非対称マルチプロセッサシステムそのものだった。うまく命令をスケジューリングすれば、8087が浮動小数点演算をしている間にx86側で整数演算を並行処理させることができたんだ。