Post

Intel's 386 processor (1985) moved the x86 architecture to 32 bits, but it needed to be backward compatible with earlier 16 and 8-bit processors. As a result, it needed complicated circuitry for its internal registers: six different circuits for 30 registers. Let's look at the silicon circuits. 1/N

Zooming in on the 386 shows 30 registers. The registers are constructed from one-bit cells, creating the grid pattern in the image. However, the six different types of cells create visible changes in the texture. A "notch" is created by the 16-bit registers, half the width of the 32-bit registers.

0 reposts16 likes

The building block for a register is two inverters connected in a loop. You can put this loop into two different states, allowing it to store a bit. The circuit becomes more complicated when you add transistors to control reading and writing.

Here's a closeup of four register cells, storing four bits. I dissolved the metal layers and polysilicon to show the underlying silicon. (The silicon regions that have been "doped" are visible by the dark borders.) I've labeled the 8 transistors in each cell.

Looking at another part of the register circuitry shows a different circuit that uses 10 transistors, rather than 8 before. This allows two reads and a write to happen in parallel. Moreover, this circuit has more control lines, allowing 32-bit, 16-bit, or 8-bit accesses.

Here's another part of the 386 register file with two more types of register cells. Intel optimized the design to use different types of circuitry for different types of registers. I won't explain what's going on here; just enjoy the nice patterns :-)