The advantage of an ICE is that it is relatively easy to set up – it can even execute code if disconnected form the target application. ICE allows the maximum amount of control for debugging. It controls the emulation silicon, maps program memory to internal RAM, and has a trace analyzer connected to the internal embedded microcontroller bus. Analyzer features in the ICE like complex breakpoint help find elusive problems that simple breakpoint can miss. On the flip side it is moderately expensive. Also, the ICE Probes require special silicon from the manufacturer. And the probe may encounter physical problems when attaching to the target application. Finding adequate clearance for the Probe, which is typically a larger assembly than the microcontroller chip it replaces, can be difficult in compact designs and the interconnection back to the Pod can encounter physical obstacles. The final limitation of in-circuit emulators, and the reason that they are becoming less common is, as chips get faster, emulation memory in the Pod has more difficult time meeting memory set up times, and the lines from the Pod to the Probe can have physical limits to speeds they can support.