Reverse-engineering the surprisingly advanced ALU of the 8008 microprocessor
A computer’s arithmetic-logic unit (ALU) is the heart of the processor, performing arithmetic and logic operations on data. If you’ve studied digital logic, you’ve probably learned how to combine simple binary adder circuits to build an ALU. However, the 8008’s ALU uses clever logic circuits that can perform multiple operations efficiently. And unlike most 1970’s microprocessors, the 8008 uses a complex carry-lookahead circuit to increase its performance.
The 8008 was Intel’s first 8-bit microprocessor, introduced 45 years ago.1 While primitive by today’s standards, the 8008 is historically important because it essentially started the microprocessor revolution and is the ancestor of the x86 processor family that you are probably using right now.2 I recently took some die photos of the 8008, which I described earlier. In this article, I reverse-engineer the 8008’s ALU circuits from these die photos and explain how the ALU functions.
Inside the 8008 chip
The image below shows the 8008’s tiny silicon die, highly magnified. Around the outside of the die, you can see the 18 wires connecting the die to the chip’s external pins. The rest of the chip contains the chip’s circuitry, built from about 3500 tiny transistors (yellow) connected by a metal wiring layer (white).
Many parts of the chip work together to perform an arithmetic operation. First, two values are copied from the registers (on the right side of the chip) to the ALU’s temporary registers (left side of the chip) via the 8-bit data bus. The ALU computes the result,