For the in-circuit debugger, the advantages are low cost, a simple interconnect that does not require the replacement of the microcontroller like the ICE. Yet the ICD can do the most of the ICE functions. The disadvantages of the ICD are that, in benefiting from a much cheaper hardware debugger than an ICE, the engineer must ensure that the pins used for communication are available for debugging; and some program and data memory (and possibly stack space) will be used. Additionally, the target must be electrically compatible with the ICD for the ICD to communicate and control the target. And the ICD will work only with target silicon that has ICD logic manufactured on the chip.