計算機基礎

計算機基礎
根来 均
(第4
(第4週)
論理回路
計算機基礎 08 根来
授業の目的
計算機内部 (CPU) で、どのような「論
理回路」を用いて演算や論理演算が行わ
れているかを理解する。
1
計算機基礎 08 根来
参考書に関するコメント
ソフトウェアにハードウェア、そして
インターネットまで概要が書かれている。
■
「(電気・電子系教科書シリーズ 17)計算機システ
17)計算機システ
ム」
春日健・舘泉雄治 著/コロナ社
■
原理を中心に説明。
「コンピュータのしくみを理解するための
10 章」
C 言語によるプログラムの例もある。
馬場敬信 著/技術評論社

「(情報科学こんせぷつ)コンピュータの仕組み」
尾内理紀夫 著/朝倉書店
現在の CPU, メモリアーキテクチャが
詳しく書かれている。
論理回路
計算機基礎 08 根来
(ブール代数: boolean algebra)


1854 英 Boole がブール論理 / 1938 米 Claude E.
Shannon が計算機に適用
スイッチ回路で
論理和 (OR)
論理和を実現
A
A
0
0
1
1
B
0
1
0
1
A+B
0
1
1
1
ここでの 0, 1 は、偽 (false, 0)と
真 (true, 1) を表し、2 進数の和を
表してるのではない。
B
MIL記号 (米国軍用規格 Military
Standard) A
OR “gate”
B
2
計算機基礎 08 根来

論理積(AND
)
論理積(AND)
A
0
0
1
1

A・B
B
0
1
0
1
0
0
0
1
B
(inverter を用いる)
家電製品で
使われる
インバータとは
違います
A
1
0
MIL記号
A
論理否定(NOT
)
論理否定(NOT)
A
0
1
B
A
MIL記号
計算機基礎 08 根来


否定論理和(NOR,
否定論理和(NOR, Negative OR)
OR)
A
0
0
1
1
B
0
1
0
1
A+B
1
0
0
0
A
0
0
1
1
B
0
1
0
1
A・B
A
B
否定論理積(NAND,
否定論理積(NAND, Negative AND)
AND)
1
1
1
0
A
B
3

排他的論理和(XOR,
排他的論理和(XOR, eXclusive OR)
OR)
A
0
0
1
1
B
0
1
0
1
A+B
0
1
1
0
A
B
A
半加算回路
S
(和
)
X
例
(X=)1
(Y=)1
10
計算機基礎 08 根来
B
Y
Cr(桁上げ)
|| ||
Cr S
計算機基礎 08 根来
基本論理回路
論理和 (OR)
否定論理和
(NOR)
論理積 (AND) 論理否定 (NOT)
否定論理積
(NAND)
排他的論理和
(XOR)
4
計算機基礎 08 根来
実際の回路では NAND か NOR だけ!

NAND だけの例
A
B
A・B
0
0
1
1
0
1
0
1
1
1
1
0
NOT !
AND !
さらに OR は、ド・モルガン則 (A+B = A・B) より、
NOT と AND
で表せる!
A + B = A・B
A
B
計算機基礎 08 根来
さらに、NAND は簡単な実際の
(半導体)回路で実現可能
Drain
- - -
nn
Gate
+++
- - -
P
n
Source
MOS 電界効果トランジスタ
5
計算機基礎 08 根来
さらに、NAND は簡単な実際の
(半導体)回路で実現可能
C
1→0
Drain
A
0→1
n
P
Gate
n
Source
MOS 電界効果トランジスタ
B
0→1
1 / 0:電位が高い/低い状態
計算機基礎 08 根来
全加算器 (full adder, FA)
半加算回路
半加算回路の
図での
(X=) A
半加算回路の図の
Cr に下位からの桁
上げの結果も入っ
ている。
(Y=) B
C
(下位からの桁上げ)
D (桁上げ)
S (和)
半加算回路
6
計算機基礎 08 根来
全加算器 (full adder, FA)
半加算回路
半加算回路の
図での
(X=) A
半加算回路の図の
Cr に下位からの桁
上げの結果も入っ
ている。
(Y=) B
FA
D (桁上げ)
S (和)
C
(下位からの桁上げ)
半加算回路
2つの FA を使った例
A
B
C
A’
(2桁目の)
B’
D
FA
(1桁目の)
C’
FA
S
計算機基礎 08 根来
D’
S’
1桁目の FA の桁上がりの D
であり、2桁目のFA の C’。
例
(1)
(A’=) 1 1 (=A)
(B’=) 0 1 (=B)
1 0 0
|| || ||
D’ S’ S
7
計算機基礎 08 根来
演算回路
2進数で 16 桁
(16 bit) の加算回路
a = (a16a15 …. a1)2 b = (b16b15 …. b1)2 s = (s16s15 …. s1)2
s = a+b
a16 b16c16
FA
・・・・
a3 b3 c3
a2 b2 c2
a1 b1 c 1
FA
FA
FA
s16
s3
引き算は?
s2
s1
回路で加算が可能
-> 全演算が可能
計算機基礎 08 根来
符号化回路 (Encoder)
入力(例えば、キーボードから)
電流
0 1 2 3 4 5 6 7
0
3 bit 目
1 2 bit 目
符号化
された
出力
1 1 bit 目
問: 0 から 15 (F) まで符号化する符号化回路は?
8
解読回路 (Decoder)
計算機基礎 08 根来
符号化された
3 bit 目 0
2 bit 目 1
1
1 bit 目
0
1
2
3
4
5
6
7
出力(例えば、モニターに表示)
問: 4 bit の場合は、どうなる?
計算機基礎 08 根来
フリップフロップ (Flip-Flop, FF) 回路
(set)
S 1
Q0
1
0
1
R
Q
記号
S
R
Q
Q
9
計算機基礎 08 根来
フリップフロップ (Flip-Flop, FF) 回路
入力が 0 になっても
1 bit の情報を保持。
S
1 bit の記憶素子
として利用 (SRAM)
0
Q0
1
0
1
R
Q
記号
S
R
例えば、この
出力値が 1 bit
の情報に対応
する。
Q
Q
計算機基礎 08 根来
フリップフロップ (Flip-Flop, FF) 回路
S
Q
1
0
R 1
(reset)
記号
1
Q0
S
R
Q
Q
10
計算機基礎 08 根来
まとめ

ブール代数を用いた、基本的な論理回路の組み
合わせで加算回路を構成


2つの半加算回路を用いて全加算回路を構成
し、それを n 個繋げて n 桁の演算回路を構成



実際の回路は、半導体を用いた NAND/NOR 回路の
みで全ての論理回路を構成
四則演算が回路を用いて可能
符号化回路や解読回路も同様に構成可能
フリップフロップ回路は、1ビットの(高速)
記憶素子として利用可能
11