シリーズ「コンピュータの部品のしくみ」 第1回

回路が「つなぐ」とは?

机の上の、2 つのボタン

机の上に、小さな穴がびっしり並んだ白い板がある。 ブレッドボードという。 穴に部品の足を差し込むだけで、はんだ付けをしなくても回路が組める。

いま、その上に載っているのは、小さな押しボタンが 2 つと、LED(光る小さな部品)が 1 つ。 電気は、乾電池からとっている。 家のコンセントの電気は、使わない。

ブレッドボードに差した、押しボタン 2 つと LED

押しボタン 2 つと LED。LED には、電気が流れすぎないように抵抗を 1 つつないである

ボタンを押すと、LED が点く。 それだけの回路だ。 けれど、このシリーズは、ここから始める。

このサイトのほかのシリーズでは、回路を「AND」「OR」「XOR」と書いた箱を並べて描いてきた。 箱に 0 と 1 を入れると、決まった 0 か 1 が出てくる。 けれど、箱の中に何が入っているのかは、一度も開けていない。 『記憶のしくみ』を読んだ人は、第1回で NOR の箱を 2 つ、たすきがけにつないだのを思い出してほしい。このシリーズは、あの箱の中身の話である。

ほかのシリーズを読んでいなくても、心配はいらない。 AND も OR も、この回で一から作る。 要るのは、小学校の理科で習った、電池と豆電球の回路だけだ。

先に答えを言ってしまうと、箱の中身はスイッチである。 このシリーズでは、指で押すボタンから始めて、少しずつ本物のコンピュータの中身に近づいていく。 机の上の部品も、回を追うごとに入れ替わっていく。

まずは、2 つのボタンをどうつなぐか、から。

1 の線と、0 の線

豆電球を点けたときのことを思い出そう。 電池の+側から出た導線を豆電球に通し、−側へ戻した。 電気は+から出て、豆電球を通り抜け、−へ戻る。 輪がどこかで途切れていると、豆電球は点かなかった。

このシリーズでは、電池の+側につながった線を 1 の線、−側につながった線を 0 の線と呼ぶ。 本物の回路の言葉では、1 の線を電源、0 の線をグラウンドという。名前を出すのは、ここだけにする。

豆電球の代わりに置くのが、LED だ。 1 の線から 0 の線へ、LED を電気が通り抜けると、点く。

1 の線と LED のあいだには、スイッチを入れる。 スイッチには、2 つの状態しかない。 つながっているか、切れているか。 押しボタンなら、押しているあいだはつながり、離すと切れる。

下の図は、電池と押しボタン 1 つ、LED 1 つだけの回路だ。 1 の線をいちばん上に、0 の線をいちばん下に、横に引いてある。 部品は、そのあいだに縦に並べてある。 このシリーズの図は、これからずっとこの形で描く。

+電池−ボタン押すLED1 の線0 の線
ボタンを押してみてほしい

1 の線とつながっている線は、緑で塗ってある。 いまは、緑はボタンのところで止まっている。 緑のところまでは「電気が来ている」と思ってよい。

ボタンを押すと、緑がボタンを通り抜けて、LED まで伸びる。 LED が点き、線の上を黄色い粒が流れ出す。 電池の+から、1 の線、ボタン、LED、0 の線を通って、電池の−まで。 輪がひとつながりになって、電気が通り抜けている道だ。

本物の回路では、LED に電気が流れすぎないように抵抗という部品を 1 つつなぐ。図では省いた。

一列に、並べる

まず、2 つのボタンを一列に並べる。

1 の線 → ボタン A → ボタン B → LED → 0 の線。

1 の線から 0 の線へ抜けるには、A を通り、続けて B を通らなければならない。 こういうつなぎ方を、直列という。

一列につないだ 2 つのボタンを両方押して、LED が点いている

一列につないだ版。両方押すと、点く

LED が点くのは、どんなときだろう。

A だけを押しても、B が切れている。道は B のところで途切れる。 B だけを押しても、今度は A で途切れる。 両方を押したときだけ、1 の線から 0 の線まで、道がひとつながりになる。

表にしておこう。

