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

回路が「熱くなる」とは?

電気の、行き先

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

第1回では、押しボタンを一列に並べて AND、横に並べて OR を作った。 第2回で、スイッチを電気で押せるようになり、第3回で、動く部分のないスイッチ、トランジスタに替えた。 第4回では、2 種類のトランジスタを、出口の上と下に組にして置いた。 第5回では、その組でできる NAND だけで、ほかのゲートも足し算も作った。

前回は、ゲートが切り替わるには、出口の線に電気をためる(抜く)時間が要る、という話をした。 1 を出すとき、上の組が 1 の線から電気を流し込んで、線にためる。 0 を出すとき、下の組が、その電気を 0 の線へ抜いて、捨てる。

そして、こう問いかけた。

捨てられた電気は、どこへ行くのか。

答えから言うと、熱になる。

下の組が線の電気を抜くとき、電気は、トランジスタの通り道を通って 0 の線へ流れていく。 この通り道は、つながっているとはいえ、ただの導線ほど通りやすくはない。ほんの少しだけ、通りにくい。

通りにくいところを電気が通り抜けると、そこで熱が出る。 電気ストーブやドライヤーが温かくなるのと、同じことだ。 あれは、わざと通りにくい線に電気を通して、熱を出している。

ためるときも、同じだ。 上の組が 1 の線から電気を流し込むとき、電気は上の組の通り道を通る。そこでも、少し熱が出る。

つまり、出口が 0 から 1、1 から 0 に切り替わるたびに、ゲートは、ほんの少しだけ温かくなる。

いつ、使うのか

では、ゲートは、いつ電気を使っているのだろう。

第3回の、トランジスタ 1 つと抵抗で作った NOT を思い出してほしい。 出口が 0 を出しているあいだ、1 の線 → 抵抗 → トランジスタ → 0 の線と、道がひとつながりになっていた。 電気は、ずっと流れっぱなしだった。

流れっぱなしということは、温めっぱなしということだ。 抵抗は、まさに「通りにくい」部品だから、流れているあいだ、ずっと熱を出し続ける。 何の仕事もしていないのに。

第2回のリレーも、押しているあいだ、コイルに電気を流しっぱなしだった。 これも、押しているあいだずっと、コイルを温めている。

第4回の上下の組は、違った。 上の組と下の組は、同時にはつながらない。 入力を倒さずに待っているあいだ、1 の線から 0 の線へ抜ける道が、どこにもない。 だから、電気はほとんど流れない。

流れるのは、出口の線に電気をためるときと、それを捨てるときだけだ。

上下の組は、待っているあいだは、ほとんど電気を使わない。電気を使い、熱を出すのは、切り替わるときだ。

(本物の部品では、切り替わる途中の一瞬、上の組と下の組が、どちらも少しだけつながって、1 の線から 0 の線へ電気が抜けることもある。これも、切り替わるときだけのことだ。)

押して、確かめる

下の図は、第3回の抵抗の NOT と、第4回の上下の組の NOT を、縦に並べたものだ。 入力は 1 つだけで、どちらの図の入力スイッチを倒しても、2 つが一緒に倒れる。 同じ入力を入れたときに、どれだけ電気を使うかを比べるためだ。 出口の線の下には、前回の、線にたまっている電気の目盛りを付けた。

図の下のメーターは、それぞれの NOT が、1 の線から使った電気だ。 1 の線から取り出した電気は、最後はどれも 0 の線へ捨てられて、途中で熱になる。 だから、このメーターは、出した熱のメーターだと思ってよい。

使った電気 シミュレータ

入力スイッチを倒して、2 つの NOT が 1 の線から使った電気を比べてください

入力は 1 つだけ。どちらの図の入力スイッチを倒しても、2 つの NOT が一緒に倒れる

抵抗の NOT(第3回)

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

上下の組の NOT(第4回)

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

1 の線から使った電気

抵抗の NOT0 杯
上下の組の NOT0 杯

経ったステップ 0 / 切り替わった回数 0

入力スイッチを倒すか、「自動」を選んでください。

1 杯は、出口の線を 1 回満たす電気。流れっぱなしは、1 ステップで 1 杯と数えた(本物でどちらが多いかは、部品と速さしだい)

