Processor Simulator SimX Homepage

研究と教育を目的として、命令レベルのプロセッサシミュレータを公開しています。
現在は次の3つのシミュレータを公開しています。

SimAlpha と SimSimple は Intel Linux 上で開発をおこなっています。
RedHat Linux 6.2, TurboLinux 6.0 等でコンパイルと実行が可能です。
gcc -ansi オプションでコンパイルしているので移植も容易なはずです。

SimSparc は SPARC Solaris 7 上で開発をおこなっています。
SPARC Solaris 7 で実行できます。
こちらも、gcc -ansi オプションでコンパイルしているので移植も容易なはずです。

SimuSparc を Intel Linux上で実行したり、SimuAlpha を SPARC Solaris上
で実行できるようにすることは今のところ考えていません。
理由はsystemcall の微妙なインタフェースの違いを #ifdef などで記述するのが
嫌だということにあります。


ターゲット

これらのシミュレータは、SPECint95 に含まれる8つのプログラムの実行を目指して
開発しています。
ただし、SPECint95 は結構複雑なプログラムの集まりなので、SPECint95以外の
多くのプログラムも実行できると思います。そろそろ、SPEC CPU2000 に乗り換える
必要があるとは思っていますが。
全てのシミュレータに共通の話しですが、シミュレータでは mmap システムコール
を実装していないので、ダイナミックにライブラリをリンクするプログラムは実行でき
ません。
シミュレートするプログラムはスタティックにリンクするプログラムを用意してください。
具体的には、gcc を利用する場合には -static オプションを利用して実行コードを
作ってください。
SUNのコンパイラでは -Bstatic オプションを利用して実行コードを作ってください。


シミュレータ記述

シミュレータは、わかりやすく単純な記述を第一の目標としています。この成果は
ソースコードをみて判断してもらうしかありませんが、それぞれのシミュレータの
ソースコードは C言語あるいはC++言語で記述され、コード量は3000行程度です。

SimAlpha, SimSparc, SimSimple の多くの部分は非常に似たコードを利用して
います。これらをまとめて統合されたリターゲッタブルなシミュレータを記述することも
可能かもしれませんが、このようなことは決しておこなうべきではないと思っています。
シミュレータ毎に別々のパッケージを作成することが、単純なコード記述のための重要
な条件です。


メーリングリスト

SimuX に関する情報交換のためのメーリングリストが用意されています。
SimuX に関する質問や情報提供はアドレスkis-simu@yuba.is.uec.ac.jp
までお願いします。

kis-simu-subscribe@yuba.is.uec.ac.jp
宛にメールを投げることで自動的にメーリングリストに登録することができます。
kis-simu@yuba.is.uec.ac.jp 宛に送信したメールは購読者全員に配信されます。
kis-simu-help@yuba.is.uec.ac.jp 宛に空のメールを送ることで、メーリングリストに関する
ヘルプを得ることができます。


シミュレータのREADME.txt

シミュレータのコード


ソースコードのダウンロード(コンパイルするにはここからダウンロードしてください。)


サンプルバイナリファイルのダウンロード

SimpleScalarのためのSPEC95ベンチマークの実行コードは、SimpleScalarの
ホームページ
からダウンロードできます。


このページと SimuX は吉瀬 により製作管理されています。

< back