next up previous
: StarT-Voyager : 調査したクラスタシステム : ATOLL

SHRIMP


SHRIMP[3][4]はPentiumベースのPCをノードとし、 NIはEISAバスへ接続するとともに、メモリバスにも接続してスヌープすると いう構造を取っている(図2)。


図: SHRIMPのアーキテクチャ


SHRIMPのNIは送信用と受信用にページテーブルを持ちユーザレベルゼロコピー 通信を行うとともに、その情報を利用してプロテクションを提供している。 EISAバス経由のDMAを利用したdeliberate update(メッセージパッシングに対 応)と、メモリバススヌープを利用したautomaticupdate(共有メモリに対応) の2つの通信機構を持つ。

deliberate updateでは、ユーザプログラムがI/OマップされたNIのメモリ領 域へ通信に必要なデータ領域のアドレス、データサイズ、リモートアドレス などをPIOで書き込む。NIは送信用ページテーブルを参照してDMAを起動し、 データを送信する。受信側では、同様に受信用ページテーブルを参照し、DMA で主記憶へ受信データを書き込む。ATOLLとは違い、ページテーブルさえ設定 されていれば受信動作にホストは関与しない。

automatic updateでは、メモリバスをスヌープし、ある番地への書き込みを 自動的にリモートへ転送してしまう。これにより明示的に通信を起動しない ため、オーバヘッドが小さい。受信側ではdeliberate updateと同様にNIが DMAで受信データを主記憶へ書き込む。




Jun-ichiro Tsuchiya 平成12年12月21日