第三章 可逆コンピュータからの発想
ランダウアーの原理
2006/08/23  

可逆コンピュータの演算はエネルギーを消費しない。 可逆コンピュータは入力情報から答を導き出すのと同様に、答から入力情報を導き出すこともできる。 順方向の演算と逆方向の演算は全く同等の重みを持っており、どちらかが優先されることは無い。 前節で紹介したビリヤードボールコンピュータを思い描いてみよう。 順方向の演算を終えた後、誰かがボールにブレーキをかけない限り、ボールの運動は続く。 ボールの向う先に反射板を置いて運動を反転させれば、反転したボールは逆方向の演算を開始する。 可逆コンピュータは順方向の演算と逆方向の演算をいつまでも交互に繰り返すことになる。 つまり可逆コンピュータには長い目で見た場合、入力から出力へと向かう明確な方向性がない。 行きと帰りは全く同じ重みを持つのだから、その動作は過去と未来に対して対称であり、どちらか一方の向きに優先的に流れることはないのである。

実在する不可逆なコンピュータは入力から出力へ、確実に一方向に動作する。 なぜ一方向に動作するかというと、不可逆なコンピュータはエネルギーを消費し、エントロピーの増大に寄与しているからである。 つまりコンピュータというものはエネルギーを費やした分だけ意図した方向に進むのである。 (もっともこれはコンピュータに限った話ではなく、あらゆる装置、現象について言えることなのだが。) ここで次の様な疑問が生じる。 双方向に動く可逆コンピュータに、如何なる操作を施せば意図した方向だけに動作させることができるのだろうか。 コンピュータを意図した方向に動作させるために必要となる最低限のエネルギーはどれ程だろうか。 現在の不可逆コンピュータは、1個1個のトランジスタが動作する度にエネルギーを消費している(発熱している)。 しかしスイッチングにともなうエネルギー消費は原理的に必須ではない。 それでもコンピュータ全体を眺めたとき、一方向に動作させるためには何処かで必ずエネルギーを消費しなければならない。 それは何処か。 また、それはどれだけの大きさのエネルギーか。

ビリヤードボールコンピュータを思い描けば、コンピュータを一方向に動作させる操作とは、演算後のボールに「ブレーキをかけること」だと気付く。 ボールを確実に、意図した場所で止める操作が必要なのだ。 ブレーキをかける操作は実質的なエネルギー消費であり、発熱を伴うエントロピー増大過程である。 全てのボールにブレーキをかけるとすれば、演算に必要な全エネルギーは「ボールの数x運動エネルギー」ということになる。 これが一方向の演算に必要最低限のエネルギーなのだろうか。 実は、工夫をこらせばもっとエネルギーを減らすことができるのである。

それは計算を終えたボールを「動いたままの状態で箱に入れて回収する」という工夫である。 ボールが転がってくる経路の先に、入り口のフタの開いた箱を設置する。 ボールが箱に入ったところで入口のフタを閉じれば、閉じ込められたボールは箱の中を往復し続けることになる。 ボールが入った箱はそのまま次回の演算に使用することができるので、ボールの運動に着目する限りエネルギーの損失は無い。 ボールの回収にあたって、フタの開いた箱はボールが出てくる可能性のある全ての出口に対して仕掛けておく必要がある。 実際にどの出口からボールが出てくるかはわからない。 (分かっているのであれば演算を行う必要がない。) それゆえ、仕掛けた箱のなかのどれにボールが入り、どれが空なのかは予め知ることができない。 我々にできるのは、ボールが出てくるタイミングを見計らって全ての箱のフタを一斉に閉じることだけである。 (演算にどれ位の時間がかかるかは、回路を組み立てたときに予め予測できる。) 結局、以上の操作を通じて我々の手元に残るのは「どの箱に入っているかわからないボール」ということになる。 ここでボールを演算前の状態に(逆の演算を行う以外の方法で)戻すには、ボールの入った箱だけを選び出す作業が必要となる。 つまりこの場合、演算に使ったエネルギーとはボールの入った箱を選び出すのに必要なエネルギーのことなのである。

