マルチチェックポイントがとれるなどMARSSx86ではpLRUというちょっと変わったLRUを使用しています。MARSSx86に対応した普通のLRUのソースコードを置いておきます。lru.cpp(13)このソースはptlsim/lib/logic.hにコピーして使用します。exp/bench.shを追加。QEMU)インストール編集ここでのインストール作業はUbuntu11.10での場合です。インストール時、シミュレータのパラメータがいくつか決まります。1でデバッグモードdebug=1を引数に与えると、gdbなどを使ったデバッグ作業が行えます。デバッグ作業時には以下のコマンドが必要となります。DRAMSim2の場合コンパイル時にエラーが出るので(2012年9月時点)、qemu/SConstructを以下のように修正する必要がある。編集sconsによるコンパイルが終了すると,qemuディレクトリの中にいくつかのバイナリが生成されます。(仮想マシン)ここではqemu-system-x86_64について説明します。qemu-system-x86_64はマシンエミュレータであり、引数にイメージファイル(拡張子がimg,iso,qcow2などのファイル)を与えるとエミュレータが起動します。実行時のオプションはこのページの下部を参照してください。イメージファイルは自分でも作成できますが、MARSSx86のダウンロードページにおいて配布されています。ここではsplash.imgを使用します。splash.imgこのコマンドでエミュレータを起動できます。エミュレータを停止したい時は、`ctrl+alt+2`を同時押しし、`quit`と入力します。エミュレーションモードとシミュレーションモード編集MARSSx86エミュレータには2つモードが用意されています。それはエミュレーションモードとシミュレーションモードです。(※本当にこの呼び方でいいかは分かりません)エミュレーションモードはイメージファイルを仮想マシン上で実行しているときの状態です。「とりあえず実行」の節で説明したコマンドを打ち込んだ時にでてきたウィンドウはエミュレーションモードです。Cycles)はいくつか、などの詳しいことは分かりません。これに対して、シミュレーションモードは上記で述べたようなことを知ることができるモードです。このモードに切り替えるにはシグナルを送信してあげる必要があります。その方法はいくつかあります。使用するのが-simconfigオプションです。スナップショット(後述)を撮った際に使用します。simconfigオプション(コマンド)を使用するとシミュレーション時の設定を決めることができます。simconfigのオプションはこのページの下部を参照してください。-run`と入力するとりあえずシミュレーションしてみる編集とりあえずシミュレーションしてみます。ここではコンパイル時にconfig/default.confを使用した場合を書きます。最初にシミュレーションの設定ファイル(sim.cfg)を書きます。sim.cfgエミュレータ実行後、ログイン。このMARSSx86のホームページで配布しているsplash.imgにはホームディレクトリにfibonacciというプログラムがあります。これをシミュレートしてみます。次のように入力するとシミュレーションモードに切り替わり、シミュレーションを開始します。./stop_sim100万命令実行後、MARSSx86は自動的に終了します。この時に、ディレクトリを見てみるとtest_fibonacci.logとtest_fibonacci.yamlというファイルが生成されています。これらのファイルの中にシミュレーション結果が記述されています。設定ファイル編集configディレクトリにマシンの設定ファイルがあります。ここではキャッシュ構成の設定などができます。編集util/run_bench.pyファイルは指定したイメージファイルのチェックポイントをすべて実行してくれるスクリプトです。細かなシミュレーション設定などもでき、シミュレーション終了後にメールで通知をすることもできます。スクリプト実行時に引数に実行したrun_configを指定する。詳しい使い方はutil/READMEもしくはhttp://marss86.org/~marss86/index.php/Batch_Runsを参照してください。自分で作成したプログラムやベンチマークをイメージファイルに保存したいときがあります。そんな時のためのテクニックです。場合だけ書いておきます。4.7GBイメージファイルをマウントします。イメージがマウントされるので、必要なファイルを適当な場所に入れます。/dev/loop0これで完成です。通常qcow2をマウントすることができません。qemu-nbdを用いてマウントする方法があります。編集スナップショットとはエミュレータのマシン状態を保存しておき、後でそこから実行することができる機能です。ここではのスナップショットの撮り方について説明します。imgファイル(raw)ではスナップショットを取れません。そこでimgファイルをqcow2ファイルに変換する必要があります。ここではxxx.imgをxxx.qcow2に変換しています。xxx.qcow2qemu起動。00:07:34.238スナップショットを取った場所から実行したい場合は、引数にsnapshot=onとloadvmをつける。※Ubuntu11.10でのやり方ですimgファイルをどこからダウンロードしてなくても、自分で0から作ることができます。nattyはubuntu11のコードネーム10分程すると~/ubuntu-kvmが作られている。中にはrun.shとxxx.qcow2という2つのファイルがある。講座アカウント意見交換所メールエイリアスプリンタ成果物2016/5/11サーバ、アカウントの管理情報2016/4/7201103-教育用計算機2015/10/15FrontPageプラグインヘルプ[edit]。