For any given processor it’s generally easy to find a statistic on the number of transistors used to construct it, with the famous Intel 8086 CPU generally said to contain 29,000 transistors. This is where [Ken Shirriff] ran into an issue when he sat down one day and started counting individual transistors in die shots of this processor. To his dismay, he came to a total of 19,618, meaning that 9,382 transistors are somehow unaccounted for. What is going on here?
The first point here is that the given number includes so-called ‘potential transistors’. Within a section of read-only memory (ROM), a ‘0’ would be a missing transistor, but depending on the programming of the mask ROM (e.g. for microcode as with a CISC x86 CPU), there can be a transistor there. When adding up the potential but vacant transistor locations in ROM and PLA (programmable logic array) sections, the final count came to 29,277 potential transistors. This is much closer to the no doubt nicely rounded number of 29,000 that is generally used.
[Ken] also notes that further complications here are features such as driver transistors that are commonly found near bond wire pads. In order to increase the current that can be provided or sunk by a pad, multiple transistors can be grouped together to form a singular driver as in the above image. Meanwhile yet other transistors are used as (input protection) diodes or even resistors. All of which makes the transistor count along with the process node used useful primarily as indication for the physical size and complexity of a processor.
I guess counting transistors is the hardware equivalent of counting lines of code. Primary a useless metric, except in marketing.
There are still people today afraid of ICs because there’s too many transistors.
But transistors in ICs are almost free. Adding stages makes things better, and costs nothing. You also don’t build ICs with discrete components. Things in ICs are done that way to avoid large value resistors, or capacitors. Since transistors are free, add extra things that you’d never do if building from discrete.
The number of transistors directly affects the chip area, power consumption as well as speed.
In fact, the most used metric PPA in semiconductors (Power, Performance, Area) is directly dependent on the transistor count.
Moreover, the number of transistors is a proxy of the logic complexity (Boolean complexity) of a circuit.
There is more to it but that’s beyond the scope of a comment (logic synthesis, PnR and more)
So no, it is definitely not a marketing term or equivalent to the lines of code.
“to his dismay” – not sure how you got that from his description, he just states it as fact, then explains.
It’s not easy doing ANYTHING with an 8086! That is probably my least favorite processor of all time.
Worse than an 8-bit PIC? Worse than a pdp-8? I must confess that I’m not a fan of the 8086 either. I was very humoured by the quote on one of the chapters in “Computer Architecture, A Quantitive Approach” second edition: “The x86, an architecture only its designers could love.”
Ken Shirriff is awesome. He sure keeps busy with all his decaping projects. If someday home chip fabbing is a thing we will probably have a lot to thank him for.
Well it’s thing to the power 0 at the moment, as there is only one exemplar known on these pages I think, but could be the drop leading the deluge.
Interesting how you just casually mention that he counted 29000 transistors without a mention of how he did that. Did he just print out a room size map of the chip and sit on top of it on his knees for 3 days (or whatever) with a magnifier, putting a cross on each transistor with a Sharpie and hitting the ++ button on his calculator, or something?
Yes indeed, the method how he counted transistors is not mentioned at all! And that would be of great interest.
More likely that processors are built from hierarchies of repeated blocks. So you might need to manually count the transistors in a bottom-level module, then you just count modules and multiply. Then you count the meta modules, etc. Also, some units are arrays. So if you know the horizontal and vertical unit counts, then multiplying can tell you the interior count.
I suppose, in the early days of the microprocessor race, being able to quote ever-increasing transistor counts would’ve been a useful marketing boast: Z80, 8000 transistors! 8086: 29,000 transistors! 68000: 68,000 transistors!
Being able to cram that number on chip says something about the fabrication capabilities of the company and how much they were ahead of the game.
A different rationale applied to CPUs aimed at low power or price: 6502: just 3510 (actually 4528) transistors! 32-bit ARM 2: 25,000 transistors! Microchip PIC: -1 transistors ;-) !
It’s a holdover from early equipment. More transistors is better equipment
This was common in the early days of transistor radios. They would do stupid shit like use a transistor as a diode just to artificially inflate the count of transistors in the radio and the transistor count would be prominently featured on the badge of the radio
I’m guessing he got a phone call while counting the transistors and lost count.