スイッチから演算回路まで
あなたが今使っているスマートフォン・パソコン・ゲーム機。
その中にある CPU は、何十億もの小さな「スイッチ」が組み合わさった巨大な回路である。
その最小単位——それが「論理ゲート」である。
0 と 1 しか知らない回路で、なぜ計算ができるのか?
電圧が低い=0(オフ)、電圧が高い=1(オン)。コンピュータはこの二値しか理解できない。
入力を受け取り、決まった論理規則で出力を決める回路。「AND・OR・NOT」が基本三種類。
ゲートを組み合わせると加算器・メモリ・CPU が作れる。レゴブロックのように積み上げるイメージ。
論理ゲートの動作は ブール代数(Boolean algebra) という数学で記述できる。 1847年にイギリスの数学者 ジョージ・ブール(George Boole) が考案した、 「真(1)」と「偽(0)」だけを扱う代数体系である。 彼は「思考の法則」という著書でこれを発表したが、当時は純粋な数学として注目されただけで、電気回路とは無縁であった。 それが100年後、電気回路に応用されることになる——。
1937年、MIT の学生であった クロード・シャノン(Claude Shannon) は修士論文でブール代数が電気スイッチ回路の設計に使えることを証明した。 「リレー回路のシンボリック解析」と題したこの論文は、「史上最も重要な修士論文」 とまで呼ばれる。 彼の発見によって、数学の抽象的な論理が物理的な電子回路として実現できることが示され、デジタルコンピュータの理論的基盤が生まれた。
ブール代数からマイクロプロセッサまでの技術史
イギリスの数学者 ジョージ・ブール が「思考の数学的分析」を出版。真(True)と偽(False)だけを扱う代数体系を考案。当初は哲学的な論理学の研究とされ、工学への応用は誰も想像していなかった。
MIT の大学院生 クロード・シャノン が修士論文でブール代数を電気スイッチ回路に応用できることを証明。電話交換機のリレー回路をブール式で設計・分析する手法を示した。「史上最も重要な修士論文」と呼ばれる偉業。
ENIAC(1946年公開)など初期のコンピュータは 真空管 でスイッチを実現。ENIAC は真空管を 18,000 本使用し、部屋 1 つ分の大きさ・消費電力 150kW。真空管は熱を持ちやすく、頻繁に故障するのが悩みの種であった。
ベル研究所の ショックレー、バーディーン、ブラッテン がトランジスタを発明(ノーベル物理学賞受賞)。真空管より小さく・速く・省電力。これがスイッチの小型化を加速させ、論理ゲートを半導体上に集積することが現実的になった。
テキサス・インスツルメンツの ジャック・キルビー が、複数のトランジスタを一枚のシリコン基板に集積する「集積回路(IC)」を発明(ノーベル物理学賞受賞)。これにより、多数の論理ゲートをチップ1枚に収めることが可能になった。
Intel が世界初のマイクロプロセッサ Intel 4004 を発売。2,300 個のトランジスタを 1 チップに収め、電卓用 CPU として設計された。処理能力は約 60,000 回/秒の演算。比較として、現代の CPU は数千億回/秒。
Apple M4 チップ(2024年)には約 280 億個のトランジスタが収められている。トランジスタのサイズはわずか 3 ナノメートル(nm)——ヒトの毛髪の太さの約 3 万分の 1。それでも論理ゲートの原理は 1937 年のシャノンの論文と全く同じである。
入力スイッチを切り替え、出力と真理値表の変化を確認する。
入力Aかつ入力BがONのときだけ、出力がONになる。
使用例:カードキー AND 暗証番号が正しい場合だけドアを開く。
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
入力Aまたは入力BがONのとき、出力がONになる。
使用例:正面玄関 OR 裏口のどちらかのセンサーが反応した場合に警報を鳴らす。
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
入力を単純に反転させる。ONはOFFに、OFFはONになる。
使用例:ドアが開いている場合はランプを消し、閉まっている場合は点灯する。
| A | 出力 |
|---|---|
| 0 | 1 |
| 1 | 0 |
ANDゲートの結果を反転させたものである。
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
ORゲートの結果を反転させたものである。
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
入力Aと入力Bが異なるときだけ、出力がONになる。
加算回路での役割:1+0=1、0+1=1、1+1=0(繰り上がりが発生)。XOR は2進数1桁の和を表す。
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
ANDゲートとXORゲートを組み合わせると、2進数1桁の足し算ができる。
| A | B | Carry | Sum |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
6種類の論理条件、式、用途を比較する。
| ゲート | 動作 | ブール式 | 主な用途 |
|---|---|---|---|
| AND | 両方 1 のとき出力 1 | A · B | 条件の AND チェック |
| OR | どちらか 1 のとき出力 1 | A + B | どれか一つでOK の判定 |
| NOT | 入力を反転 | Ā | 信号の反転・補数生成 |
| NAND | AND の反転(万能) | A·B | CPU 回路全般(最多使用) |
| NOR | OR の反転(万能) | A+B | 宇宙・航空機用回路 |
| XOR | 入力が異なるとき出力 1 | A ⊕ B | 加算回路・パリティ・暗号 |
NAND だけで NOT を作る:
A NAND A = NOT A
両入力を同じ A にすると NOT になる!
NAND だけで AND を作る:
(A NAND B) NAND (A NAND B)
NAND の結果をさらに NAND すると AND!
製造コストを下げるため、半導体メーカーは1種類のゲートセルを標準化し、組み合わせによって回路を実現する場合がある。
トランジスタからCPUまでの構成階層を整理する。
5問の設問で論理条件と回路構成を確認する。