[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. 概要

ISISは主として並列計算機をターゲットとした、計算機シミュレータのための C++言語によるクラスライブラリである。

並列計算機をシミュレーションによって評価する場合、重点が置かれる評価に 応じて様々なシミュレータが実装される。しかし、これらのシミュレータの多 くは特定のアーキテクチャを持つ並列計算機の評価を目的として開発されるた め、想定されていない構成の並列計算機をシミュレートすることはできない。 また、評価対象に応じて異なるシミュレーション方式を採用するのが一般的で ある。このような理由から、新たに並列計算機を評価する必要性が生じた場合 には、新しいシミュレータを実装することが多い。このオーバヘッドは研究者 にとって大きな負担となる。

そこでISISでは、計算機内部のプロセッサやメモリなどのハードウェア機能ブ ロックをユニットと呼ばれるクラス単位で実装している。ユニットを結合させ ることによりターゲットの計算機アーキテクチャを表現し、シミュレーション を行う。ISISには計算機内部の基本的な機能ブロックがあらかじめ用意されて いるので、並列計算機シミュレータを実装する場合はそれらの機能ブロックを そのまま組み合わせるだけで良い。また、ISISで用意されていない特殊な機能 ブロックを独自に追加することもできる。したがって、どのような計算機シミュ レータでも比較的容易に構築することができる。

ISISはユニット、パケット、ポートという概念を用いてシミュレートする計算 機をモデル化する。

ユニット
ハードウェアの1つの機能ブロックを表す。各ユニットはクロック入力を受け て自律動作する。接続された隣接ユニット以外のユニットに動作が依存するこ とはない。

パケット
ユニット間でやり取りされる情報を表す。例えばバス上のメモリアクセス信号、 ルータ間で送受信されるフリット等がパケットとして扱われる。

ポート
ユニット間の結合路の端点の入出力ポートを表す。ユニット同士は必ずこのポー トを経由して接続される。また、パケットの送受信もポート経由で行う。

ISISはC++言語によるクラスライブラリである。パケット、ポート、ユニット 等のモデルは、それぞれがクラスとして実装されている。また、クラス間の関 係は継承で表現され、パケット、ポートと言った概念ごとに個別のクラス階層 が形成される。

ISISを使用する場合は、必要なクラスのヘッダファイルをインクルードしてソー スファイルをコンパイルし、ISISのライブラリファイルとともにリンクを行う ことで実行バイナリを生成する。トップモジュールの記述は全てユーザ自身の 手によって行う。

ISISが提供するクラスは、以下の様に分類される。

サポートクラス
ISIS外部でも使用できるような一般的なクラス。他のクラスの実装のために使 用される。See section 4. サポートクラス.

パケット
ユニット間でやり取りされる情報を表すクラス。See section 5. パケット.

ポート
ユニット間の結合の仲介、パケット転送の仲介を行うクラス。ポートはユニッ ト内に内蔵され、他のユニット内のポートと接続された状態で使用される。あ るユニットが自分のポートに対してパケットを送信するよう指示すると、その ポートに接続されたポートを持つユニットがそのパケットを受け取ることがで きる。See section 6. ポート.

デバイス
計算機内部のデバイスを表すクラス。ハードウェアの持つ機能のみを提供する クラスで、通常は時刻の概念を持たない。ユニットを実装する際の道具として 使用される。See section 7. デバイス.

ユニット
状態遷移を行うユニット。ハードウェア内の自律動作する機能ブロックはこの ユニットとして実装する。See section 8. ユニット.

ユーティリティ
パケットやポート、ユニットなどの分類に当てはまらない、ISISに特化したク ラス(または関数やマクロ)。See section 9. ユーティリティ.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Masaki WAKABAYASHI on September, 3 2003 using texi2html