How many transistors are in Intel’s 8086 processor? This seems like a straightforward question, but it doesn’t have a straightforward answer.
Most sources say that this processor has 29,000 transistors.1
However, I have traced out every transistor from die photos and my count is 19,618. What accounts for the 9382 missing transistors?

The explanation is that when manufacturers report the transistor count of chips, typically often report “potential” transistors.
Chips that include a ROM will have different numbers of transistors depending on the values stored in the ROM.
Since marketing doesn’t want to publish varying numbers depending on the number of 1 bits and 0 bits, they often count ROM sites:
places that could have transistors, but might not.
A PLA (Programmable Logic Array) has similar issues; the transistor count depends on the desired logic functions.

What are these potential transistor sites?
ROMs are typically constructed as a grid of cells, with a transistor at a cell for a 1 bit, and no transistor for a 0 bit.2
In the 8086, transistors are created or not through the pattern of silicon doping.
The photo below shows a closeup of the silicon layer for part of the 8086’s microcode ROM. The empty regions are undoped silicon, while the other regions are doped silicon.
Transistor gates are formed where vertical polysilicon lines (removed for the photo) passed over the doped silicon.
Thus, depending on the data encoded into the ROM during manufacturing, the number of transistors varies.

A closeup of part of the microcode ROM. The dark circles indicate vias between the silicon and the metal on top.

A closeup of part of the microcode ROM. The dark circles indicate vias between the silicon and the metal on top.

The diagram below provides more detail, showing the microcode ROM up close. Green T’s indicate transistors, while red X’s indicate positions with no transistor.
As you can see, the potential transistor positions form a grid, but only some of the positions are occupied by transistors.
The common method for counting transistors counts all the potential positions (18 below) rather than the actual transistors that are implemented (12 below).

An extreme closeup of the microcode ROM. Green T's indicate transistors, while red X's indicate positions with no transistor.

An extreme closeup of the microcode ROM. Green T’s indicate transistors, while red X’s indicate positions with no transistor.

I found an Intel history that confirmed that the 8086 transistor count includes potential sites, saying
“This is 29,000 transistors if all ROM and PLA available placement sites are counted.”
That paper gives the approximate number of (physical) transistors in the 8086 as 20,000. This number is close to my count of 19,618.

To get a transistor count that includes empty sites,
I counted the number of transistor sites in the various ROMs and PLAs in the 8086 chip. This is harder than you might expect because the smaller ROMs, such as the constant ROM,
have some layout optimization.
The photo below shows a closeup of the constant ROM. It is essentially a grid, but has been “squeezed” slightly to optimize its layout, making it slightly irregular.
I’m counting its “potential” transistors, but
one could argue that it shouldn’t be counted because filling in these transistors might run into problems.

Closeup of the constant ROM showing the silicon and polysilicon.

Closeup of the constant ROM showing the silicon and polysilicon.

The following table breaks down the ROM and PLA counts by subcomponent.
I found a total of approximately 9659 unfilled transistor vacancies. If you add those to my transistor count, it works out to 29,277 transistors.

Component Transistor sites Transistors Vacancies
Microcode 13904 6210 7694
Group Decode ROM 1254 603 651
Translation ROM 1050 431 619
Register PLAs 465 182 283
ALU PLA 354 170 184
Constant ROM 203 109 94
Condition PLA 160 74 86
Segment PLA 90 42 48

The image below shows these ROMs and PLAs on the die and how much the vacancies increase the transistor count.
Not surprisingly, the large microcode ROM and its decoding PLA are responsible for most of the vacancies.

The 8086 die with transistor vacancy counts and how much they contribute to the final transistor count. (Click this image or any other for a larger version.)

The 8086 die with transistor vacancy counts and how much they contribute to the final transistor count. (Click this image or any other for a larger version.)

Potential exclusions

So are my counts of 19,618 transistors and 29,277 transistor sites correct?
There are some subtleties that could lower this count slightly.
First, the output pins use large, high-current transistors. Each output transistor is constructed from more than a dozen transistors wired in parallel.
Should this be counted as a dozen transistors or a single transistor? I’m counting the component transistors.

An output pad with a bond wire attached. Driver transistors next to the pad are constructed from multiple transistors in parallel.

An output pad with a bond wire attached. Driver transistors next to the pad are constructed from multiple transistors in parallel.

The 8086 has about 43 transistors wired as diodes for various purposes. Some are input protection diodes, while others are used in the charge pump for the substrate bias generator.
Should these be excluded from the transistor count? Physically they are transistors but functionally they aren’t.

The 8086 is built with NMOS logic which builds gates out of active “enhancement” transistors as well as “depletion” transistors which basically act as pull-up resistors.
I count 2689 depletion-mode transistors, but you could exclude them from the count as not “real” transistors.

Conclusions

The number of transistors in a chip is harder to define than you might expect.
The 8086 is commonly described as having 29,000 transistors when including empty sites in ROMs and PLAs that potentially could have a transistor.
The published number of physical transistors in the 8086 is “approximately 20,000”.
From my counts, the 8086 has 19,618 physical transistors and 29,277 transistors when including empty sites.
Given the potential uncertainties in counting, it’s not surprising that Intel rounded the numbers to the nearest thousand.

The practice of counting empty transistor sites may seem like an exaggeration of the real transistor count, but there are some good reasons to count this way.
Including empty sites gives a better measure of the size and complexity of the chip, since these sites take up area whether or not they are used.
This number also lets one count the number of transistors before the microcode is written, and it is also stable as the microcode changes.
But when looking at transistor counts, it’s good to know exactly what is getting counted.

I plan to continue reverse-engineering the 8086 die so
follow me on Twitter @kenshirriff or RSS for updates.
I’ve also started experimenting with Mastodon recently as @[email protected].
I discussed the transistor count in the 6502 processor here.

Notes and references

Read More