Post

How do computers calculate complicated trig functions such as tangent? I took a look at Intel's 8087 floating-point chip under the microscope to find out. The chip combines two techniques to evaluate the tan function quickly and accurately: polynomials and an algorithm called CORDIC...

Back in 1956, the Mach-2 B-58 Hustler had an analog navigation computer. It wasn't accurate enough, so they built a digital replacement. Sines and cosines are easy in analog, but needed a new digital algorithm. They invented the CORDIC algorithm and built the 134-pound CORDIC computer.

Usually, rotating a vector by an angle requires complicated math. But for some special angles, the calculation requires just shifts and adds, easy to do in hardware. The CORDIC algorithm breaks down an angle into special angles (using a table), does quick vector rotations, producing the trig answer.

CORDIC became popular, especially in scientific calculators. The 8087 chip uses CORDIC, but goes further, also using a polynomial ratio to get more accuracy. The simple function 3x/(3-x^2) (blue) is surprisingly close to the tangent (red), better than a Taylor series (green).

The 8087 chip implements its algorithms in microcode, specialized low-level code inside the chip. By examining the microcode ROM under a microscope, the Opcode Collective extracted the bits and I reverse-engineered the algorithm.

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

2 reposts44 likes

yes the process of finding the smartest blob sounds daunting in itself but it’s obviously paying off