ppcsimはPowerPCの命令コードをソフトウェア的に解釈して動作をシミュレートする
ソフトウェアシミュレータです。Power-Xプロジェクトの先行実験検証用(本当は単なる
お勉強用)に作成しました。本当は本物PPCが使えれば良いのですが、Power-Xプロジェクト
自体が現実のものになるのかどうか不明であるため、労力はかかるけど設備投資は不要な
ソフトシミュレータで、GNUツールのレベル検証であるかとか、性能見積もりであるだとか
を行ってみようとTANEが勝手に行った実験の産物の一つです。
2000/5/13に、首謀者である
SYSTEMAXのKOJIさんの所から、
バーチャルPowerXが出ました!!グラフィックが使用できるのがppcsimとの大きな
違いです!しかも動作が速いです!必要悪だと思ってWinマシンをゲットして
使うしかっ!!
パスの通ったディレクトリにppcsim.xとppcsim.hlpをコピーします。
コマンドシェル型のユーザインターフェースとなっています。
> ppcsimと実行する事でプロンプトが表示され、コマンド受け付け状態となります。実際には、 アセンブル&リンクされた実行ファイルをシミュレータ内のメモリにロードし、 g(GO)コマンドでプログラムの先頭から実行を開始します。
> ppcsim foo.ppcの様に実行する事でファイル内(この場合はfoo.ppc)に書かれたコマンド列を順に実行 します。全てのコマンドを実行し終えるとppcsimの実行は終了します。
サンプルを実行してみます。サンプルアーカイブ(ppgccsmpl.lzh)を展開し、
ppcsim count.ppcと実行すると、count.binの命令列がシミュレーター上で実行されます。
X68kXVI+Xellent30で実行した場合の平均的な実行時間は、だいたい
IJG djpeg(JPEGデコーダ) : 2時間(256*256*24bitのデータ) IJG djpeg -gif : 12時間(256*256*24bitのデータ) zlib minigzip -d : 2時間(18KBくらいでほとんど圧縮の効いていないと思われるデータ) libpng-1.0.3 load_png (自前ロードルーチン) : 5時間(256*256*24bitのデータ) libpng-1.0.6 load_png (自前ロードルーチン) :3.5時間(256*256*24bitのデータ)という感じになっています。いずれも、2時間 ~= 1秒換算でX68kのモジュールは実行終了します。
完全にPowerPCの動作をシミュレートできている訳ではありません。
かなり説明が雑で判りにくい(つーか判らない)所もあると思いますが、実験風味ただよって
いるという所で勘弁願えたらなと思います(ダメ?(^^;)。暇をみて詳しい解説を加えていき
たいですね。
プログラムとは全然関係無いのですが、emulationは競争するという意味がある様ですが、
最新のプロセッサに実行速度の点でかなうハズがありませんので、ppcsimはエミュレータ
ではなくシミュレータという事で。
2000/03/27 : 「実行時間について」を追加した。 2000/03/27 : 履歴を追加した。