コア間をランダムに繋いだらどうなるか
プロセッサが大量のコアを搭載する"メニーメニーコア"の時代になると、コア間を繋ぐインタコネクトが重要になる。例えば、今年のISSCCで発表されたIntelの80コアプロセッサでは、2次元メッシュ状のインタコネクトでコア間を接続している。しかし、プロセッサが大きくなると、インタコネクトの部分に製造欠陥ができる率が上がり、パーフェクトに動作するとは限らない。
ここでLevitan氏は「どうせ完全な形で繋げないなら、コア間をランダムに繋いだらどうなるか」ということを考えたのである。10×10のマトリクスに配置したコアの間をランダムに繋いでいくと、最初はあちこちにコアのペアができる。それからペアに3つ目のコアが接続され3コアのグループになったり、ペア間を接続するパスができて4コアが繋がるというように、接続本数が増えるに従って相互に接続されたグループのコア数も増加する。
そして、100本の接続をランダムに生成すると、最大90%程度のコアが含まれるようになるという。Intelの80コアプロセッサの場合は、各コアから4方向の隣接コアに接続されているので、全体ではコア数の2倍の接続がある。一方、この例でのランダム接続では、コア数の等倍となる本数で90%のコアが接続できる。ただし、接続がランダムであるのでコア数の2倍となる本数でも、全部のコアが一つのグループに接続されるという保証はない。
10×10のマトリクスに配置したプロセッサコアの間をランダムに接続するにはどうしたら良いのだろうか。それには、例えばカーボンナノチューブをプロセッサ上に降りかけるという方法があるという。両端が各コアのI/Oポートに自動的に接続し、かつカーボンナノチューブの中間部分を絶縁してショートしないようにすれば実現できる。しかし、実際にはパラパラと振りかけたカーボンナノチューブをコアのI/Oポートに接続する方法は知られていないし、カーボンナノチューブは絶縁されていないので、交差するとショートしてしまう。
メッシュなどの規則的な接続に欠陥がある場合と比較して、ランダム接続にメリットがあるかどうかは難しいところである。また上述のように、ランダム接続を容易に実現する手段も知られていない。
これはまさに"ワイルドでクレージーなアイデア"だと言えよう。人間の世界でも人と人のつながりはLevitan氏の述べたランダムネットワークのようなものであり、意外に役に立つアイデアであるかも知れない。