インサーキット・エミュレータ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
インサーキット・エミュレータ (In-circuit emulator)は、マイクロプロセッサ(CPU)の機能をエミュレートするハードウェアで、実際のマイクロプロセッサと同じ機能を実装し、さらにブレーク(プログラムの実行を一時停止する)などのデバッグ機能を持つ特別な装置。主に組み込みシステムやOS、BIOSなど、ソフトウェアデバッガを使用できない環境でのプログラム開発に使用する。通常、略してICE (アイス)と呼ばれる。
通常、CPUソケットにそのまま接続することが可能で、実際の使用環境に極めて近い形でのデバッグが可能である。さらに特定メモリアドレスへのアクセスなど特定の条件でのブレーク、プログラムが暴走している場合でも強制ブレークなど、非常に強力なデバッグ機能を持つ。たいていの場合、パソコンなどと接続して、そのうえから操作する。
デバッガとしては最強と言えるが、
- かなりの高額であるうえ、特定のCPUにしか使用できない。
- 近年のCPUの高速化に伴いICEの開発が難しくなっており、CPUの進化についていけていない。
- 組み込みシステムではASICを採用する例が多くなってきており、ICEを使用することができない。
といった事情があるため、近年では使われることが少なくなってきており、JTAGエミュレータやROMエミュレータなどのオンチップ・エミュレータを使用することが多くなってきている。
近年のIntel IA-32アーキテクチャのCPUはICE機能を内蔵しており、ハードブレークポイントの設定やコンテキストへの介入を自ら行う事ができる(内蔵ICEへのアクセスは外部のコンピューターの助けがあった方が望ましいが、全てをソフトウエアで行う製品もあった)。またIn-Circuit Emulatorは同社の登録商標でもある。
マイクロプロセッサのデバッガの代表であった時代が長かったこともあり、現在でも組み込みシステム向けのデバッガを総称して「ICE」と呼んでいる技術者も少なくない。それに影響してか、実際にはJTAGエミュレータなど機能的にはICEではない製品の名称に、「ICE」を謳っているものもある。