Computer architecture simulator とは

コンピュータアーキテクチャシミュレータまたはアーキテクチャシミュレータは、コンピュータデバイス(またはコンポーネント)をモデル化して、特定の入力に対する出力および性能メトリックを予測するためのソフトウェアです。アーキテクチャシミュレータは、プロセッサ、メモリシステム、およびI / Oデバイスを含むターゲットマイクロプロセッサのみ(命令セットシミュレータを参照)またはコンピュータシステム全体(フルシステムシミュレータを参照)をモデル化することができます。
フルシステムシミュレータは、実際のシステムからの完全なソフトウェアスタックが変更なしでシミュレータ上で実行できるような詳細レベルで電子システムをシミュレートするアーキテクチャシミュレータです。フルシステムシミュレータは、ホストコンピュータの性質に依存しない仮想ハードウェアを効果的に提供します。フルシステムモデルには、通常、プロセッサコア、周辺装置、メモリ、相互接続バス、およびネットワーク接続が含まれていなければなりません。
命令セットシミュレータと比較したフルシステムシミュレーションの定義特性は、単一のプログラムだけではなく、実際のデバイスドライバとオペレーティングシステムを実行できるということです。したがって、フルシステムシミュレーションにより、ネットワークデバイスドライバからオペレーティングシステム、ネットワークスタック、ミドルウェア、サーバー、およびアプリケーションプログラムまで、すべてのソフトウェアを使用して個々のコンピュータとネットワークコンピュータノードをシミュレートできます。
サイクル精度シミュレータは、サイクルごとにマイクロアーキテクチャをシミュレートするコンピュータプログラムです。対照的に、命令セットシミュレータは、このアーキテクチャの特定のインプリメンテーションに対して命令セットアーキテクチャを通常は高速であるがサイクル精度ではシミュレートしない。古いハードウェアをエミュレートするときに頻繁に使用されます。この場合、時間精度は従来の理由から非常に重要です。新しいマイクロプロセッサを設計するときにサイクル精度のシミュレータが使用されることがよくあります。実際の物理チップを構築することなく、テストやベンチマークを正確に実行できます(完全なオペレーティングシステムやコンパイラの実行を含む)。
サイクル・アキュレート・シミュレータは、すべてのオペレーションが適切な仮想(または可能であれば実際の)時間分岐予測、キャッシュ・ミス、フェッチ、パイプライン・ストール、スレッド・コンテキスト・スイッチング、およびマイクロプロセッサの他の微妙な側面で実行されることを保証する必要があります。