全加算器(n bit加算器)の回路図と動作原理

半導体からコンピュータへ
Sponsored

概要

全加算器とは何か?」

全加算器を構成する回路図を読み解いて、その動作原理を解説する。

この記事を読むことで、半加算器の桁上げ処理を連結し、任意の桁の足し算を行う回路を作る方法が理解できる

関連記事

この記事はシリーズ「半導体からコンピュータを作る」の第9章である。

過去の章で前提となる知識を解説しているため、不明点があれば参照してほしい。

(本記事ではとくに、半加算器の知識が必須になる)

また、記事の内容を理解した後、シリーズの他の記事も合わせて読むことで、半導体やコンピュータに関する知識を深めることができる。

半導体からコンピュータを作る【全9ステップ】
はじめに半導体の性質を把握し、それにもとづいてパーツを作り、最終的にコンピュータが動く原理を理解します。このシリーズの記事を読むことで、コンピュータの原理をその構成要素にもとづき、0から深く理解することができます。

全加算器

半加算器から全加算器へ

半加算器は1bitの足し算のみが可能な回路である。

これを複数つなげ、桁上げ出力を上の位の計算へと伝播させていくことによって、より大きな桁数の足し算を行うことができる(全加算器)。

回路図

半加算器の中に書かれているA, B, S, Cは端子であり、それぞれ半加算器の入力1(A)、入力2(B)、出力(S)、桁上げ出力(C)である。

同様に、回路図の外側に書かれている端子は、それぞれ全加算器としての入力1(A)、入力2(B)、出力(S)、桁上げ出力(C)である。

そしてXも全加算器の端子であるが、ここには下の位に対応する全加算器からの繰り上がり(桁上げ出力:C)が入力される。

以降の説明では、回路の左上の半加算器を「半加算器1」、右下の半加算器を「半加算器2」と呼称する。

動作の基本的な考え方

全加算器では、まず同じ桁の数字(A, B)の足し算を行う。

そして、その結果の一の位(半加算器1のS)に下の位からの繰り上がり(X)をさらに加算すると、この桁の値が決定する(S=半加算器2のS)。

また、1回目のA+Bの計算で繰り上がりが生じる(半加算器1のC=1)か、2回目のXとの計算で繰り上がりが生じた場合(半加算器2のC=1)は、回路全体としての桁上げ(C=1)となる。

ここで、1回目と2回目ともに繰り上がりが生じることはないため、上記の処理はORゲートを用いて実装できる。

なぜならば、1回目で繰り上がりが生じた場合、

$$A+B=1+1=10$$

より、半加算器1のS=0であり、2回目の計算で繰り上がりは生じないためである。

以上のように各桁で計算を行い、さらに上位の加算器へと桁上げ入力を伝播させていくという処理が続く。

4bit加算器の例(0101 + 1110 = 10011)

上の回路を4つ接続することによって、4bitの加算器を作ることができる(下図)。

この回路では、下にある加算器がより上位の桁の計算を行うため、入出力は下から上に読むことになる

そのため0101の入力は、各半加算器1のA端子に上から1, 0, 1, 0を入力する。

同様に、1110は各半加算器1のB端子に上から0, 1, 1, 1を入力する。

各全加算器のC端子は上位の加算器のX端子に接続されるが、最下位の加算器では下からの繰り上がりがないため、最下位のX端子には0を入力する。

以上の入力を行うと、各全加算器のS端子と、最上位の全加算器のC端子からの出力が得られるが、これらを下から上に読むと10011となり、正しく計算できていることがわかる。

シリーズ全体としてのまとめ

以上、9回の連載で半導体からコンピュータの基礎である加算器を作ることができた。

ちなみに、現行のコンピュータに多い64bitの計算では、加算・減算のために約1,000個、乗算・除算のためには約10万個のトランジスタが必要になる。

そのため、トランジスタは「最も多く作られた人工物」とも言われる、現代社会を支えている重要なパーツなのである。

Comments