Ken Shirriff Explores Intel 8087's Conditional Microcode Tests
Intel 8087 and Conditional Microcode Tests
Continuing his exploration of the Intel 8087 processor, Ken Shirriff delves into the conditional tests implemented in the microcode of this floating-point processing unit (FPU). This microcode contains details on how various specialized instruction types, such as cosine and arctangent, are decoded into different microcode operations. These micro-operations are executed by the microcode engine, which Ken will elaborate on in a future article, effectively functioning like a separate CPU.
The conditional instructions are implemented in hardware, integrating the states of various functional blocks throughout the chip, from the instruction decoder to the registers. Evaluation occurs as close as possible to the parameter source to save on wiring. This circuitry is realized with multiplexers, an example of which is shown in the chip image. Depending on local conditions, any of the four pass transistors can be activated, thereby allowing the selected signal to pass through.
The image of the chip does not illustrate the inverters or buffers needed for using pass transistors to amplify the signal, as they do not provide this function. Although the 8087 is considered largely obsolete today, it continues to offer an amazing learning opportunity for anyone interested in ASIC design. This is why it's great that Ken and his fellow reverse-engineering enthusiasts continue to recover all this knowledge.