注目★★★★★Hacker News
Intel 8087のFSCALE、140超のマイクロ命令を解剖
30秒で把握
- 1Opcode Collective が8087 FSCALEのマイクロコードを解析
- 2FSCALEは140超の命令と3段階のサブルーチンで構成
- 3ゼロ・NaN・非正規化数と指数の例外処理を実装
要約
Opcode Collective は Intel 8087 の FSCALE 命令を実装するマイクロコードをリバースエンジニアリングした。FSCALE は浮動小数点数を2のべき乗で高速にスケーリングする命令だが、140以上のマイクロ命令と3段階のサブルーチン呼び出しで構成される。8087のマイクロコードROMには1648個のマイクロ命令があり、FSCALEは指数を整数化して加算し、オーバーフローやアンダーフロー、ゼロ・NaN・非正規化数などを処理する。解析では、2つのNaNを比較して大きい方を返す文書化済みの動作や、tmpA/tmpBの役割をフリップフロップで交換する実装も明らかになった。
あなたへの影響
CPUや数値計算の実装を調べるエンジニアは、FSCALEの特殊値処理と丸め・例外動作を仕様検証の題材にできる。
推奨:マイクロコードは命令単位で追跡し、通常経路と例外経路を分けて確認するとよい。