« やはり気持ち次第 | メイン | やべー »

2008年11月27日

シミュレータとエミュレータ

この呼び分けが一般的かどうかはわからないが――
組み込み系で下位部分でソースコードの違いを吸収し、上位部分が同じソースでPC上で動くようなものをシミュレータ。
ソースコードは完全に同じで出力される実行コードも同じ、PC上でその実行バイナリを解析しつつ、エミュレートし動作させるのをエミュレータ。
と呼んでいる。
エミュレートするのかシミュレートするのかの違い。
そのまんま。

エミュレータはほとんど作ろうとしないが、シミュレータは時々作ろうとする。
理由は単純で、その方が開発効率がいいから。
組み込み機器の場合 ICE などを使うが、ソースコードをコンパイルした後、組み込み機器のリセット、転送、起動と言う処理が入るため確認できるまでに時間がかかる。
特に補助記憶装置が遅いデバイス(CD-ROMなど)の場合、遅くて効率が悪い。
(少しの時間であれば電源が切られてもメモリは意外と消えないので、画像などの多少壊れても問題ないデータは再読込をスキップしてしまうと言う手を使ったりもする。この場合、徐々に画像にノイズが入っていって判読出来なくなって行くのがなんか楽しい)

これが PC 上で出来るとなるとすぐに起動できるし、PC は組み込み機器に比べればデータ読み込みもすぐに終わる。

シミュレータを作るのは、マルチプラットフォーム化のテクニックと似ていると思うが、組み込み機器での効率やその機能を損なわないようにすると言うのが異なる。
常に組み込み機器が優先。
最終的に組み込み機器で動作するようにするのだから当たり前。

シミュレータの悩みどころへ続くかも……

投稿者 Takenori : 2008年11月27日 02:20


トラックバック

このエントリーのトラックバックURL:
http://kaede-software.com/mt/tb-ping.cgi/1802


Total : Today : Yesterday :