1980年にIntelによって導入された8087・コプロセッサは、IBM PCおよびその他のシステム向けの浮動小数点演算を加速するために設計されました。現代のプロセッサはこれらの計算をネイティブに処理しますが、8087は、標準的な8086プロセッサと比較して基本的な算術演算において約100倍の性能向上を達成するために、専用回路とマイクロコードの高度な組み合わせに依存していました。このチップのアーキテクチャは、1,648個の命令を含むマイクロコードROMと、80ビットの値に対する計算を実行するデータパスに分かれています。

この図は、第1段落で説明されている80ビットの値に対する計算を実行するデータパスを示しています。
浮動小数点演算は、演算を行う前に数値のバイナリ・ポイントを整列させる必要があるため、整数の計算よりも大幅に複雑です。例えば加算では、指数が小さい方の数値の仮数部を、指数が一致するまで右側にシフトする必要があります。8087は、大規模なビットシフタと先頭ゼロ検出回路を通じてこれを促進します。この回路はゼロビットの数をカウントして、必要なシフト量を決定します。減算のプロセスも同様ですが、負の結果や、標準的な正規化を妨げる結果がゼロになるケースを処理するための追加のロジックが含まれています。

この画像は、浮動小数点の加算および減算中にバイナリ・ポイントを整列させるために使用される先頭ゼロ検出回路を描写しています。
内部的に、8087は15ビットの指数と64ビットの仮数部を特徴とする80ビットの「一時的な実数(temporary real)」形式を使用します。チップは、それぞれがゼロ、有効、特殊、または空としてタグ付けされた8つの内部レジスタのスタックを使用してこれらの値を管理します。処理の中核は、実際の計算を実行する69ビットの整数加算器であり、マイクロコードはレジスタ間のデータフローを管理し、無限大などの特殊なケースを処理し、必要な正規化シフトを実行します。これらの複雑な整列および丸め工程を専用ハードウェアにオフロードすることで、8087はその時代において計算能力の巨大な飛躍を提供しました。

この図は、第3段落で言及されている内部の80ビット一時的な実数形式とレジスタスタック構造を示しています。

このフローチャートは、データフローの管理や無限大などの特殊なケースの処理におけるマイクロコードの役割を表しています。