波打つコンピュータ

コンピュータは同期回路技術と共に進んできた。しかし当初予定していなかった物理限界に近付くほどに、非同期回路へ傾いていくはずだ。

僕は中学生の頃エレキット小僧だった。エレキットというと「どっちだ?」と言うことになるかと思うが、僕はデジタルだった。
このころはマトモに勉強してた訳じゃなくて、手元にあった本とか資料を基に半分以上自分の推測で、まるで謎解きをするようにものを作っていた。そのせいでデジタル回路は非同期のものしか作らなかったし、分からなかった。いまでも同期回路の根本であるクロック信号周りのことはよく分かっていない。
クロックが来たら動くんでしょう(状態確定するんでしょう?)くらいのもので、同期回路の一番重要な同期信号のアナログ的な側面のことについては何一つ理解していない。
その意味で同期回路は非同期回路に比べてアナログな部分が多いのだ。そう、僕はラジオ小僧ではなくデジタル小僧だったからアナログのことをまるきり分かっていない。

コンピュータはハザードレスな非同期回路を組むより遙かに簡単だという理由で同期回路を重用してきた。その後の進歩と低価格化の勢いの良さは同期回路の成功を意味している。が、クロックの刻み時間と素子のスイッチング時間が近づくにつれ、また刻み時間内に到達可能な配線距離が同期の必要な回路に必要な配線距離に近づくにつれ、同期するというアイディアそのものが障害となってくる。

1950 年代にそう言うことを考えた人間はまず居なかったと思うが(民生品が GHz 単位でドライブされるなど想像するだろうか?ほんの10年前でも否定的だったのに)、しかし当時そのようなデザインを選択して以来、コンピュータはあっという間にここまで来てしまった。そろそろ立ち止まらなければならない。

現在の同期回路技術を使ってものを作ると、GHz 単位で走るのはせいぜいチップの中だけとなる。配線経路を電気的にそんな精度で維持できるのは高い精度でコントロールされた工場で作るシリコンチップ上だけだからだ。チップの足から出て基板の上を走ることができるサイクルはせいぜい 200MHz 程度だ。市販 PC では 133 MHz 程度にまで落ちる。これでも基板の端から端まで同期させて動作させるにはかなり厳しい数字だ。
すべての電子回路が 133MHz 程度で基板の端から端までバッタンバッタンとスイッチの入り切りを一斉にやっているところを想像してほしい。電気が端まで届いたかと思うとすぐにまた次のバッタンだ。早めに電気が届いたところは基板の端の方にある回路のスイッチが切り替わるのを待っていることになる。

僕が中学生以来愛してやまない非同期回路は、この種の問題を根本的に解決してくれる。ずっとそう思ってきた。妄想だ。
日経サイエンスの 2002.11 号にまさにそのことに触れた記事が掲載された。主筆はアイバン・サザーランドだ。素晴らしい。UltraSPARC IIIi チップのメモリとのデータのやりとり(当然SMP環境下でだろう)に使われているとのこと。全く素晴らしい。

しかし僕が愛してやまない非同期回路の妄想はそこでは止まっていない。もっと大きな規模でこそ生きるはずだと確信している。

処理量が大きくなり、我々が計算パワーに毎日の生活をもっと委ねるようになれば、近い将来にはビルひとつまるまるコンピュータ、というようなことになるだろうと僕は考えている。そこで多様な処理を同時並行に掛けることになる。(地球シミュレータはイメージとしてかなり近い)
その時、現実にあり得るアーキテクチャは、クロックチップの中の同期処理と、それより一段低い基板上での同期処理と、(いろんなタイプがあるとは言え何らかの)ネットワークを利用した完全に非同期の部分に区分される。これはしかし悪いアーキテクチャだ。

距離が遠くなったところは非同期にデータを受け渡さざるをえないわけだが、それは結局ある境界を越えると処理を通信というモデルに載せ変える、ということで実現されている。密な同期世界に生きているプロセッサ間を、疎なネットワークで非同期に接続するのである。こんな大きなギャップをアーキテクチャ中に入れるというのはそもそも良くない。掛ける問題の境界線が従来的内部処理と通信の境界にあれば問題ないが、そう都合良くはいかん。単に処理するプロセッサユニットのサイズがその境界を規定するようでは効率が落ちるのは当然だ。
僕が想像している「建物サイズのコンピュータ」が扱う問題はもっと多様で、普通のものだ。地球シミュレータとは違って、いちいち掛ける問題ごとにモデルを慎重に選んだりチューニングや調整をしてはいられない。

僕が想像している「建物コンピュータ」の中では、通信という境界なくすべての回路が接続され、同期信号を必要とせずに動かなければならない。プロセッサのすぐ横あたりから基板上では回路を信号(データ)が波打つように伝播していく。まるで野球場のウェーブのように。そして問題を処理している中心(システムのなかにそれは幾つもできるだろう)では信号は素早く激しく伝播し、少しはなれたところにある回路では少し時間を空けて伝わる。手前の回路で忙しい処理をし、少しはなれた回路に時間が掛かっても良い処理を回す。建物の端から端までそうした処理構造で作られているのがよい。

今の時点では否定的な意見は肯定的なそれの 100 倍出るだろうが、まあ良い。とにかく書いておこう。

ところで、当然ながらデータフロー的並列アプローチがこの種の非同期処理計算機には向いていると思うが、そうしたアプローチが非同期回路をブレイクさせるかどうかは今の僕にはちょっとわからない。第五世代コンピュータは PE (要素プロセッサ)を並列処理や同期の問題をうまく内包した KL/1 で作ったが、こうした要素プロセッサを並べる並列処理はそうした筋の良い努力とはほとんど無関係に伸びてきている。

(ビルほどのサイズのコンピュータ、というのはノイマンの予想のなかに含まれている。ただし彼はマイクロエレクトロニクスの成果としての小型化を予想できていなかったため、彼の言う「要求された処理能力を実現するために大きくなる」は間違っていたことになる。小型化技術を極限まで追求したが、それでもなお処理能力の要求のために大きくなる世界を僕は想像している。地球シミュレータをはじめとして、それほど間違った予測ではないということが実証されはじめている。)



Yutaka Yasuda

2002.10.02