加算器
加算器(かさんき、英: AdderあるいはSummerとも)あるいは加算回路(かさんかいろ、英: adder circuit)は、加算を行う演算装置。演算回路の基本となる演算器のうち、加算(足し算)の機能を持つ演算器のことであり、2進数の加算を行う論理回路。
半加算器が基本であり、半加算器は下位桁からの桁上がりを考慮しない1ビット同士の加算を行い、和と桁上がりを出力する。全加算器は下位桁からの桁上がりを考慮した1ビット同士の加算を行い、和と桁上がりを出力する。そして、多桁の加算を行う場合は半加算器と全加算器を組み合わせて加算器を構成する。 ちなみに、情報処理技術者試験の教科書の説明では、加算回路の中でも半加算回路は二進数最下位桁の加算を行う回路であり、全加算回路は二進数最下位桁以外の加算を行う回路であり、これら2つの回路を組み合わせると、二進数の加算ができるという説明になっている。
加算は情報処理の基本であるため、高速な情報処理のためにはまず加算器の動作の高速性が求められる。論理回路の動作速度は、入力から出力までの間にある基本論理素子(ANDまたはOR回路)の個数が大きく影響するため、加算器におけるこの段数を考察してみよう。
上記の半加算器では入力AまたはBから出力Sまでの基本論理素子の段数は2、出力Cまでの段数は1である。(一般にはNOTは段数に含めない。基本論理素子を構成する回路の入力用トランジスタを逆に使うだけでNOTは実現できるからである。)
同様に、全加算器ではSの段数は4、Cの段数も4になる。このことより、上記の6桁の加算器では、最大の段数となるA0入力からC出力までの間は、全加算器Cの段数×5+半加算器Cの段数 = 4×5+1 = 21段ということになる。
桁数が大きくなってくるとこの段数はかなり大きいものとなるので、各素子の伝播遅延の合計の遅延時間も顕著となり高速処理の大きな障害になってくる。このため、段数を大きくしている桁上げ信号(キャリー信号)の部分を別に計算する事により、段数を減らすという事がしばしば行なわれる。