Skip to content

Emulator

Yuya Degawa edited this page Jun 5, 2023 · 3 revisions

dst/設定/XMLノードのリファレンス/Session/Emulator.md

シミュレーション対象となる実行ファイルや,そのコマンドライン入力の設定を行う

デフォルト値

 <!-- Emulator parameters-->
 <Emulator
   TargetArchitecture='AlphaLinux'
 >
   <Converter
     EnableSplitLoadStore='1'
   />
   <Processes>
     <Process
       PDB_Array='1'
       TargetWorkPath='./'
       TargetBasePath='./'
       Command=''
       CommandArguments=''
       STDIN=''
       STDOUT=''
       STDERR=''
       StackMegaBytes='16'
     />
   </Processes>
 </Emulator>

Emulatorノード内各項目の説明

@TargetArchitecture

  • 実行対象のターゲット・アーキテクチャを指定する
  • 現在指定可能なのは,以下の2つ
    • AlphaLinux
      • Alpha/Linux の実行環境をエミュレーション
    • PPC64Linux
      • PowerPC 64bit/Linux の実行環境をエミュレーション

Converter/@EnableSplitLoadStore

  • ロード命令やストア命令を,スプリット・ロード・ストアとして処理するか否か
  • 1を指定した場合,各ロード命令やストア命令はアドレス計算とメモリ・アクセス命令に分解される

Processes/Process

  • プロセスの実行パラメータを設定する
    • このノードでは,パラメータ指定を行った際,元の値を上書きするのではなく,新しいノードが追加される
      • PDB_Array 属性が1になっているノードは,同様の振る舞いを行う
    • DefaultParam.h にあるProcess はプレイスホルダーとなっており,新しく追加されるノードの初期値はここのものが使用される
  • 複数プロセスの実行を行う際は,複数のProcess ノードを入力として与えることにより行う.

指定例

  • file0.xml
...
<Processes>
  <Processs
     Command='a0.out'
     ...
  >
</Processes>
...
  • file1.xml
...
<Processes>
  <Processs
     Command='a1.out'
     ...
  >
</Processes>
...

上記の2ファイルを以下のようにして読み込ませた場合,

onikiri2 file0.xml file1.xml

シミュレータからは以下のように見える

<Processes>
  <Processs
     Command='a0.out'
     ...
  >
  <Processs
     Command='a1.out'
     ...
  >
</Processes>

Processes/Process 以下の属性

  • @TargetWorkPath
    • ワーク・パスの設定.ターゲットの実行ファイルは,ここで指定したパスをカレント・ディレクトリとして起動される.
  • @TargetBasePath
    • ターゲットのパス指定を行う際のベースの指定.以下の属性でファイル名を指定する際は,このパスからの相対パスとして扱われる.
  • @Command
    • 実行ファイル名の指定
  • @CommandArguments
    • コマンドライン引数
  • @STDIN
    • 指定したファイルがターゲットの標準入力に入力される.
  • @STDOUT
    • 指定したファイルにターゲットの標準出力の内容を出力する.空の場合,ホストの標準出力に出力が行われる.
  • @STDERR
    • 標準エラーに関する設定.@STDOUTと基本的に同じ.
  • @StackMegaBytes
    • スタック領域のサイズ指定.
Clone this wiki locally