ABLED
押さない押さない消える
押さない押す消える
押す押さない消える
押す押す点く

これを、押すを 1、押さないを 0、点くを 1、消えるを 0 と書き直す。

ABLED
000
010
100
111

LED を 1 と書くのは、ただの略記ではない。 LED が点いているとき、LED の上の端は、ボタンを 2 つ通って 1 の線につながっている。 このシリーズでは、これから「1」を、いつもこの意味で使う。

1 が出てくるのは、入力がどちらも 1 のときだけだ。 この決まりを AND(アンド)という。 英語の and、「〜と〜」「どちらも」である。

押して、確かめる

下のシミュレータで、ボタンを押してみてほしい。 もう一度押すと、離したことになる。

押しボタン シミュレータ

ボタン A・B を押して(もう一度押すと離して)、LED が点く押し方を探してください

+電池−A押すB押すLED1 の線0 の線

LED は消えている。1 の線から 0 の線までの道が、どこかで切れている。

ABLED
000
010
100
111

ボタンは 押している = 1、押していない = 0。LED は 点いている = 1、消えている = 0

まず、A だけを押す。 緑は A を通り抜けて、B の中の板の先まで伸びる。 そこで止まる。B より下には、色が付かない。

そのまま B も押す。 緑が LED まで届き、LED が点く。 黄色い粒が、1 の線から A、B、LED を通って、0 の線まで流れる。 2 つのボタンを続けて通り抜ける道が、ひとつながりになった。

図の下の表も見てほしい。 押し方を変えると、光る行が動く。 LED が点くのは、いちばん下の行だけである。

ところで、A だけを押したとき、B より下の線には色が付かなかった。 1 の線にはつながっていない。 けれど、0 の線につながっているわけでもない。 これが何を意味するのかは、もう少し先の回で、もう一度考えることにする。

横に、並べる

今度は、2 つのボタンを横に並べる。

1 の線から 2 本に枝分かれして、片方に A、もう片方に B を置く。 2 本は下で合流して、LED を通り、0 の線へ。 こういうつなぎ方を、並列という。

1 の線から 0 の線への道が、2 本ある。 A を通る道と、B を通る道だ。 どちらか 1 本でもつながれば、電気は LED まで届く。

横に並べた 2 つのボタンの片方だけを押して、LED が点いている

横に並べた版。片方だけで、点く

押しボタン シミュレータ

ボタン A・B を押して(もう一度押すと離して)、LED が点く押し方を探してください

+電池−A押すB押すLED1 の線0 の線

LED は消えている。1 の線から 0 の線までの道が、どこかで切れている。

ABLED
000
011
101
111

ボタンは 押している = 1、押していない = 0。LED は 点いている = 1、消えている = 0

A だけを押してみてほしい。 LED が点く。 黄色い粒は A の道を流れ、B の枝には流れていない。

B だけでも点く。両方押しても点く。 消えるのは、どちらも押していないときだけだ。

ABLED
000
011
101
111

1 が出てくるのは、入力のどちらかが 1 のときだ。 この決まりを OR(オア)という。 英語の or、「〜か〜」「どちらか」である。

ふだんの言葉の「どちらか」は、「片方だけ」の意味で使うこともある。 OR は違う。両方とも 1 でも、1 を出す。 両方押しても、道が 2 本ともつながるだけで、LED が消える理由はない。

シミュレータの上のつまみで「一列に並べる」に切り替えて、同じ押し方のまま比べてみてほしい。 部品は、同じ。ボタン 2 つと LED 1 つ。 変えたのは、並べ方だけだ。 それだけで、「どちらも」が「どちらか」に変わる。

スイッチのつなぎ方が、そのまま論理になる。 一列に並べれば「どちらも」、横に並べれば「どちらか」。

AND や OR のように、0 と 1 を受け取って、決まった 0 か 1 を返す部品を、ゲートという。 ほかのシリーズの回路図に並んでいた箱は、どれもゲートだ。 その中では、スイッチが一列に、あるいは横に並んでいる。

