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.🧵
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.🧵 17 comments
A closeup of the 8086's microcode ROM shows transistors (T) and empty sites (X). This region has 12 real transistors but would be counted as 18 transistor sites. The complete microcode ROM has 7694 empty sites that bump up the published count. 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. 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? 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. So does the 8086 have 19,618 transistors or 29,277? It all depends on what you count. @kenshirriff It's kind of amazing that it does all it does with under 20000 transistors. @kenshirriff I really love your blog, and enjoying reading your blog postings. Ine question: from where do you get all these CPU die pictures? @kenshirriff - having designed these in a previous life, we counted it as a single device, with a large W. :) @kcrouth That's good to know. I'm counting the individual transistors, mainly because that's easier than figuring out which ones to merge together. @kenshirriff - in my limited experience of reverse engineering, that was the first step, diagram them as individual devices in parallel and then combine them logically into one where it made sense. Treating them individually gives a better insight into the non-ideal implementation and parasitic devices and effects, etc. - ps. i so enjoy following your posts. Great stuff!
[DATA EXPUNGED]
@kentindell I doubt that it's a big difference in power consumption. One could always flip the meaning of 0's and 1's if you wanted to optimize. @kenshirriff I am guessing this got used in the 80186 variant, which included a lot more on board support circuitry.
[DATA EXPUNGED]
|
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).