スーパースカラプロセッサシミュレータ SESC


概要

スーパースカラ実行による命令レベル並列処理を模擬するソフトウェア シミュレータである。
設定ファイルにより、同時実行命令数や、分岐予測およびキャッシュメモリの構成を 変更することができ、様々な条件での実行性能の評価が行える。

ソースファイルの入手とビルド方法

SESCシミュレータのソースファイルは GitHubで公開されているものを 取得して手元でビルドする。
以下の手順に従って作業を行うことで、SESCシミュレータを動かせるようになる。
なお、本演習ではWindowsOS上でUNIX環境を擬似的に実現する Cygwin上で 動かすことを前提とする。
  1. Cygwin環境を導入
    Cygwinのサイトから インストーラをダウンロードして実行する。
    Cygwinには32bit版と64bit版の2種類のインストーラが提供されているが、 64bit版のインストーラsetup-x86_64.exeを使うこと。
    ダウンロード先のサイトを選べるが、 JPドメインのサーバ(ftp.iij.ad.jp等)を指定する。

    もしダウンロードできない場合には、プロキシサーバ等の設定を確認すること。

  2. SESCシミュレータのビルドに必要なソフトウェアを追加導入
    Cygwin インストーラを再度実行し、 ソフトウェア選択画面で以下のものを選択してインストール。

  3. SESCシミュレータのソースファイルを取得
    ターミナルシェル(Cygwin64 Terminal)を開いて、 シェル上で以下を実行する。
    git clone htts://github.com/kaien3/SESC
    

    もしプロキシサーバ経由でアクセスする場合は、 環境変数https_proxyを設定する必要がある。
    宇都宮大学(陽東キャンパス)の場合は、以下の設定を行うこと。

    export https_proxy=http://proxya.cc.utsunomiya-u.ac.jp:8080
    
    # ここでは必須ではないが、余裕があれば以下も設定しておくこととよい。
    export http_proxy=http://proxya.cc.utsunomiya-u.ac.jp:8080
    

  4. SESCシミュレータのビルド
    以下を実行する。
    cd SESC/sesc
    mkdir build
    cd build
    ../configure
    make
    

SESCシミュレータの実行方法

SESCシミュレータ用クロスコンパイラ/アセンブラ環境で作成した 実行可能バイナリファイルをシミュレータに入力して実行する。
./sesc.mem program_file_name.bin
あるいは
./sesc.mem -c../confs/mem.conf program_file_name.bin
実行すると画面に何らかの表示が行われる。
また、シミュレータが終了すると、実行に関する各種統計情報を保存した ログファイルが生成される。

GitHubの配布ファイルにはテスト用プログラムが同梱されている (testsの下にプログラム毎にディレクトリを分けて格納されている)が、 それらの実行の仕方は以下の通りである。

例:helloプログラムの実行方法

cd ~/SESC/sesc/tests
../build/sesc.mem hello/hello.bin.mipsel


文責:大津