電気とリレー:懐中電灯から論理ゲートへ
電気の基礎から始まり、スイッチ・リレー・論理ゲートへと積み上げる。スイッチの組み合わせだけでAND/OR/NOT/XORを実現できることを回路図とともに解説。CODE第2版 Ch.4, 6-8。
電気の基礎
まず物理の話から。本書が使う電気の概念は3つだけ。
電圧(V):水圧のようなもの。電子を押し出す力
電流(A):水流のようなもの。単位時間に流れる電子の量
抵抗(Ω):水道管の細さのようなもの。電流の流れにくさ
オームの法則:電流 = 電圧 ÷ 抵抗(I = V / R)
直列回路:抵抗が合計される → どちらかが切れると全部消える
並列回路:電圧が同じになる → 一方が切れても他方は点灯
これだけ覚えれば、本書の電気回路は全部理解できる。
懐中電灯の解剖
本書第4章のスタート地点。
【懐中電灯の基本回路】
+───[スイッチ]───[電球]───+
│ │
[電池] │
│ │
─────────────────────────── ─
スイッチON → 回路が閉じる → 電流が流れる → 電球が光る
スイッチOFF → 回路が開く → 電流が止まる → 消える
「スイッチが開いているか閉じているか」= 0か1か。これがデジタル信号の物理的な実体。
電信とリレー:長距離信号の中継
電池と電線があれば信号を遠くへ送れる。しかし問題がある。
電線を長くすると電気抵抗が増加
→ 電流が弱くなる → 電球が暗くなる → 信号が読めなくなる
解決策:リレー(継電器)
発信器 ──電線──→ [リレー] ──電線──→ [リレー] ──→ 受信器
リレーの仕組み:
弱い入力電流 → 電磁石を励磁 → スイッチを引き寄せる
→ 新しい電池から強い出力電流
「弱った信号を入力として、新しい強い信号を出力する」
→ 信号を何km延ばしても品質が落ちない
リレーは「電気で動くスイッチ」。これが次のステップへの鍵。
スイッチで論理演算をする
スイッチを組み合わせると、驚くべきことが起きる。
AND(直列接続)
+──[SW_A]──[SW_B]──[電球]──+
│ │
[電池] │
└────────────────────────── ─
A=ON かつ B=ON のときだけ電球が点灯
真理値表:
A B 出力
0 0 0
0 1 0
1 0 0
1 1 1 ← A AND B
OR(並列接続)
+──[SW_A]──┬──[電球]──+
│ │ │
[電池] [SW_B] │
│ │ │
└───────────┴───────── ─
A=ON または B=ON なら電球が点灯
真理値表:
A B 出力
0 0 0
0 1 1
1 0 1
1 1 1 ← A OR B
NOT(反転)
+──[電磁石]────────────────── +
│ │
[電池] [SW](電磁石で引かれると開く)
│ │
└──────[電球]─[SW]─────────── ─
入力あり → SW が開く → 電球消える
入力なし → SW が閉じる → 電球点灯
真理値表:
A 出力
0 1
1 0 ← NOT A
リレーから論理ゲートへ
スイッチをリレーに置き換えると、「電気信号で制御される論理演算」ができる。
【AND ゲート(リレー2個・直列)】
入力A ──→ [リレーA のコイル]
入力B ──→ [リレーB のコイル]
電源 ──→ [リレーA のスイッチ]──[リレーB のスイッチ]──→ 出力
A=1 かつ B=1 のとき両方のスイッチが閉じて出力=1
【OR ゲート(リレー2個・並列)】
電源 ──→ [リレーA のスイッチ]──┐
[リレーB のスイッチ]──┘──→ 出力
どちらか一方でも ON なら出力=1
6つの基本論理ゲート
現代の論理回路で使われる基本ゲート。すべてスイッチとリレーの組み合わせで実現できる。
記号と真理値表:
AND ゲート(・):両方 1 のとき 1
A ─┐
├─[AND]─ A・B
B ─┘
OR ゲート(+):どちらか 1 のとき 1
A ─┐
├─[ OR]─ A+B
B ─┘
NOT ゲート(¬):反転
A ─[NOT]─ Ā
NAND ゲート:AND の否定
A ─┐
├─[NAND]─ ¬(A・B)
B ─┘
→「全部1のとき0、それ以外は1」
NOR ゲート:OR の否定
→「全部0のとき1、それ以外は0」
XOR ゲート(排他的OR):
A ─┐
├─[XOR]─ A⊕B
B ─┘
→「入力が異なるとき1、同じとき0」
真理値表:
0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0
XOR は加算回路の核心。1+1=10(2進数で桁が上がる)のうち「1桁目の結果」が XOR、「桁上がり」が AND に対応する。
NAND の特別な地位
NAND ゲートは万能ゲート。NAND だけで他のすべてのゲートを実現できる。
NOT(A)= NAND(A, A)
A──┐
├─[NAND]─ ¬A
A──┘
AND(A, B) = NOT( NAND(A, B) )
= NAND( NAND(A,B), NAND(A,B) )
OR(A, B) = NAND( NAND(A,A), NAND(B,B) )
= NAND( ¬A, ¬B )
実際の集積回路製造では、NAND ゲートのみで構成されたチップが多い(製造プロセスを単一に絞れるため安価・高密度)。
ブール代数との対応
これらのゲート操作は、George Boole が1854年に発表した「思考の法則(Laws of Thought)」と完全に対応している。
ブール代数の基本法則:
交換律:A・B = B・A A+B = B+A
結合律:A・(B・C) = (A・B)・C
分配律:A・(B+C) = A・B + A・C
ド・モルガン:¬(A・B) = ¬A + ¬B
¬(A+B) = ¬A・¬B
電気回路 → 論理記号 → 代数式 → 真理値表、すべて同じことの別表現。
1937年、Claude Shannon がブール代数と電気回路スイッチングの等価性を証明する修士論文を発表。「20世紀で最も重要な修士論文」と呼ばれる。この発見が現代のデジタルコンピュータの理論的基盤になった。
まとめ
懐中電灯のスイッチ
↓ 複数組み合わせる
直列・並列回路(AND・OR)
↓ スイッチを電磁式にする
リレー(電気で動くスイッチ)
↓ 抽象化する
論理ゲート(AND・OR・NOT・NAND・NOR・XOR)
↓ 組み合わせる
加算回路・メモリ・CPU(次のdocへ)
「スイッチと電線の組み合わせだけで、
どんな論理演算も計算できる」 - 1. 📖CODE:コンピュータのからくり — シリーズ概要
- 2. 📡信号とコード:点字・モールス・情報伝達の原理
- 3. ⚡電気とリレー:懐中電灯から論理ゲートへ
- 4. 🔢数の体系:2進数・16進数・ASCIIからUnicodeへ
- 5. ➕算術回路:加算器・2の補数・減算の実装
- 6. 💾記憶と時計:フリップフロップ・クロック・RAM
- 7. 🖥️CPUの構造:ALU・レジスタ・バス・制御信号
- 8. 🖥️OSとプログラミング:機械語から高水準言語まで
出典: https://www.amazon.co.jp/dp/4296080245