このことに気づいて、きちんと書き表した人がいる。 1938 年、アメリカの電気工学の論文誌に、「リレーとスイッチの回路の記号による分析」(A Symbolic Analysis of Relay and Switching Circuits)という論文が載った。 書いたのは、MIT(マサチューセッツ工科大学)の大学院生だったクロード・シャノン。自分の修士論文をもとにしたものだ。

シャノンは、スイッチをつないだ回路のふるまいが、「〜と〜」「〜か〜」を扱う論理の計算(ブール代数という)と、同じ形の決まりで書けることを示した。 だから、回路を組む前に、紙の上の計算で回路を考えられる。 題名にある「リレー」は、次回の主役になる部品である。

階段の照明

もう 1 つ、身近なつなぎ方を見ておこう。

階段の壁にある照明のスイッチ
上の階にも、下の階にも、同じスイッチがある

2 階建ての家の階段には、上にも下にも照明のスイッチがあることが多い。 どちらのスイッチでも、同じ照明を点けたり消したりできる。 これを 3 路スイッチ(さんろスイッチ)という。

中身は、押しボタンとは少し違う。 つながる先が 2 つあって、倒した向きで、どちらか一方につながる。 切り替えスイッチと呼ぶことにしよう。

2 つの切り替えスイッチのあいだは、2 本の線で結んである。 2 階のスイッチも、1 階のスイッチも、2 本のうちどちらを使うかを選ぶ。 2 つが同じ線を選んだときだけ、1 の線から 0 の線まで道がひとつながりになり、照明が点く。

シミュレータでは、照明の代わりに LED を置いた。

階段の照明 シミュレータ

2 階・1 階のスイッチを倒して、LED を点けたり消したりしてみてください

+電池−012 階倒す011 階倒すLED1 の線0 の線

LED は消えている。1 の線から 0 の線までの道が、どこかで切れている。

2 階1 階LED
000
011
101
110

スイッチは 0 の向き・1 の向き、LED は 点いている = 1、消えている = 0

どの状態からでも、どちらのスイッチを倒しても、LED は反転する。 2 階で点けて、1 階で消せる。

それぞれのスイッチで、はじめの向きを 0、倒した向きを 1 とすると、表はこうなる。

2 階1 階LED
000
011
101
110

1 が出てくるのは、2 つの入力が食い違っているときだけだ。 この決まりを XOR(エックスオア)という。 OR と似ているが、両方とも 1 のときは 0 になる。

どちらの向きを 0 と呼ぶかは、決め方しだいだ。 ここでは、両方 0 のときに消えているように決めた。 決め方を変えれば、「向きがそろっているときに点く」と読むこともできる。 どちらに読んでも、「どちらを倒しても反転する」ことは変わらない。

『記憶のしくみ』を読んだ人は、第2回の「階段のスイッチと、何が違うのか」を思い出してほしい。あそこでは、階段の照明を XOR の箱 1 つで描いた。その箱の中身が、これだ。

押したら、消える

ここまでで使ったスイッチを、表にしておこう。

スイッチ押すもの動く部分切り替わるのにかかる時間待っているあいだの電気
押しボタン人の指ある?使わない

押しボタンは、押された形、離された形のまま止まっているだけなら、それ自体は電気を使わない。 「?」の欄は、まだ分からない。後の回で埋める。 この表は、これから回を追うごとに、1 行ずつ伸ばしていく。

さて、押しボタンを並べて、AND と OR ができた。 階段のスイッチで、XOR もできた。

けれど、押しボタンを 1 の線と 0 の線のあいだにどう並べても、作れないものがある。

押したら、消える。

ボタンを押すと LED が消え、離すと点く。入力の 1 と 0 を、反対にして返す。 このボタンは、押すとつながる。 押すたびに、道は増えることはあっても、減ることはない。 だから、どう並べても、ボタンを押して LED が消えることは決してない。

それに、もう 1 つ、気になることがある。 押しているのは、いつも人の指だ。

ゲートの答えは、たいてい、次のゲートへの入力になる。 前のゲートの答えで、次のゲートのスイッチを押さなければならない。 コンピュータの中で、それを指でやるわけにはいかない。

スイッチを、電気で押すことはできないか。

次回は、そのための部品を机の上に置く。

参考文献

シリーズ「コンピュータの部品のしくみ」