デジタル電気はどっち向き

Q:デジタル回路の電流は、信号線の上をどっち向きに流れるか?
A:両方。

**** 前口上 ****
ご存じだろうか、デジタル回路の電流が、どちらの向きに流れるかということを。
現代社会はデジタル抜きでは語れない。
インターネットも、パソコンも、携帯電話も、家電も、全てデジタル電子回路でできている。
ところが、そのデジタル回路の中身がどうなっているか、知っている人はいったいどれほどいるのだろうか。
例えばパソコンについて相当詳しく、ばりばりソフトウェア開発を行っているような人であっても、
その中を流れる「物理的な電流」については全く想像が及ばない、ということがよくあるのだ。
電気回路に直接関わりのないほとんどの人は、デジタル電子回路というブラックボックスの上で生活しているのである。
これは専門分業化の進んだ社会では仕方ないことかもしれないが、ある意味、とても不安で恐ろしくもある。

私はたまたま、仕事の上でデジタル回路の中身に接する機会があった。
なので、デジタル回路の中をどのように電気が流れているのか、ひととおりは知っているつもりだ。
別にそんなに難しい話をするつもりはない。
私の知っている程度のことは、電気屋さんの間では常識なのである。
その「電気屋さんの間の常識」があまりにも狭い範囲にしか通用せず、普通の人の常識に全く入っていないことが、恐ろしいのだ。

電気屋さんの常識」程度の話であれば、当然インターネット上に載っているのではないか。
そう思ってインターネット上を探してみたのだが、どうも専門的に、難しく書かれているサイトが多いように思う。
単に私の探し方が悪いだけなのかもしれないが、電気屋さんの常識レベルの話を、ごく普通の人に知らせる機会は少ないように思えるのである。

私がそう思うに至った直接のきっかけは、このブログにある。
2ヶ月ほどの間、このブログにいろいろな駄文を載せてみたが、その中で最も人気があるのはどうやら
 「フリップフロップはどのように動くのか:[id:rikunora:20080526]」
らしいのだ。
こんな記事にアクセスが集まるのは、いかにデジタル回路が知られていないかの表れであろう。
私は最新の高度なデジタル回路について書くことはできないが、「電気屋さんの常識」レベルの話であれば、幾つか書き連ねることができる。
そう思い立って、ささやかながら、ここに「電気屋さんの常識」を書き残すことにした。

**** 前口上、おしまい ****

さて、デジタル回路の常識No.1は、表題に挙げた
 「デジタル回路の中では、電流はどちらの向きに流れるのか」
ということである。
電気回路の基本と言えば、電池と豆電球であろう。
電池と豆電球をつなげば、電流は電池のプラスからマイナスへと(電子はマイナスからプラスへと)流れてゆく。
それと同じように、パソコンの回路基盤上に配線してあるたくさんの信号線の中でも、当然どちらかの向きに電流が流れているはずだ。
パソコンの中を見ると、CPUやメモリー、ハードディスクなどを差し込む場所がある。
差し込み口には普通、たくさんの線が集まっているが、その中でプラスとマイナスが決まっているのはほんの一部(場合によっては電源線の2本だけ)だ。
それ以外の線、信号を伝える線では、どこがプラスで、どこがマイナスになっているのだろう?
同様に、ネットワークケーブルにもたくさんの線が入っているのだが、あの中を流れる電流は、パソコンからルーターに向かって流れているのだろうか、それとも逆向きだろうか?
ならば、2台のパソコンを直接ケーブルでつないだら、どっちからどっちに向かって流れるのか?

実はこの疑問、私が最初にデジタル回路を教わったときに「へ〜っ!」と思ったポイントだったのだ。
ぶっきらぼうに答えれば、信号線上の電流は「どちらの向きにも流れ得る」。
というより、デジタル回路上の電気の流れは、電池と豆電球の感触とはちょっと違うのだ。
信号を伝えるのは「電流」ではなく「電位」なのである。
水の流れに例えれば、水流ではなく、水面の高さ。
この意味をつかむためには、ちょっと面倒だがデジタルゲートの基本を知っておく必要がある。

この図は最も単純なNOTゲートの回路図である。
NOTゲートとは、論理のYesとNoを逆転する回路だ。
Yesを入力したらNoを、Noを入力したらYesを出力する。
この動作を、電気でどのように実現しているのだろうか。
まずは図を見てほしい。

