計算機算術

桁上げ先見加算器で使う、各桁の生成信号 g と伝搬信号 p の定義(a、bはその桁の入力)と、上の桁への桁上げ c(i+1) の式の組み合わせとして正しいものはどれか。

  1. Ag = a + b、p = a・b、c(i+1) = p + g・c(i)
  2. Bg = a・b、p = a ⊕ b、c(i+1) = g + p・c(i)
  3. Cg = a ⊕ b、p = a・b、c(i+1) = g・p・c(i)
答えと解説を見る

正解:B. g = a・b、p = a ⊕ b、c(i+1) = g + p・c(i)

その桁で a と b がともに1なら、下からの桁上げに関係なく必ず桁上げが生じるので、生成信号は g = a・b です。a と b のどちらか一方だけが1なら、下からの桁上げをそのまま上へ伝えるので、伝搬信号は p = a ⊕ b(OR とすることもある)です。よって c(i+1) = g(i) + p(i)・c(i) となり、これを展開すると、各桁の桁上げを入力のg・pと最下位の桁上げだけから2段の論理で並列に求められます。生成と伝搬を取り違えた式では正しく計算できません。

  • A. gとpの定義が逆で、式も誤っています。
  • B. 正しい。g = a・b、p = a ⊕ b、c(i+1) = g + p・c(i)です。
  • C. 定義が逆で、式もすべてのANDになっていて誤りです。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 乗算器で多数の部分積を足し合わせるのに、桁上げ保存加算器が使われる主な理由はどれか。
  2. 高速な乗算器で使われるウォレスツリーの特徴として正しいものはどれか。
  3. 乗算器で基数4のブースのアルゴリズム(ブース符号化)を使う主な効果はどれか。
  4. 符号なしの8ビットの数どうしを掛けたとき、結果を桁あふれなく表すのに必要なビット数はどれか。
  5. 整数 x を10倍する計算を、掛け算の命令を使わずにシフトと足し算で行う式として正しいものはどれか。