0 導入—「計算機の加算回路はどのように作られているか」

c 関西学院大学 石浦 菜岐佐)
「論理回路」ノート (2016 年度, http://ist.ksc.kwansei.ac.jp/∼ishiura/lc/
導入—「計算機の加算回路はどのように作られているか」
0
0.1
2 進数
10 進数 (
number)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, · · · , 99, 100, 101 · · ·
119210 = 1
+1
(an−1 an−2 · · · a1 a0 )10 =
+9
+2
n−1
X
i=0
8 進数 (
number)
0, 1, 2, 3, 4, 5, 6, 7,
7108 = 7
,···,
,
+1
(an−1 an−2 · · · a1 a0 )8 =
,
+0
···
,
=
10
n−1
X
i=0
2 進数 (
number)
0, 1,
,
,
,
+1
11102 = 1
(an−1 an−2 · · · a1 a0 )2 =
,
,
+1
,···
,
+0
=
n−1
X
i=0
☆ 16 進数, 2 進数と 10 進数の相互変換, 負の数
の 2 進表現については, 1 章「数の表現法」で学ぶ
0.2
2 進数の加算と加算回路の基本構成
10 進数の加算
(1)
+)
1
· · · 桁上り (
(0)
(1)
5
5
5
2
8
7
0
8
5
··· 和 (
)
)
2 進数の加算
+)
1
0
1
1
· · · (1110 )
1
1
1
0
· · · (1410 )
··· (
0–1
10 )
10
2 進数加算回路の基本構成
1
0
1
1
1
1
1
0
❄❄❄
FA
❄❄❄
FA
❄❄❄
FA
❄❄
HA
❄
❄
❄
❄
❄
このような加算器を桁上げ伝播加算器 (
HA:
(
) と呼ぶ
)
2 つの 1 ビット入力 a, b の 1 ビット和 (sum) s と桁上り (carry) c′ を計算する回路
a
b
0
0
0
1
1
0
1
1
c′
s
☆ このような表を
) と呼ぶ
(
☆ a と b の値が決まると, c′ と s の値が一意に決まる. すなわち,
c′ = hc′ (a, b)
s = hs (a, b)
と書ける. このように, 論理値 {0, 1} だけを扱う関数を
関数 (
ある
) という. 論理関数の表現法や様々な数学的性質については, 2 章
「論理代数と論理関数 (1)」, 3 章「論理代数と論理関数 (2)」, 11 章「論理関数の諸性質」で詳しく勉
強する.
いは
FA:
(
)
3 つの 1 ビット入力 a, b, c の 1 ビット和 (sum) s と桁上り (carry) c′ を計算する回路
a
b
c
0
0
0
c′
s
a
b
c
c′
s
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
⇒
0–2
☆ c′ = fc′ (a, b, c) は, 3 つの論理値 (a,b,c) の
になっている.
このような論理関数を多数決関数 (
function) という.
のときに 1 になっている.
☆ s = fs (a, b, c) は, 3 つの論理値 (a,b,c) の合計が
このような論理関数をパリティ関数 (
0.3
論理ゲート—「部品」
and ゲート (論理
y
a b
a, b の
a
b
0
or ゲート (論理
)
y =a·b
a b
not ゲート (論理
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
a b
y
a
y=a
a
が 1 の時 y が 1
yはaの
論理和)
a
b
0
0
0
1
1
0
1
1
a, b の
a, b の
)
y =a+b
b
y
が 1 の時 y が 1
y
)
a
exclusive-or ゲート (
0.4
function) という.
y =a⊕b
が 1 の時 y が 1
論理代数—論理演算の性質
論理演算の色々な性質
意外な性質
x·0=
x + xy =
x·x=
(x + a)(x + b) =
x+1=
(x + a)(x + b)(x + c) =
x+x=
x=
···
x + xy =
xy + yz + xz =
···
2 章「論理代数と論理関数 (1)」, 3 章「論理代数と論理関数 (2)」, 5 章「論理式の簡単化 (1)」で詳しく勉
強する.
0–3
0.5
論理ゲートによる加算回路の設計
半加算器 HA の設計
a
b
c′
s
ab
a⊕b
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
HA
a b
c′ =
s=
c
s
全加算器 FA の設計
a
b
c
c′
s
ab + bc + ca
a⊕b⊕c
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
a b c
FA
c′ =
s=
c’
s
☆ 論理回路の設計法については 4 章「組合せ論理回路」で学ぶ.
4 ビット加算回路の全貌
a3 b3
FA
a b c
a2 b2
FA
a b c
a1 b1
FA
a b c
a0 b0
HA
a b
c
c’
s4
s
s3
c’
s
c’
s2
s
s
s1
s0
☆ 実際の加算回路は, もっと高速に動作するよう工夫されている. 10 章の「算術演算回路」では, 加算回路の
他に減算回路, 乗算回路, および高速な加算回路の構成法について学ぶ.
☆ この他, 記憶を持った回路について 7 章「順序回路」, 8 章「順序回路の設計 (1)」で学ぶ.
Nagisa ISHIURA
0–4