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

回路が「小さくなる」とは?

カチッと鳴らないスイッチ

このシリーズでは、机の上に部品を並べて、ゲートの中身を組み立てている。

第1回は、押しボタン 2 つと LED だった。 電池の+側につながった線を 1 の線、−側につながった線を 0 の線と呼んだ。 ボタンを一列に並べると「どちらも」(AND)、横に並べると「どちらか」(OR)になった。

前回は、電磁石で押すスイッチ、リレーを使った。 回路の答えで、次のスイッチを押せるようになった。 押されると切れる接点を使うと、入力を反対にする NOT も作れた。

けれど、リレーは、鳴って、遅くて、すり減って、大きかった。 困ったところの多くは、中の板が動くことから来ていた。

そこで、前回の終わりに、こう問いかけた。

動く部分のない、電気で押せるスイッチはないか。

動く部分のない、リレー

ある。 トランジスタという部品だ。

トランジスタには、足が 3 本ある。 2 本は、つながったり切れたりする道の、両端。 残りの 1 本が、その道を押すところだ。 このシリーズでは、ここを押し口と呼ぶことにしよう。

押し口に電気で「押す合図」を送ると、道がつながる。 リレーと同じだ。 ちがうのは、中に動く部分が何もないこと。 板も、コイルも、カチッという音もない。 だから、静かで、すり減らない。 そして、ずっと小さく作れる。

中で何が起きているのかは、このシリーズでは扱わない。 ここでは、トランジスタを「電気で押せる、動く部分のないスイッチ」として使う。

下の図は、トランジスタ 1 つと LED の回路だ。

+電池−10入力倒す1 でつながるLED1 の線0 の線
入力スイッチを倒して、押し口を 1 の線につないでみてほしい

左の箱は、入力スイッチ。 倒すと、トランジスタの押し口を、1 の線か 0 の線のどちらかにつなぐ。

右の列は、1 の線 → トランジスタ → LED → 0 の線。

トランジスタの箱を見てほしい。 押し口の線は、箱の横から入って、板で終わっている。 その板は、真ん中の細い通り道と、すき間をあけて向かい合っている。 触れてはいない。

入力スイッチを倒して、押し口を 1 の線につないでみよう。 押し口の線と板が、緑になる。 少しして、通り道がひとつながりになり、LED が点く。 箱が水色になるのは、前の 2 回と同じく「押されている」しるしだ。

何も動いていないのに、道がつながった。

このトランジスタは、押し口が 1 のときに、つながる。 1 でつながるトランジスタと呼ぼう。

トランジスタには、もう 1 種類ある。 押し口が 0 のときに、つながるものだ。 こちらは、0 でつながるトランジスタと呼ぼう。

+電池−10入力倒す0 でつながるLED1 の線0 の線
いまは押し口が 0 の線につながっているので、LED が点いている。倒してみてほしい

はじめは、押し口が 0 の線につながっているので、通り道はつながっていて、LED が点いている。 入力スイッチを倒して、押し口を 1 の線につなぐと、切れる。 入力が 1 で切れるところは、前回の「押されると切れる接点」に似ている。

この 2 種類が、このシリーズの残りの回の主役になる。 ただし、今回はしばらく、1 でつながるほうだけを使う。

トランジスタは、1947 年の 12 月に、アメリカのベル研究所で生まれた。 ゲルマニウムという物質の小さなかけらに、金の細い接点を 2 つ当てたものだった。 作ったバーディーンとブラッテン、そして 2 人の組を率いていたショックレーの 3 人は、のちに 1956 年のノーベル物理学賞を受けている。 『誤り訂正のしくみ』を読んだ人は、第4回のハミングを思い出してほしい。ハミングが、週末に動かしておいた継電器式の計算機に結果を出してもらえなかったのと同じ 1947 年。同じベル研究所で、その継電器に代わる部品が生まれていたことになる。

最初のトランジスタは、弱い信号を大きくする(増幅する)部品として作られた。 けれど、このシリーズでは、スイッチとしてだけ使う。

リレーとトランジスタのあいだには、真空管という部品で計算機を作った時代もあった。 1946 年に発表された計算機 ENIAC は、真空管をおよそ 1 万 8000 本使っていた。

いまのコンピュータの中にあるトランジスタは、1950 年代の終わりに、同じベル研究所で作られた形(MOS 型)がもとになっている。 いま作られているチップの 99% 以上が、この形のトランジスタを使っている。

1 でつながるトランジスタで、NOT

前回、リレーで NOT を作った。 入力が 0 なら 1、1 なら 0。 入力を反対にして返す決まりだった。

入力出口
01
10

これを、1 でつながるトランジスタ 1 つで作ってみよう。

答えを出す線を、出口と呼ぶことにする。 出口と 0 の線のあいだに、トランジスタを 1 つ置く。 押し口には、入力をつなぐ。

入力が 1 なら、トランジスタがつながる。 出口は、トランジスタを通して 0 の線につながる。 出口は 0。表の 2 行目のとおりだ。

では、入力が 0 なら、どうなるだろう。 出口は 1 になってほしい。

押して、確かめる

出口は右へ伸ばしておいた。 入力スイッチを倒して、出口がどこにつながるかを見てほしい。

トランジスタ 1 つの NOT シミュレータ

入力スイッチを倒して、出口がどこにつながるかを見てください

+電池−10入力倒す1 でつながる?1 の線出口0 の線

出口は、1 の線にも 0 の線にも、つながっていない。

入力出口
0?
10