まず、入力スイッチを倒してみてほしい。

上下の組の図では、倒した直後の 1 ステップだけ、黄色い粒が流れる。 入力を 1 にしたときは、出口の線 → 下の組 → 0 の線。たまっていた電気を、捨てている。 入力を 0 に戻したときは、1 の線 → 上の組 → 出口の線。電気を、ためている。 ためきると、メーターが 1 杯ぶん増える。 そして、目盛りが落ち着くと、粒は止まる。

抵抗の NOT では、入力を 1 にすると、粒が流れ続ける。 入力を 1 にしたまま、しばらく放っておいてほしい。 上下の組のメーターは止まったままなのに、抵抗の NOT のメーターだけが、どんどん増えていく。

次に、「自動:ゆっくり」を選んでみてほしい。入力が、一定の間隔で倒れ続ける。 しばらくしたら「はじめから」を押して、今度は「自動:速く」を選ぶ。 速くは、ゆっくりの、ちょうど 2 倍の回数で倒す。

同じステップ数のあいだに、上下の組のメーターは、2 倍の速さで増える。 切り替わる回数が倍なら、使う電気も、出る熱も、およそ倍だ。 倒すのをやめれば、上下の組のメーターは、そこで止まる。

抵抗の NOT のメーターは、ゆっくりでも速くでも、あまり変わらない。 どちらでも、半分の時間は、出口が 0 で流れっぱなしだからだ。

(このシミュレータでは、出口の線を 1 回満たす電気を 1 杯とし、流れっぱなしの 1 ステップも同じ 1 杯と数えた。本物で、どちらがどれだけ多いかは、部品と速さしだいだ。)

数と、速さ

1 回の切り替わりで出る熱は、ほんのわずかだ。 けれど、コンピュータの中では、それが、とんでもない数だけ積み重なる。

かけ算で考えてみよう。

1 秒に出る熱 = 1 回の切り替わりで出る熱 × 切り替わるゲートの数 × 1 秒に切り替わる回数

ゲートが多いほど、そして速く切り替えるほど、熱は増える。

まず、数から。 トランジスタの数で比べてみる。

回路トランジスタの数
NOT 1 つ(第4回)2
NAND で作った半加算器(第5回)20
『記憶のしくみ』の自動販売機千数百
Intel 4004(1971 年)2300
Apple M3(2023 年)250 億

Intel 4004 は、売り出された最初の、プログラムで何にでも使える CPU だ。 Apple M3 は、ノートパソコンなどに入っている、いまのチップの 1 つ。

『記憶のしくみ』を読んだ人は、最終回の自動販売機を思い出してほしい。あの回路のゲートを、このシリーズの上下の組で素直に作ると、トランジスタは千数百個になる。

250 億は、自動販売機およそ 2000 万台ぶんだ。 1971 年から 50 年ほどで、1 つのチップに入るトランジスタの数は、1000 万倍になった。

次に、速さ。 コンピュータの中では、時計の役をする信号(クロック)が、規則正しく 0 と 1 を繰り返している。 前回の、点滅が止まらない輪を思い出してほしい。あれの、ずっと速い版だ。 ゲートは、その刻みに合わせて切り替わる。

2001 年には、パソコンの CPU のクロックは、1 秒に 20 億回(2 ギガヘルツ)に達していた。 前回の、74HC04 の輪の 1800 万回の、100 倍以上だ。

何百億個ものトランジスタのどれかが、1 秒に何十億回という刻みで、ためては捨てている。 1 回ぶんはわずかでも、かけ算の答えは大きい。 パソコンを長く使っていると底が温かくなり、中に、チップを冷やすための金属のひれ(ヒートシンク)やファンが入っているのは、そのためだ。

速くは、できない

数を増やし、速くしてきたコンピュータは、2000 年代の半ばに、壁にぶつかった。

2005 年、ソフトウェアの技術者のハーブ・サッターは、「タダ飯は終わった」という題の記事を書いた。 Intel の CPU のクロックは、2001 年 8 月に 2 ギガヘルツに達し、記事のころには 3.4 ギガヘルツになっていた。 ところが、Intel は 4 ギガヘルツの CPU を出す予定を延ばし、やがて、その計画をすっかり取りやめた。

