論理ゲートを作る
前講「論理とブール代数」は、直列につないだスイッチがANDを、並列につないだスイッチがORを、そのまま 物理的に実行しているという発見で幕を閉じた。そして最後に触れたのが、19世紀の誰も気づかなかった種明かし ——「コンピュータには、歯車やレバーよりも、電信のリレーを使った方がいい」だった。 手で押すスイッチを、電気で操作できるリレーに置き換えると何が変わるのか。 回路が、回路そのものを操作できるようになる——論理が、人の手を離れて自動で動き出す章である。 全5セクション・演習23問。回答はブラウザに保存されるので、途中でやめても続きから再開できる。
進捗 0 / 23 問(正解 0 問)
1. シャノンの発見 — 式の単純化は回路の単純化
前講の末尾は「コンピュータには電信のリレーを使えばいい」という種明かしで終わった。回路の部品はすべて19世紀に発明されていたのに、ブール代数とスイッチ回路が同じものであることは1930年代まで見過ごされていた。これを明確かつ厳格に示したのが、1938年のMIT修士論文「リレーとスイッチ回路の記号的分析」を書いたクロード・シャノンである。式を変形して変数の重複を消せば、対応する回路のスイッチも同じだけ減る——式の単純化がそのまま回路の単純化になるという発見が、この講全体の土台になる。回路の挙動を制御する入力デバイスと、結果を表す出力デバイスという見方もここで押さえる。
直列・並列でスイッチ回路を組む部品——電池・電球・スイッチ・導線——は、実のところすべて19世紀の うちに発明されていた。にもかかわらず、前講で確かめたブール代数とスイッチ回路が同じ構造を持つという 事実に、誰も気づかないまま数十年が過ぎた。両者の同等性が明確に示されたのは、ようやく1930年代に なってからのことである。
その最も有名な担い手がクロード・シャノンである。1916年生まれのシャノンは、1938年、 MITの修士論文「リレーとスイッチ回路の記号的分析」で、この同等性を明確かつ厳格に示した。スイッチの 直列・並列という性質そのものは、シャノン以前から経験的に知られていた。しかし、ブール代数の すべての道具を使ってスイッチ回路を設計できる——式の変形が、そのまま回路の設計手順に なる——と示したのは、シャノンが初めてだった。
ちなみにシャノンには、この10年後に発表したもう1つの重要な論文がある。「コミュニケーションの数学的 理論」——この論文が、第3講で見たテューキーの造語「ビット」を、2進数字の意味で使った最初の出版物に なった。テューキーが作った言葉を、シャノンの論文が初めて活字にした、という関係である。
シャノンの発見が実務にもたらした意味は、抽象的な話にとどまらない。 ブール式を変形して変数の重複を減らせば、その分だけ対応するスイッチ回路の部品点数が減る。 たとえば次の式変形を見てみよう。
(A×C)+(B×C) = (A+B)×C
右辺ではCが1回しか現れない。元の式のままなら回路にスイッチCが2個必要だったところが、書き換えた 式なら1個で済む。数学の式変形が、そのまま部品代と配線の節約になる——この対応関係は、この講の最後 (S5)でもう一度、別の法則を使って実演することになる。
この章ではもう1つ、以降ずっと使うことになる語彙が登場する。スイッチのように、回路の挙動を制御する 情報を与える部品を入力デバイス、電球のように、その結果を表す部品を 出力デバイスと呼ぶ。「入力→回路→出力」という見方は、この先すべての講の土台になる。
回路の部品はすべて19世紀に発明されていたのに、ブール代数とスイッチ回路が同等であることは長く気づかれなかった。1938年のMIT修士論文でこれを明確かつ厳格に示した人物は誰か
シャノンの発見が回路設計にもたらした最大の実用的意味はどれか
ブール式 (A×C)+(B×C) を分配律で書き直し、Cが1回だけ現れる形にするとどうなるか
コンピュータ用語で、回路の挙動を制御する情報を与える装置(例: スイッチ)と、その結果を表す装置(例: 電球)の組み合わせをそれぞれ何と呼ぶか
このセクション: 0 / 4 問正解
2. リレーで論理を動かす — 電気で制御できるスイッチ
スイッチを「電気で制御できるスイッチ」であるリレーに置き換えると何が変わるのか。第2講では、リレーは弱った信号を増幅して電信の次の区間に送る部品として登場したが、ここでの役割はまったく違う——手ではなく他のリレーによってオン/オフを制御できることが決定的な利点であり、リレーの出力を別のリレーの入力につなぐカスケード接続こそが論理ゲートを組み合わせる鍵になる。図では電圧とグラウンドの記号で導線を省略し、出力を2つ持つ双投式リレーが以降のゲート構成の材料になる。完成した部品としてのゲートやインバータをつなぐときは、1つの出力を複数の入力につないでよいが、複数の出力を互いに接続してはならないという規則も確認する。
第2講「遠くまで、確実に届ける」で見たリレーは、 モールス電信の弱った信号を増幅して、次の区間へ送り出すための部品だった。この章でのリレーの役割は、 まったく違う。リレーは「電気で制御できるスイッチ」である。手で押す代わりに、別の 回路の電流がスイッチを操作できるとしたら——回路が回路を操作できることになる。
この「あるリレーの出力を、別のリレーの入力(コイル)につなぐ」接続をカスケード接続 と呼ぶ。カスケード接続こそが、論理ゲートを組み合わせて、算術のようなより複雑な仕事をする回路を作れる 決定的な理由である。この先の講では、リレーだけで足し算をする回路が登場することになる。
図が複雑になりすぎないよう、電気技師はV(電圧)とグラウンドという 記号で導線の一部を省略する。グラウンドはすべて共通の接続点(コモン接続)を表す記号であって、物理的に 地面へつなぐ必要はない。すべてのVとすべてのグラウンドを互いに接続してよいので、どれだけ大きな リレーのネットワークであっても、たった1個の電池で動かせることになる。
ここで使うリレーは双投式リレーと呼ばれる種類で、出力(接点)を2つ持つ。片方に電圧が あるとき、もう片方には電圧がない——電気的に正反対の2つの出力を同時に取り出せる。電磁石に引かれて いないときに触れている接点と、引かれたときに触れる接点、そのどちらを使うかで、正反対の回路を作れる。 この「逆側の接点」が、この先インバータやNAND・NORを作る材料になる。
完成した部品としての論理ゲートやインバータを組み合わせるときには、1つの規則がある。1つの出力は 複数の入力につないでよいが、複数の出力を互いに接続してはならない。ゲートの出力は 電圧を供給する側なので、出力同士をつなぐと電圧が衝突してしまう。
なお次のセクションでORゲートを「2本に枝分かれした経路のリレーの接点を合流させて」作るが、あれは 1つのゲートの内部の配線の話である。この規則が禁じているのは、あくまで完成した 部品同士——ゲートとゲート、ゲートとインバータ——を組み合わせるときに、出力端子を直接つなぎ合わせる ことであり、ゲート内部で接点を合流させる配線とは別次元の話として区別しておく。
論理回路の部品として見たとき、リレーが手動のスイッチに対して持つ決定的な利点はどれか
リレーの図で「V」(電圧)と「グラウンド」の記号を使う目的はどれか
双投式リレーの特徴として正しいものはどれか
リレーの出力を別のリレーの入力につなぐ(カスケード接続する)と、何が可能になるか
完成した部品としての論理ゲートやインバータをつなぎ合わせるときの規則として正しいものはどれか
このセクション: 0 / 5 問正解
3. 直列=AND・並列=OR・反転=インバータ
リレーのコイルは入力ごとに独立して駆動されるが、電源から出力までの経路上でその接点をどう並べるかによって、まったく違う論理が生まれる。接点を直列につなげば両方が起動したときだけ電流が通るANDゲートに、接点を枝分かれさせて並列につなげばどちらか一方でも通ればよいORゲートになる。双投式リレーの逆側の接点を1つだけ使えば0と1を反転するインバータになるが、入力が1つしかないため、2つ以上の入力を持つという論理ゲートの定義には数えられない。ANDとORの記号の見分け方や、インバータを組み合わせた複合回路の評価もここで扱う。
2つのリレーを使ってANDゲートを作る。入力Aは1つ目のリレーのコイルを、 入力Bは2つ目のリレーのコイルを、それぞれ独立に駆動する——AとBが互いに影響し合う ことはない。直列になるのはコイルではなく接点の方で、電源から出力までの一本道の 途中に、2つの接点を連続して並べる。両方のリレーが起動して、両方の接点が閉じたときだけ、電流が出力 まで通る。前講で見たスイッチの直列接続と、まったく同じ論理が、今度は手を使わずに動く。
この直列は3つ以上に伸ばすこともできる——リレー3個を直列につなげば3入力ANDゲートになり、3つすべて が起動したときだけ出力に電圧が出る。ANDゲートの記号は、入力側が平らな形をしている。
ORゲートは、経路を2本に枝分かれさせ、それぞれの枝に接点を1つずつ置いて、出力の 手前で合流させる。ここでもコイルへの入力は独立で、並列になるのは合流する2本の接点経路の方である。 どちらか一方の接点でも閉じれば、電流はもう一方の枝を経由せずに出力まで届く。両方とも閉じられない (両方0)ときだけ、出力は0のままになる。ORゲートの記号は、入力側がORの「O」の字のように丸みを 帯びている。
双投式リレーの、"逆側"の接点を1つだけ使うとインバータになる。入力が0なら出力は 1、入力が1なら出力は0——信号を反転させるだけの部品である。ただし書籍の定義では、論理ゲートは 2つ以上の入力を持つものに限られる。インバータは入力が1つしかないので、論理ゲートに は数えない。それでもこの先ほぼすべての回路に登場する、とても便利な部品である。
AND・OR・インバータの3つがそろえば、それらを組み合わせて複合的な条件判定ができる。たとえば入力Bを インバータで反転してからAとの2入力ANDに入れれば、「Aが1で、かつBが0のとき」だけを検出する回路に なる。そしてAND・ORそれぞれの記号の出力に小さな丸を付けると、次のセクションで見るNANDとNORになる。
図で確かめた「直列=AND・並列=OR・反転」の3つを、実際に触って確かめよう。スイッチA・Bを クリックすると、電球が点灯する条件と、真理値表の対応する行が変わる。手で押すスイッチを リレーの接点に置き換えれば、同じ論理がそのまま自動で動く——それがこの講の要点である。
スイッチA・Bの両方を閉じた(ON)ときだけ電流が流れる直列回路
| A | B | 出力 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
ANDは直列つなぎで、両方のスイッチが閉じないと電流が流れません。 ORは並列つなぎで、どちらか一方が閉じれば電流が流れます。 NOTはスイッチが開いている(0)ときに通電し、閉じる(1)と遮断する「反転」の回路で、 双投式リレーの"逆側"の接点で作るインバータと同じ働きです。手で押すスイッチをリレーの接点に 置き換えれば、同じ論理がそのまま自動で動きます。
2つのリレーを直列につないだ回路が「ANDゲート」と呼ばれる理由はどれか
3入力ANDゲート(リレー3個の直列)の出力が1になる入力の組み合わせは、全8通りのうち何通りあるか
2つのリレーの接点を、枝分かれした2本の経路に置いて合流させた回路(ORゲート)の出力が0になるのはどんなときか
ORゲートの記号がANDゲートの記号と見分けられるポイントはどれか
インバータについて正しい説明はどれか
入力A=1、B=0とする。Bをインバータで反転してから、Aとの2入力ANDゲートに入れた回路の出力はどれか
このセクション: 0 / 6 問正解
4. NANDとNOR — 道具箱の完成
双投式リレーの逆側の接点を使えば、ANDの反対であるNAND(両方が1のときだけ0)と、ORの反対であるNOR(両方が0のときだけ1)も作れる。これでAND・OR・NAND・NORという4つの論理ゲートが出揃い、道具箱が完成する。リレー1個をそのまま使ったバッファは出力が入力と同じで「ほとんど何もしない」部品だが、弱い信号を強くしたり信号をわずかに遅らせたりする用途があり、後の講で意外な主役になる。ANDゲート4個とインバータ2個を組み合わせた2線-4線デコーダは、2ビットの入力に応じて4つの出力のうち常に1つだけを1にする回路で、後の講のメモリのアドレス指定にもつながる。
ANDとORの、"逆側"の接点を使うと、もう2つのゲートが作れる。NORゲート(NOT OR)は、 両方の入力が0のときだけ出力が1になる——ORの結果をそっくり反転させたものである。記号は、ORの出力に 小さな丸を1つ付けたものになる。
NANDゲート(NOT AND)は、両方の入力が1のときだけ出力が0になる——ANDの結果を そっくり反転させたものである。記号は、ANDの出力に小さな丸を1つ付けたものになる。
入力A=1、B=0という同じ入力を、AND・OR・NAND・NORの4つのゲートに通すと、出力はそれぞれ0・1・1・0に なる。4つの表を横に並べてみると、NANDの列はANDの列を、NORの列はORの列を、そっくり反転させた形に なっていることがわかる——ここまでで論理ゲートの基本の道具箱がそろった。
リレー1個をそのまま使った回路をバッファと呼ぶ。出力は入力と同じで、一見 「ほとんど何もしない」部品に見える。しかし2つの用途がある——弱くなった信号を強くする(これはまさに 第2講で電信のリレーが果たしていた役割そのものである)、そして信号をわずかに遅らせる(リレーが起動 するまでにはごくわずかな時間がかかる)。この遅延という性質は、この先の講(フィードバックと記憶)で 意外な主役になる。
ANDゲート4個とインバータ2個を組み合わせると、2線-4線デコーダという回路が作れる。 2ビットの入力の値に応じて、4本の出力線のうち、常にちょうど1本だけが1になる回路である。同じ考え方 をさらに広げれば、3線-8線・4線-16線というデコーダも作れる。この仕組みは、後の講でメモリの中から 1つの記憶場所を選び出す(アドレス指定)ときに、再び主役として登場する。
NORゲート(NOT OR)の出力が1になるのはどんなときか
NANDゲート(NOT AND)の出力が0になるのはどんなときか
入力A=1、B=0のとき、AND・OR・NAND・NORの4つのゲートの出力の組み合わせとして正しいものはどれか
バッファ(リレー1個をそのまま使ったもの)の性質と用途として正しいものはどれか
2線-4線デコーダ(ANDゲート4個+インバータ2個で作れる回路)の働きとして正しいものはどれか
このセクション: 0 / 5 問正解
5. ド・モルガンの法則と回路の単純化
ゲート記号の入力側に付く小さな丸は、その入力で信号が逆転することを表す略記である。ANDの両方の入力を逆転すると出力の表がNORと一致し、ORの両方の入力を逆転するとNANDと一致する——これがド・モルガンの法則の電気的な現れであり、式ではĀ×B̄=(A+B)の否定、Ā+B̄=(A×B)の否定と書ける。インバータ2個とORゲート1個(リレー計4個)でできる回路が、ド・モルガンの法則によってNANDゲート1個(リレー2個)に置き換えられることを実際に確かめ、S1で見た「式の単純化=回路の単純化」というシャノンの発見に環を閉じる。ブールより9歳年上の数学者ド・モルガンは、終始ブールを励まし助けた人物として本講を締めくくる。
ゲート記号の入力側に付く小さな丸は、出力側の丸(NAND・NOR)と同じ意味を持つ—— その入力で信号が逆転(0↔1)されることを表す略記である。インバータを1個ずつ律儀に 描く代わりに、この小さな丸で済ませられる。
ANDゲートの両方の入力に、この丸を付けて逆転させると——出力はNORゲートとまったく同じ表になる。 同様に、ORゲートの両方の入力を逆転させると、出力はNANDゲートとまったく同じ表になる。これが ド・モルガンの法則の、電気回路における実現である。
Aの否定×Bの否定 = (A+B)の否定
Aの否定+Bの否定 = (A×B)の否定
この法則は、単なる式の言い換えにとどまらない。AとBをそれぞれインバータで反転してからORゲートに 入れる回路を考える——インバータはリレー1個、ORゲートはリレー2個でできているので、この回路には 合計リレー4個が必要になる。ここでド・モルガンの法則を使うと、「Aの否定+Bの否定」は 「(A×B)の否定」、つまりNANDゲート1個(リレー2個)と同じ働きだとわかる。 リレー4個の回路が、リレー2個のゲート1個に減った。これがS1で見たシャノンの発見 ——式の単純化がそのまま回路の単純化になる——の、具体的な実演である。
この法則に名を残すド・モルガンは、ブールより9歳年上のヴィクトリア時代の数学者で ある。1847年の著書『形式論理』は、ブールの『論理の数学的分析』と同じ日に出版されたと伝えられる。 ド・モルガンは、ブールが論理の研究を志すきっかけとなった、ある盗作論争の当事者でもあった(その容疑 は、後の歴史が晴らしている)。終始ブールを励まし助けた人物だったが、今日ではこの法則以外、ほとんど 忘れられている。
ド・モルガンの法則は、式の単純化=回路の単純化のための道具であり、それこそがシャノンの1938年の 論文が電気技師たちにとって持っていた意味だった。もっとも、この先の講で組み立てる回路の多くは、 単純化にはこだわらない——「まず動くものを作る」ことを優先する。次はいよいよ、道具箱がそろった ゲートたちで、足し算をする回路を組み立てる。
ゲート記号の入力側に付く小さな丸は何を意味するか
「ANDゲートの2つの入力を両方とも逆転したもの」と同じ働きをするゲートはどれか
入力AとBをそれぞれインバータで反転してからORゲートに入れる回路がある。インバータはリレー1個、ゲートはリレー2個でできているので、この回路にはリレーが計4個必要になる。ド・モルガンの法則を使うと、同じ働きをリレー2個のゲート1個だけで実現できる。どのゲートか
このセクション: 0 / 3 問正解