Everyone says the Intel 8086 processor has 29,000 tiny transistors. But I counted and found 19,618. Why the difference? It turns out that most counts include "potential" transistors as well as real ones. Let's take a look and find out why.🧵
A ROM (read-only memory) typically stores 1's and 0's by the presence or absence of a transistor for each bit. So the more 1's you have, the more transistors. It's inconvenient for the transistor count to change with the data, so "transistor sites" are usually counted. This image shows a closeup of the 8086's microcode ROM. It is arranged as a uniform grid. The regions of doped silicon form transistors (or not).
Other ROMs, such as this constant ROM, are not exactly a grid but are slightly optimized: the transistors are somewhat distorted and the grid is squished a bit to take advantage of empty space. It's not clear if these potential transistors should be counted since there might not be room to fill in all of them. Also, some transistors act as diodes and many act as pull-up resistors.
But there are more complications. Output pins are driven by high-current driver transistors, built from multiple transistors in parallel. Do you count that as 12 transistors or 1 transistor?
Looking at all the ROMs and PLAs on the 8086 die finds 9659 vacant transistor sites. This boosts the transistor count from 19,618 "real" transistors to 29,277 "potential" transistors. So the published 29,000 number is right if you count "missing" transistors too.
A closeup of the 8086's microcode ROM shows transistors (T) and empty sites (X). This region has 13 real transistors but would be counted as 18 transistor sites. The complete microcode ROM has 7694 empty sites that bump up the published count.