加算器の解説(基本情報技術者シラバス用語)

目次

加算器とは

加算器(アダー)とは、論理回路を組み合わせて作られる、コンピュータ内部で2進数の「足し算(加算)」を行うための演算回路です。コンピュータはすべての情報を0と1の2進数で扱っているため、計算の基本となる足し算を物理的な電気回路で表現する必要があります。加算器には、1ビットずつの足し算を行い桁上がり(キャリー)を出力する「半加算器」と、下の桁からの繰り上がりも考慮して3つの入力を足し合わせる「全加算器」の2種類があります。これらを複数つなげることで、複数桁の足し算が可能になります。

具体例

  • 半加算器(Half Adder):「A」と「B」という2つの1ビットの入力を足します。例えば「1 + 1」を計算すると、答えの1の位(S)は「0」になり、2の位への桁上がり(C)は「1」になります。このとき、1の位の計算にはXOR回路、桁上がりの計算にはAND回路が使われます。
  • 全加算器(Full Adder):2つの入力「A」「B」に加えて、「下の桁からの繰り上がり信号(Cin)」の合計3つのビットを同時に計算します。これにより、3桁や4桁といった大きな数字の足し算を順番に繰り上げながら計算することができます。

もう少し詳しく

コンピュータが実行する引き算、掛け算、割り算といったすべての複雑な算術演算は、根本をたどればこの加算器を用いた「足し算の繰り返し」や「足し算の応用」として処理されています。たとえば、引き算は「補数」という概念を使って数値を反転させ、それを足し合わせることで実現されます(補数加算)。掛け算は足し算を何度も繰り返す処理、割り算は引き算(つまり補数の足し算)を繰り返す処理に置き換えることができます。したがって、加算器はコンピュータの演算処理能力の根幹を支える極めて重要な回路と言えます。

加算器を構築する際には、複数の「半加算器」と「全加算器」を組み合わせます。一番下の桁(1の位)の計算には、下からの繰り上がりが存在しないため「半加算器」を用います。そして、2桁目以降の計算には、すぐ下の桁からの繰り上がり信号(キャリー)を一緒に足し合わせる必要があるため「全加算器」を順番に連結して使用します。このように複数の全加算器を直列に繋げたものを「リップルキャリーアダー(リプルキャリー加算器)」と呼びます。

しかし、リップルキャリーアダーには弱点があります。それは、下の桁の計算が終わって繰り上がり信号が出力されないと、上の桁の計算が完了しないという点です。桁数が増えるほど信号の伝達に時間がかかり、計算全体が遅くなってしまいます。この問題を解決するために、現代の高速なCPUでは「桁上げ先見加算器(キャリールックアヘッドアダー)」という高度な仕組みが採用されています。これは、下の桁の計算結果を待つことなく、あらかじめすべての桁の繰り上がりを並列に予測して計算する回路であり、計算速度を飛躍的に向上させています。

試験でのポイント

情報処理試験において加算器は、論理回路の応用例として非常によく出題されます。「半加算器」と「全加算器」の機能の違いや、内部を構成する基本論理回路の組み合わせが問われます。

特に重要なポイントは以下の通りです。

  • 半加算器の役割:2つの1ビットの入力(AとB)を足し合わせて、その桁の「和(S:Sum)」と、上の桁への「桁上がり(C:Carry)」を出力します。下の桁からの繰り上がりは考慮できません。
  • 半加算器の回路構成:「和(S)」の出力にはXOR回路(排他的論理和)が使われ、「桁上がり(C)」の出力にはAND回路(論理積)が使われます。この対応関係は頻出です。
  • 全加算器の役割:2つの1ビットの入力(AとB)に加えて、下の桁からの「桁上がり入力(Cin)」を含めた3つのビットを同時に足し合わせます。
  • 全加算器の構成:全加算器は、2つの「半加算器」と1つの「OR回路」を組み合わせて作ることができます。

試験問題では、半加算器の図が示され、「Xにあてはまる回路はどれか(答え:XOR回路)」を答えさせるような形式が定番です。真理値表を自分で書いて「1+1=10」になる動きを確かめると理解が深まります。

関連する用語

関連する用語として、加算器を構成する基本となる論理回路、計算に用いられるデータの表現方法である2進数や補数、演算結果を一時的に保存しておくフリップフロップやレジスタなどが挙げられます。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