乗算器と除算器
琉球大学 情報工学科 和田 知久
- 加算はリップル・キャリー・アダー、キャリー・ルック・アヘッド・アダーをやった!
- シフトはビットが左右に動くだけですので、簡単!
- ということで、乗算をやるハード・ウエアを考えましょう!
乗算器
P228
- 被乗数 (multiplicand)
- 乗数 (multiplier)
- 積 (product)
気が付くこと
- 積の桁数が乗数、被乗数よりも相当長い!
符号ビットを無視すると、nビット x mビットの積は n+mビットとなる。
- したがって、オバーフローに対応必要です。普通のプロセッサでは、32ビットX32ビットで32ビットの積を一般に仮定しています。
乗算アルゴリズムとハードウエアの第1のバージョン
図4.25
例題P231
乗算アルゴリズムとハードウエアの第2のバージョン
- 第1のアルゴリズムでは、被乗数のビットの半分が’0’であり、ALUの加算で何もしない場合が多く、無駄である。
- また、第一のアルゴリズムでは、被乗数を左へシフトし、空いた位置には’0’を挿入していた。したがって、積の最下位ビットが設定された後は、それが被乗数の影響を受けることはありえない。そこで、積を右へシフトすることを考えた。そうすると、加算器のサイズが半分になる。
図4.28
例題P234
乗算アルゴリズムとハードウエアの最終のバージョン
- 積レジスタに無駄なスペースがあるので、積レジスタの右半分を乗数レジスタとする。
除算器
- 除算は乗算と逆の算術演算操作である。乗算よりも出現頻度は少なく、取り扱いも厄介。
- 被除数 (dividend)
- 除数 (divisor)
- 商 (quotient)
- 剰余 (remainder)
除算アルゴリズムとハードウエアの第1のバージョン
図4.36
例題P245
クイズ7 :学籍番号、名前、日付を書いて提出のこと。
1) P231の例題を参考に、310X710を同様に計算せよ!
2) P234の例題を参考に、310X710を同様に計算せよ!
3) P245の例題を参考に、710を310で割り算せよ!