Conditions in the Intel 8087 floating-point chip's microcode
12 hours ago
- The Intel 8087 coprocessor accelerated floating-point calculations up to 100 times on IBM PCs using microcoded algorithms.
- The chip's microcode ROM contains 1648 micro-instructions that control internal operations like data movement and arithmetic.
- The microcode engine supports conditional jumps, subroutine calls, and returns based on 49 different conditions.
- Conditions are selected via distributed multiplexers that reduce wiring by processing signals near their source on the die.
- Condition types include opcode tests, register tags (empty, zero, normal, special), sign comparisons, rounding mode exceptions, and more.
- Detailed hardware analysis, including die photos and multiplexer layouts, was used to reverse-engineer the microcode.
- The FABS and FCHS instructions share a microcode routine that uses a condition on the opcode's bottom bit to differentiate behavior.
- Some conditions are specialized, such as detecting stack overflow/underflow or denormalized numbers for exception handling.