Die analysis of the 8087 math coprocessor's fast bit shifter
A die analysis of the Intel 8087 math coprocessor reveals how its fast bit shifter circuit, which could shift up to 31 bits in a single clock cycle, was implemented using a barrel shifter design. The article examines the chip's layout and circuitry to explain how this performance-critical component worked, contrasting it with slower iterative shift methods used in other processors of the era.
Background
- The Intel 8087 was a math coprocessor (1979–80) that handled floating-point arithmetic for the 8086/8088 CPU, the chip powering the original IBM PC. Most CPUs at that time could only work with integers; the 8087 added hardware for scientific/engineering calculations.
- By examining physical ("die") photographs of the 8087 silicon, reverse-engineering reveals how its circuits achieved high speed. This article focuses on a specialized "bit shifter" — a barrel shifter that moves all bits of a number left or right in one clock cycle — rather than a simpler, slower shift-per-bit design.
- The 8087's design choices (like the novel "turbo" shift mode and a tapped shift register to reduce transistor count) illustrate how engineers balanced speed, die area, and power before automated design tools existed.
- This matters because the 8087 set the standard for IEEE 754 floating-point arithmetic, the format still used in every modern CPU (from smartphones to supercomputers). Understanding its internals reveals fundamental tradeoffs in computer arithmetic that persist today.