Login
You're viewing the social.telemetrydeck.com public feed.
  • Sep 12, 2026, 4:25 PM

    In 1980, Intel introduced the 8087 floating-point coprocessor chip. Plugging this chip into your IBM PC made math 100 times faster, good for CAD and spreadsheets. I opened up the chip to reverse-engineer exactly how it does complicated calculations. Let's take a look inside...

    The integrated circuit is a black ceramic rectangle with 40 metal pins sticking out, in two rows. (This is known as a DIP, a Dual Inline Package.) It has three rows of text: "D8087-1", a cryptic version label, and then the copyright line with a big lower-case I, INTEL m c 1980 1984. The m and c are in circles for the mask-work symbol and the copyright symbol. The chip has a small semicircular notch on the left side, indicating its orientation. The package consists of two thin ceramic layers, bonded together with a gray substance; the metal pins stick out from this gray substance. The ceramic package is important to me because tapping the gray layer with a chisel will cause the two layers to separate, revealing the silicon die inside. In contrast, most chips are in epoxy packages, which are very difficult to open, usually requiring strong acids.
    💬 2🔄 17⭐ 7

Replies

  • Sep 12, 2026, 4:27 PM

    Under a microscope, you can see the circuitry of the 8087. The 8087 performs its calculations using low-level software called microcode, stored in the large ROM in the middle. Along with the "Opcode Collective", I'm trying to understand the algorithms in the microcode, from addition to arctangents.

    A die photo of the 8087 showing the rectangular silicon die, about 5mm × 6mm. The image is dark reddish-brown, with black and white regions. Complex patterns are visible, mostly rectangular regions with various textures. Thick white lines in various regions are metal on top of the chip, carrying power to all parts of the chip. Around the edges of the die, 40 thin back wires are bond wires, connecting the die to the external pins. A few text labels indicate major functional blocks, such as the microcode ROM.
    💬 1🔄 3⭐ 3
  • Sep 12, 2026, 4:28 PM

    Zooming in on the microcode storage ROM, you can see the individual transistors, the pinkish blobs. The 8087 is very unusual, using four transistor sizes, giving it double density: 2 bits per transistor. The Opcode Collective examined all 13184 transistors, revealing the 0s and 1s of the microcode.

    A close-up of the 8087's microcode ROM, showing 77 transistors in a grid, pinkish blobs of doped silicon. A transistor is formed where a vertical polysilicon line crosses a horizontal stripe of doped silicon.
    💬 2🔄 0⭐ 1
  • Sep 12, 2026, 4:29 PM

    Knowing the contents of the 8087's microcode is just the first step; we've been working for months to assign meaning to the 0s and 1s. I've been reverse-engineering the circuitry in the 8087, units such as an adder, shifter, and registers, to understand what the microcode is doing.

    A close-up of the bottom region of the 8087's silicon die. This shows the circuitry that performs arithmetic on 80-bit floating-point numbers. I've highlighted key functional blocks. One large block is the shifter, which can shift the bits of a number left or right by an arbitrary amount. The adder, in the middle, does integer arithmetic; it is the heart of the chip. To the right, registers hold numbers. At this resolution, the different functional blocks have different textures, but the circuitry isn't visible.
    💬 0🔄 0⭐ 6
  • Sep 12, 2026, 4:30 PM

    I can now explain the microcode for an instruction called FSCALE that scales a number by a power of 2. It sounds simple, but the 8087 has an appalling number of special cases: positive and negative 0, two infinities, four rounding modes, three number sizes, six exceptions... so the code is complex.

    A short excerpt of the microcode for FSCALE. It has low-level instructions that look a lot like assembly language such as "jmp #0776 if tmpA:tag ZERO".
    💬 1🔄 0⭐ 0
  • 💬 2🔄 21⭐ 62
  • Sep 12, 2026, 4:31 PM

    Credits: I've been working on this with the members of the "Opcode Collective", especially Smartest Blob and @gloriouscow, who converted the ROM images to microcode data and extensively analyzed the contents.
    7/7

    💬 0🔄 7⭐ 40
  • 💬 0🔄 0⭐ 0
  • 💬 0🔄 0⭐ 0