図の中に丸で囲ってあるのは、トランジスタの記号だ。
普通の人は、まず「トランジスタって何だ?」ってことになると思うので、解説を。
簡単に言えば、トランジスタとは「電気で動くスイッチ」のことだ。
トランジスタには、「ドレイン(Drain)、ゲート(Gate)、ソース(Soure)」の3つの足が出ている。
そして、トランジスタはドレイン->ソースを通過する電流のON,OFFを行う。
3番目の足、ゲートに電圧をかけると、スイッチがONになって、ドレイン->ソース間を電気が通過できるようになる。
ゲートの電圧が途絶えると、スイッチがOFFになって、ドレイン->ソース間の電気は遮断される。
(なお、この図に書いてあるのは「wikipedia:電界効果トランジスタ」というものである。
 トランジスタにはこの他に「wikipedia:バイポーラトランジスタ」というのもある。)

さて、最低限これだけわかっていれば、NOTゲートの動作がわかる。
ゲートにつながっている入力端子に電圧をかければ、トランジスタの「電気スイッチ」がONになって、出力に電気が行かなくなる。
反対に、入力端子に電圧をかけないと、トランジスタの「電気スイッチ」はOFFになって、出力に電気が行くようになる。
これを見れば気付くのだが、トランジスタの「電気スイッチ」がONになったときは、ドレイン->ソース間の電気は「だだ漏れ」である。
ほとんど何もしていないのに、いたずらに電気を流す、たいへん無駄な電気回路なのである。

今日の電子回路では、さすがに上のような「だだ漏れ」の回路が使われることはほどんど無い。
トランジスタを2つ用意して、「上が開いたら、下が閉じる」、「上が閉じたら、下を開く」といった、上下で反対の動作を行う回路を2つ組み合わせてゲートを形作る。
これなら「だだ漏れ」にはならない。

上下で反対の動作を行うためには、反対の動作を行うトランジスタが必要になる。
図を見ると、上のトランジスタには○印が余計に付いているだろう。
この○付きのトランジスタは「pMOSトランジスタ」と呼ばれていて、上に登場したトランジスタとは反対の動作を行う。
つまり、pMOSトランジスタは、
 ・ゲートに電圧をかけると、スイッチがOFFになり、
 ・ゲートに電圧をかけないと、スイッチがONになる。
といった動きをする。
これに対して、反対側のトランジスタは「nMOSトランジスタ」と呼ばれている。
繰り返しになるが、nMOSトランジスタは、
 ・ゲートに電圧をかけると、スイッチがONになり、
 ・ゲートに電圧をかけないと、スイッチがOFFになる。
といった動きをする。
このように反対の動作を行うトランジスタを2つ組み合わせて、出力線を電源ラインにつなぐか、0Vにつなぐかを切り替えて、NOTゲートは形作られているのである。

NOTゲートの仕組みがわかったところで、当初の疑問だった「電流はどちらの向きに流れるか」を考えてみよう。
NOTゲートの出力線に着目する。
入力端子の電圧が0Vになって、出力線が電源ラインにつながると、電源ラインから出力線に向けて電流が流れる。
このときは「NOTゲートから外向きに」電流が流れるわけだ。
反対に、入力端子に電圧がかかって、出力線が0Vにつながると、今度は出力線から0Vラインに向けて電流が流れる。
このときは逆に「外からNOTゲートに向けて」電流が流れることになる。
つまり、電流は信号線を行ったり来たりするのだ。
これが「電池と豆電球の感触とはちょっと違う」といった意味なのである。

どちらかといえば、信号線というものを「電気が通過する道路」ととらえるよりも、「電気がたまっている水たまり」のようなものだととらえた方がよい。
電源ラインは水の供給源であり、0Vラインは排水口である。
信号線を電源ラインにつなぐと、ちょうど水たまりに水が満ちるように、信号線内が電気で満たされる。
「電位」というのは、水たまりの水位の高さのようなものだ。
水がいっぱいになれば、それが次のゲートに伝わる。
信号線が一度電気で満たされてしまえば、それ以上の電気が注がれることはない。(どこかで自然漏れしていなければ)
だから、電流が流れるのはゲートを開いたその瞬間だけであり、一度安定すれば、さらに余分な電気は流れないのである。

この状態でNOTゲートの入力信号を反転し、今度は出力線を排水口の方につなぎかえる。
すると、溜まっていた水は排水口に引き込まれ、出力線内の電気は空になる。
今度の水の流れは、信号線という水たまりから、0Vラインという排水口に向けてとなる。
回路全体として見れば、電流の流れは水道である電源ラインから、排水口である0Vラインに向けて、ということになる。
その流れの途中で、電気は信号線という水たまりに、たまったり、抜けたり、といった挙動を示す。
なので、あえて信号線の流れの向きは?と問えば、いったりきたり、ということになるのだ。