The Intel 8087 And Conditional Microcode Tests

Continuing his reverse-engineering of the Intel 8087, [Ken Shirriff] covers the conditional tests that are implemented in the microcode of this floating point processing unit (FPU). This microcode contains the details on how to perform the many types of specialized instructions, like cos and arctan, all of which decode into many microcode ops. These micro ops are executed by the microcode engine, which [Ken] will cover in more detail in an upcoming article, but which is effectively its own CPU.

Conditional instructions are implemented in hardware, integrating the states of various functional blocks across the die, ranging from the instruction decoder to a register. Here, the evaluation is performed as close as possible to the source of said parameter to save on wiring.

Implementing this circuitry are multiplexers, with an example shown in the top die shot image. Depending on the local conditions, any of four pass transistors is energized, passing through that input. Not shown in the die shot image are the inverters or buffers that are required with the use of pass transistors to amplify the signal, since pass transistors do not provide that feature.

Despite how firmly obsolete the 8087 is today, it still provides an amazing learning opportunity for anyone interested in ASIC design, which is why it’s so great that [Ken] and his fellow reverse-engineering enthusiasts keep plugging away at recovering all this knowledge.

5 thoughts on “The Intel 8087 And Conditional Microcode Tests

  1. What Ken and fellows do is great. What would even be greater is companies actually releasing this documentation and knowledge when parts become obsolete. That would benefit the entire world.

  2. I am reminded of the i486 with its integrated floating-point HW versus the 68030 without it. I believe that was a contributing factor in industry movement away from Motorola toward Intel.

    This study shows area being dedicated to control structures, effectively a micro-CPU. So Intel’s decision to integrate HW floating point likely did not increase area requirements of an integrated CPU as much as one would assume. They took a gamble on adding all that hardware to the 486. I always thought they won on planned improvements to yield, but this 8087 study shows that they likely also saw the cost/area advantage, and system implementation cost, of a single-chip CPU core.

    Interesting series of articles…

    1. I’d say by the time of the i486 the battle was already over and Intel had won hands down.

      In the times of the XT and AT Motorola and others still had a chance, Motorola even had the better processors. But from the 80386 on Intel was ahead. Also DOS and Windows were becoming industry standards.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.