計算機算術
一般的な整数の除算器(1ビットずつ商を求める回復型・非回復型など)が、乗算器より遅くなりやすい理由として正しいものはどれか。
- A割り算は掛け算より、計算の結果のビット数が多くなるから
- B商の各ビットが前の結果に依存し、並列化しにくいから
- C割り算の回路は、浮動小数点でしか作れないから
答えと解説を見る
正解:B. 商の各ビットが前の結果に依存し、並列化しにくいから
掛け算では部分積をすべて同時に作り、ウォレスツリーなどで並列に足せます。一方、筆算の割り算と同じ方式の除算器では、余りから除数を引けるかどうかを調べて商の1ビットを決め、その結果の余りを使って次のビットを決めるため、各ステップが前の結果に依存します。そのため1サイクルに1〜数ビットずつしか進めず、数十サイクルかかることもあります。逆数をニュートン法で求めて掛け算に変える方式もあります。結果のビット数が多いわけではありません。
- A. 商のビット数は掛け算の結果より多くはなりません。
- B. 正しい。各ビットが前の結果に依存し、並列化しにくいからです。
- C. 整数の除算器も作れます。