入力は 1 の線につないだ = 1、0 の線につないだ = 0。出口の ? は、どちらにもつながっていない

入力を 1 にすると、出口は 0 の線につながる。ここまでは、表のとおりだ。

入力を 0 にすると、トランジスタは切れる。 出口は、0 の線から切り離される。

では、出口は 1 の線につながったか。 つながっていない。 出口から 1 の線へ向かう道は、もともとどこにもないからだ。

出口の線は破線になり、「?」の札が出た。 1 の線にも、0 の線にも、つながっていない。

浮いている

1 の線にも 0 の線にもつながっていない線を、浮いているという。

浮いている出口は、1 ではない。 そして、0 でもない。

ここが大事なところだ。 出口の先には、ふつう、次のトランジスタの押し口がつながる。 答えで次を押すのが、前回からの約束だった。

押し口が 1 の線につながっていれば、1 でつながるトランジスタは押される。 0 の線につながっていれば、押されない。 では、どちらにもつながっていなければ? 押されるのか、押されないのか、決まらない。

本物の部品でも、浮いた押し口は困りものだ。 周りのわずかな電気に左右されて、ふらふらと定まらない。 チップを作っている会社の資料にも、使っていない入力を浮かせたままにしないように、と書いてある。 浮かせておくと、余計な電気を使ったり、部品を傷めたりするおそれがあるからだ。

実は、浮いている線は、前にも出てきていた。

第1回で、ボタン A だけを押したとき。 B より下の線は、1 の線にも 0 の線にもつながっていなかった。 前回の、切れた接点の先もそうだ。 図では、色を付けずに灰色にしておいた。 灰色は 0 の線の色でもあるので、0 のように見えていたかもしれない。

けれど、本当は、浮いていたのだ。 今回からの図では、浮いている線を破線で描く。

0 とは、何か

第1回では、図の緑のところまでは「電気が来ている」と思ってよい、と書いた。 そう考えると、0 は「電気が来ていない」ことになりそうだ。

けれど、浮いている出口にも、電気は来ていない。 それでも、0 ではなかった。

0 を出すには、出口を 0 の線に、ちゃんとつながなければいけない。

0 とは「電気が来ていない」ことではない。 0 の線に、ちゃんとつながっていることだ。

1 も同じだ。 1 とは、1 の線に、ちゃんとつながっていること。

ゲートの出口は、いつでも、どちらかにつながっていなければいけない。

抵抗で、引っ張る

では、入力が 0 のとき、出口を 1 の線につなぐにはどうすればいいか。

いちばん簡単なのは、出口と 1 の線を、抵抗でつないでおくことだ。

抵抗は、電気を通しにくい部品だ。 道はつながっているが、細くて、通りにくい。 このシリーズでは、弱いつながりと呼ぼう。

出口は、抵抗を通して、いつも 1 の線に弱く引っ張られている。 そこへ、トランジスタがつながると、出口は 0 の線にも引っ張られる。 綱引きになる。

トランジスタの通り道は、抵抗よりずっと通りやすい。 だから、強いほうの 0 の線が勝つ。

抵抗で引っ張る NOT シミュレータ

入力スイッチを倒して、出口と抵抗がどうなるかを見てください

+電池−10入力倒す1 でつながる抵抗1 の線出口0 の線

出口は、抵抗を通して 1 の線につながっている。出口は 1。電気は流れていない。

入力出口抵抗
01流れない
10流れっぱなし

入力は 1 の線につないだ = 1、0 の線につないだ = 0。出口は、つながっている線の値

入力が 0 のとき、トランジスタは切れている。 出口は、抵抗を通して 1 の線につながり、1 になる。 もう浮いていない。

入力が 1 のとき、トランジスタがつながる。 出口は、0 の線に強く引っ張られて 0 になる。

表のとおりの NOT ができた。

ただし、入力を 1 にしたときの抵抗を見てほしい。 オレンジ色になって、黄色い粒が流れている。

1 の線 → 抵抗 → 出口 → トランジスタ → 0 の線。 1 の線から 0 の線まで、道がひとつながりになっている。 出口が 0 を出しているあいだ、ここには、ずっと電気が流れっぱなしになる。

トランジスタと抵抗で組んだ NOT。入力 0 では LED が点き、入力 1 では消える

トランジスタ 1 つと抵抗 1 つで組んだ NOT。左は入力 0、右は入力 1。LED は出口の様子を見るためにつないだ

流れっぱなし

この電気は、何の仕事もしていない。 出口が 0 だということを伝えるためだけに、流れ続けている。

ゲートが 1 つなら、たいしたことはない。 けれど、ゲートを何千、何万と並べたら、どうなるだろう。 0 を出しているゲートの数だけ、電気が流れっぱなしになる。 もったいない。

表に、3 行目を足そう。

スイッチ押すもの動く部分切り替わるのにかかる時間待っているあいだの電気
押しボタン人の指ある?使わない
リレー電気(電磁石)ある(カチッと鳴る)数ミリ秒押しているあいだ、コイルに流しっぱなし
トランジスタ 1 種類電気ない?0 を出しているあいだ、流しっぱなし

動く部分のないスイッチは、手に入った。 けれど、1 でつながるトランジスタだけで NOT を作ろうとすると、困ったことになる。 抵抗を付けなければ、出口が浮く。 抵抗を付ければ、電気が流れっぱなしになる。

ところで、今回は、もう 1 種類のトランジスタを、まだ使っていない。

0 でつながる種類を、どう使えばいいか。

次回は、2 種類のトランジスタを、上と下に分けて置いてみる。

参考文献