記事は、その理由として、まず熱を挙げている。 出る熱が多すぎて、逃がしきれない。 ほかに、使う電気が多すぎること、そして、止まっていても漏れる電気の問題。

第4回で、上下の組は、待っているあいだも「ほんの少しだけ漏れる」と書いた。 トランジスタの数が増えるほど、その「ほんの少し」も、積もって効いてくる。

CPU の歴史を調べた 2012 年の論文も、2005 年ごろに、CPU が新しい制約、電力の壁にぶつかったと書いている。 クロックを速くすれば、熱が増える。熱を逃がしきれなければ、それ以上は速くできない。

そこで、作る会社は、1 つの CPU を速くする代わりに、計算する部分(コア)を、1 つのチップに何個も並べる方向へ進んだ。 1 つずつは速くしなくても、何個も同時に働けば、全体ではたくさん計算できる。

ここでも、上下の組の性質が効いてくる。 上下の組は、待っているあいだ、ほとんど熱を出さない。 並べたコアのうち、いま仕事のないものは、切り替えずに休ませておけば、熱をあまり出さずにすむ。

歩いてきた道

物差しの表を、最後まで伸ばしておこう。

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

(トランジスタ 1 種類の時間の欄は、このシリーズでは確かめていないので、最後まで ? のまま残した。)

人の指で押していたスイッチが、電気で押せるようになり、動く部分がなくなり、組になって、待っているあいだは電気をほとんど使わなくなった。 その代わりに残ったのが、切り替わるのにかかる、ほんのわずかな時間と、切り替わるたびに出る、ほんのわずかな熱だった。

このシリーズの回路がしてきたことは、タイトルの言葉で言える。

つなぐ。 押す。 小さくなる。 組になる。 1 種類で足りる。 遅れる。 そして、熱くなる。

このサイトのほかのシリーズで並べてきた AND・OR・XOR・NOR の箱は、開けると、どれも、この上下の組のスイッチが入っている。

電源を、切ったら

上下の組は、待っているあいだ、ほとんど電気を使わない。 けれど、「ほとんど」であって、ゼロではない。 そして、電源を切ってしまえば、1 の線そのものが、なくなる。 上の組がつなごうにも、つなぐ先がない。

『記憶のしくみ』を読んだ人は、最終回で、自動販売機の「電源を切る」を押したら、入れていた金額が消えたのを思い出してほしい。値を覚えていたのは、2 つのゲートが互いに支え合う輪だった。本物のチップなら、その輪のゲートも上下の組でできていて、待っているあいだはほとんど電気を使わない。それでも、電気がなければ、支え合えない。

少しだけ、温かい

第1回で、こう書いた。

先に答えを言ってしまうと、箱の中身はスイッチである。

7 回かけて、その箱の中を見てきた。 入っていたのは、本当に、スイッチだけだった。 1 の線か 0 の線に、つなぐか、切るか。 回路がしているのは、それだけだ。

足し算の意味も、覚えている数の意味も、回路は知らない。 『計算のしくみ』を読んだ人は、第1回の「回路は足し算を理解していない。理解していないのに、答えは合っている」を思い出してほしい。その「理解していない」回路の中で、実際に起きていたのが、線に電気をためては捨てることだった。

最終回の今、こう書き足しておきたい。

回路は、一度も考えていない。それでも、答えを出すたびに、少しだけ温かくなる。

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

このシリーズは、この机から始まった

最後に、机の上に戻ろう。

第1回では、ここに押しボタンが 2 つと、LED が 1 つ載っていた。 押していたのは、人の指だった。

いまは、同じ机の上に、黒くて小さな IC が載っている。 中には、上下の組の NOT が 6 つ。 前回の輪にすれば、誰も押していないのに、1 秒に何千万回も、ためては捨て続ける。

それでも、指を当てても、温かさはほとんど分からない。 6 つのゲートが出す熱は、それくらいわずかだ。

次に、パソコンのファンが回る音を聞いたら、少しだけ思い出してほしい。 その奥で、何百億個ものスイッチが、何も考えずに、つないでは切っていることを。 そして、その 1 回ごとに、ほんの少しずつ、温かくなっていることを。

参考文献

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