|Intel 286 Secrets: ICE Mode and 'F1 0F 04'
|Sunday February 11, @07:12PM
|from the dept.
With some recent interest in undocumented opcodes and microcode on modern Intel chips, I decided to do a proper writeup on what I found out while researching and playing around with the venerable 80286 ("Beige Unlock"?).
The documentation for the '286s LOADALL instruction - which Intel only made available under NDA back in the day - briefly mentions how it is used during automated testing of every produced chip (and is thus guaranteed to work). But its other purpose was kept secret: to support In-Circuit Emulation (ICE).
An ICE is a very expensive device that plugs into the CPU socket and "emulates" the chip while providing debugging functionality. This is not at all like the kind of software emulation familiar today, or even using a modern microcontroller to emulate 30+ year old hardware: it needs to run at the same speed and interact with external hardware in exactly the same way as the chip it replaces, using technology available at the time when the 286 was still in production.
Not-so-shockingly, the way they did it was to use an actual 286 chip to "emulate" itself, with some extra pins to allow the debugging hardware to monitor it and take control. This debug interface uses the 5 pins left unused on the 286 package. The only public description of these comes from a patent.
printed from SoylentNews, Intel 286 Secrets: ICE Mode and 'F1 0F 04' on 2024-02-24 05:17:53