All-IP Computing (IPバスコンピュータアーキテクチャ) [ORF2008レポート]

CPU中心のコンピュータではなく、ネットワークが中心となるアーキテクチャを作ってしまおう！という研究です。 村井研究室インターネット・リサーチ・ラボの研究です。 詳しくは、http://www.sfc.wide.ad.jp/All-IP/html/をご覧下さい。

平たく言ってしまうと、バス(Bus)そのものをIP(UDP)の上に乗せてしまうという結構強烈なものです。 インターネットそのものを汎用バスとして位置づけており、パーツやデータといった区別をつけずに何でも送受信しています。

例えば、ORF2008ではCPUの数を動的に変更しながらレイトレーシングを行うデモや、メモリをIP経由で接続するというデモが行われていました。 途中から「CPU」であるデバイスをネットワークにつなげるとレイトレーシングを行いながら描画される画像が表示される速度が上昇するというものです。 利用中に「CPU」をネットワークから減らす事もできます。

今回のデモでは、各「リソース」はFPGAボード(XILINX SPARTAN-3)上で実装されています。 バスの中身がイーサネットを解して全てUDPで転送されます。







独自OS

このシステムでは、OSは独自のものがゼロから構築されています。

メモリ

このシステムで個人的に面白いと思ったのはメモリが共有されていく仕組みです。 汎用バス上のデータが全てIP上に乗るということで、メモリに関するデータもIP上に乗ります。 その結果、メモリのアドレスを一覧表示すると以下のようになります。 途中のメモリがREMOTEになっているのがわかります。

バスをそのままIP上に乗せてメモリもそのままIP上に流れるようになると、自分のメモリと他デバイスでのメモリがごっちゃになってしまう可能性があります。 この研究では、各デバイスが固有IDを持っており、固有IDとメモリ物理アドレスのセットでメモリが扱われます。 メモリの扱われ方は基本的なTLB(Translation Lookaside Buffer)と同じですが、「仮想メモリ」の概念の中に「ネットワークに先にあるメモリ」が入るところが異なります。

マルチスクリーン

この仕組みを使った面白いデモもありました。 コンソール画面でのマルチスクリーンです。 一瞬普通のマルチスクリーンに思えますが、やっている事はもっと強烈です。

このシステムでは、物理メモリを4byte(32bit)を最小単位として扱えます。 ここでは、スクリーンの一行を単位としてメモリの割り当てを行い、左側機器のコンソール1ライン分を左側の機器に出して、次の1ライン分のメモリは右側機器に出ています。 これは、ネットワーク全体を1システムとみなしつつ、物理的なメモリマップとしては左側と右側機器で交互にインターレースした状態になっています。

コンピュータ内のバスと比べるとレイテンシがあったり、情報伝達のロスが発生する可能性があったり、セキュリティへの懸念があったり、ダイナミックにリソースが失われる事があるなど難しい面も色々ありますが、個人的には非常に面白い研究だと思います。 UPnPも当初のコンセプトはこのようなことまでやりたいというコンセプトだったのかも知れないと、ふと思いました。

キーボード

キーボード over IPというのもあります。 KVM/IPやUSB Over IPですでに実現されている手法と違い、上位層などで一切処理を行わずにTLBの基本機能としてバスレベルで行うという特徴があります。

notice

この記事はORF2008レポートです。

最近のエントリ

過去記事

過去記事一覧