ボールの入った(あるいは入っていない)箱とは、通常のコンピュータに対比させると何に相当するだろうか。 答えは「メモリー」である。 可逆コンピュータは演算自体にはエネルギーを消費しない代わりにメモリーを余分に消費する。 必要とする答以外の余分な記録が演算後のメモリー上に残るのである。 このことは可逆コンピュータを構成する個々の素子を思い浮かべれば想像がつく。 可逆素子は入力線の本数と出力線の本数が等しい。 しかし演算の答に必要なのは出力線の一部だけである。 残りの大部分の線は不要なゴミとなる。 このような「データのゴミ」のことを、コンピュータの世界では「ガベージ」と呼んでいる。 可逆コンピュータと普通のコンピュータを比較すれば、両者の差異はガベージの有無であることに気付く。 従って、可逆コンピュータを通常の不可逆コンピュータと同様に一方向に動作させるには「データのゴミ処理」の分だけのエネルギーを投じる必要がある。

それでは「データのゴミ処理」にかかるエネルギーはどれ程の大きさなのだろうか。 最も単純なケース、「2つの箱の中のどちらにボールが入っているか分からない」という状態を考えてみよう。 どちらか1つの箱の中に確実にボールを押し込めるには、2つの箱を連結した後、全体を半分に圧縮する操作が必要となる。 この操作は、ボールという1個の分子から成る気体の体積を半分に圧縮するのだと捉えることができる。 1分子の気体を半分に圧縮するのに要するエネルギーEの大きさは kT*ln(2) である。 つまり、1bitの「データのゴミ」に対して最低限E = kT*ln(2) だけのエネルギーが必要となる。※ 演算を通じてNbitの「データのゴミ」が生じたならば、必要なエネルギーは E = kT*ln(N) である。

「不可逆コンピュータに必要なエネルギーの大きさは、不要な情報を消去する過程で決まる。」 この考え方はコンピュータの熱力学の開拓者の名を冠して、しばし「ランダウアーの原理」と呼ばれることがある。 ランダウアーの論旨をまとめると次の様になる。

・論理的不可逆性(logical irreversibillity)と物理的不可逆性(physical irreversibility)には対応がある。
・論理的に不可逆な演算を行うにはエネルギーの消費、即ちエントロピー増大の過程が不可欠である。
・演算そのものは可逆に行うことができて、そこにエネルギー消費はない。
・演算の結果である情報を消去するには必然的にエネルギー消費が伴う。
・従って、不可逆な演算に必要となるエネルギーの大きさは情報消去の過程から見積もることができる。

エネルギーの観点からすると、コンピュータにとって最も重要な過程は「忘れる」ことだったのである。


実質的なエネルギー消費なしに、ボールの入った箱と空の箱を合わせる方法は無いものだろうか。 例えばボールが箱の中を縦方向に往復しているものに対して、縦方向に圧縮を試みるならば上に記した様なエネルギーが必要となるが、横方向から空の箱をスライドして重ねてみたらどうだろうか。 ボールに触れることなく空の箱を操作するだけであれば、エネルギーは不要ではないだろうか。 残念ながらそうはならない。 2つの箱のどちらか一方をスライドして他に重ねようとしたとき、どちらの箱にボールが入っているかによって、重ねる操作は少しだけ異なったものになる。 空の箱を動かすより、ボールの入った箱を動かす方が余計な力を要することだろう。 あるいは、2つの箱を左右から同時に同じ力で動かしたなら、どちらにボールが入っていたかによって最後に箱が重なる位置がずれるだろう。 結局のところ、エネルギー消費なしに2つの箱を全く同一の状態に持ち込むことはできないのである。


上の説明ははしょっている部分があり、以下のボールの速度に関する説明を付け足す必要がある。 ボールの速度をうんと遅くすればエネルギーはいくらでも小さくなるのだが、ボールは少なくとも熱ゆらぎを越える速度で運動しなければならない。 それゆえポールの最低速度は温度Tの下の気体分子と同程度になってしまう。

※ランダウアーの原理は本当に正しいのか?
本当に「原理」と呼ぶにふさわしいのか、一部には疑問の声もある。
こちら を参照のこと。
ページ先頭に戻る▲