[Next] [Up] [Previous] [Contents]
Next: 2.8.2 論理回路による引き算
Up: 2.8 論理回路による算術演算
Contents: コンピュータのしくみ

2.8.1 論理回路による足し算 arithmetic sum with logical circuits

2進数の1桁は 0 か 1 の値しかとりません。 この2進数での1桁のことを 「1 ビット bit」といいます。 はじめに,「1 ビットの足し算回路」について考えます。 つまり,

という4通りの場合について正しい答えを出力するための回路です。 10 進数での 「2」 という数は2進数だと 「10」 と表されます。 ですから,上の例を2進数で表現すると,

と書けます。

このような計算をどのような電子回路で実現できるでしょうか? 中身は後で考えるとして,外から見れば2本の入力信号線と2本の出力信号線を備えた回路になるはずです。 つまり,足し算の2つの入力を A, B という2本の入力信号線に, 出力のうち「20 = 1」の桁の数字を Y0 という出力信号線, 「21 = 2」の桁の数字を Y1 という出力信号線に割り当てます。 全体としては,図 2.32 のような形になるわけです。


図 2.32 1桁の足し算回路。Y0 は 20 の桁の数,
Y1 は 21 の桁の数を出力する。

つぎに,この回路の中身を考えましょう。出力 Y0 と Y1 とに分けて考えます。 出力 Y0 と入力 A, B の間には表 2.2 のような関係があります。

表 2.2 「1ビット」の足し算回路。入力 A, B と 20 の桁の出力 Y0

A B Y0
00 0
01 1
10 1
11 0

この関係を論理式を使って書くために,次のように考えます。 表 2.2 から,「出力が 1 になる」のは,「A=0 かつ B=1」の場合と, 「A=1 かつ B=0」の場合との2通りあります。これを式で表せば,

となります。 この関係は,図 2.18 の論理ゲートのところに出てきた「排他的論理和 XOR」と同じですね。 つまり,XOR ゲートを使えば「一桁の足し算の 20 = 1 の桁を得る回路」になるわけです。

つぎに,出力 Y1 と入力 A, B の間には表 2.3 のような関係にあります。

表 2.2 「1ビット」の足し算回路。入力 A, B と 21 の桁の出力 Y1

A B Y1
0 0 0
0 1 0
1 0 0
1 1 1

これを式で表せば,

となります。

この関係は,「論理積 AND」そのものですね。 つまり,AND ゲートを使えば1桁の足し算の繰り上がりの部分, 21 = 2 の桁を得る回路になるわけです。 これらのことをまとめれば,1ビットの足し算をするための回路としては全体としては,図 2.33 のような構成になります。


図 2.33 「1ビット」の足し算回路 (2)。XOR ゲートと AND ゲートの組み合わせで実現できる。

次に,任意の桁数の足し算回路について考えましょう。 足し合わせる2つの数が両方とも2進数で N 桁だとします。 つまり,2つの数 A, B がそれぞれ,

のように表されるとします。これらを足し合わせた数 Y は,最大でも N+1 桁にしかなりません。これを

と書くことにします。 足し算の結果の 2j の桁の数字 Yj は,Aj と Bj, それと 2j-1 の桁の繰り上がりがあるかどうかによって決まります。 2j の桁の入力を A, B, 2j-1 の桁の繰り上がりを C, 2j の桁の出力を Y0 , 2j の桁の繰り上がりを Y1 と表すことにすれば, 各桁について以下の表で表されるような「3入力1ビット足し算回路」を使えば良いことがわかります。

表 2.4 3入力1ビット足し算回路

ABC Y0Y1
000 00
001 10
010 10
011 01
100 10
101 01
110 01
111 11

「2入力1ビット足し算回路」を図 2.33 の記号で表すことにすれば, これを使って「3入力1ビット足し算回路」を図 2.34 のように組み立てることができます。


図 2.34「3入力1ビット足し算回路」

さらに,この「3入力1ビット足し算回路を」を必要な数だけ集めれば, 任意のビット数の算術和を求める回路が作られます(図 2.35)。


図 2.35「2入力 N ビット足し算回路」


[Next] [Up] [Previous] [Contents]
Next: 2.8.2 論理回路による引き算
Up: 2.8 論理回路による算術演算
Contents: コンピュータのしくみ


2004-04-17