1. ホーム
  2. terminology

[解決済み] シミュレータかエミュレータか?その違いは何ですか?

2022-03-18 10:22:53

質問

シミュレーションやエミュレーションの一般的な意味は理解しているのですが、ほとんどいつも混乱してしまいます。既存のハードウェア/ソフトウェアを模倣するソフトウェアを作成したと仮定して、それを何と呼ぶべきでしょうか?シミュレーターと呼ぶべきか、エミュレーターと呼ぶべきか?

この違いをプログラミングの観点から説明できる方はいらっしゃいますか?

おまけ:この2つの用語、英語ではどう違うのでしょうか?(すみません、私はネイティブスピーカーではありません :))

解き方は?

エミュレーションとは、外見上観察可能な振る舞いを既存のターゲットに合わせて模倣することである。 エミュレーション機構の内部状態は、エミュレーションするターゲットの内部状態を正確に反映する必要はない。

一方、シミュレーションは、ターゲットの根本的な状態をモデル化するものです。 良いシミュレーションの最終結果は、シミュレーション・モデルが、シミュレーションしているターゲットをエミュレートすることです。

理想は、シミュレーションを覗き込んで、元のターゲットを覗き込んだときと同じような特性を観察できることです。 実際には、パフォーマンス上の理由から、シミュレーションの内部をショートカットしている場合があります。

MAMEはアーケードゲームのエミュレータで、Hypertermは(あまり良くない)ターミナルエミュレータです。 アーケードマシンや端末を詳細にモデル化して、望ましいエミュレーションの動作を得る必要はありません。

フライトシミュレーターはシミュレーター、SPICEは電子機器シミュレーターです。 これらは、ターゲットが現実に行うことを表現するために、ターゲットの細部まで可能な限りモデル化しています。

編集部:他の方の回答で、エミュレーションの目的は、エミュレートしている対象を代替できるようにすることだという指摘がありました。 これは重要なポイントです。 シミュレーションは、対象物の内部状態をモデル化することに主眼が置かれており、シミュレーションが必ずしもエミュレーションにつながるとは限りません。 特に、シミュレーションはリアルタイムよりはるかに遅く動作する可能性があります。 例えばSPICEは、実際の電子回路の代わりにはなりません(仮に、電気回路とSPICEシミュレーションを完全に結びつける魔法のようなデバイスがあったとしてもです)。 シミュレーションがエミュレーションにつながるとは限らない--。