SoylentNews
SoylentNews is people
https://soylentnews.org/

Title    Extracting ROM Constants from the 8087 Math Coprocessor's Die
Date    Thursday May 21 2020, @07:11AM
Author    Fnord666
Topic   
from the different-type-of-dissection dept.
https://soylentnews.org/article.pl?sid=20/05/21/0112234

upstart writes in with an IRC submission:

Extracting ROM constants from the 8087 math coprocessor's die:

Intel introduced the 8087 chip in 1980 to improve floating-point performance on the 8086 and 8088 processors, and it was used with the original IBM PC. Since early microprocessors operated only on integers, arithmetic with floating-point numbers was slow and transcendental operations such as arctangent or logarithms were even worse. Adding the 8087 co-processor chip to a system made floating-point operations up to 100 times faster.

I opened up an 8087 chip and took photos with a microscope. The photo below shows the chip's tiny silicon die. Around the edges of the chip, tiny bond wires connect the chip to the 40 external pins. The labels show the main functional blocks, based on my reverse engineering. By examining the chip closely, various constants can be read out of the chip's ROM, numbers such as pi that the chip uses in its calculations.

The top half of the chip contains the control circuitry. Performing a floating-point instruction might require 1000 steps; the 8087 used microcode to specify these steps. The die photo above shows the "engine" that ran the microcode program; it is basically a simple CPU. Next to it is the large ROM that holds the microcode.

The bottom half of the die holds the circuitry that processes floating-point numbers. A floating-point number consists of a fraction (also called significand or mantissa), an exponent, and a sign bit. (For a base-10 analogy, in the number 6.02×1023, 6.02 is the fraction and 23 is the exponent.) The chip has separate circuitry to process the fraction and the exponent in parallel. The fraction processing circuitry supports 67-bit values, a 64-bit fraction with three extra bits for accuracy. From left to right, the fraction circuitry consists of a constant ROM, a shifter, adder/subtracters, and the register stack. The constant ROM (highlighted in green) is the subject of this post.


Original Submission

Links

  1. "upstart" - https://soylentnews.org/~upstart/
  2. "Extracting ROM constants from the 8087 math coprocessor's die" - http://www.righto.com/2020/05/extracting-rom-constants-from-8087-math.html
  3. "microscope" - http://www.righto.com/2015/12/creating-high-resolution-integrated.html
  4. "Original Submission" - https://soylentnews.org/submit.pl?op=viewsub&subid=41124

© Copyright 2024 - SoylentNews, All Rights Reserved

printed from SoylentNews, Extracting ROM Constants from the 8087 Math Coprocessor's Die on 2024-04-23 18:57:23