I'm learning the basics of computers, and now trying to get some oversight of complexity of a CPU. Is there a rough trend for how transistors are allocated in a CPU? Intel 8008 for example, has 3500 transistors. In this image of it, I can see the space each component occupies. The ALU as example, each ALU slice is 20 transistors, and, the ALU has 8 slices. I guess that is 20*8 = 160 transistors for the ALU? Carry lookahead looks like it occupies same amount of space, another 160? ALU registers, 200? Registers, 160? Shifter, 80? That's 600 in total. Assuming I am somewhat correct on those numbers, is the remaining 2900 just the rest of the surface that is not marked in the image? It looks like it could be 5x as large surface area as the marked components.
-
2$\begingroup$ This might be a question for the electrical engineering stack exchange $\endgroup$– nir shaharSep 25, 2021 at 10:44
-
$\begingroup$ Nah, it has more to do with computer science. Basically, CPU architecture in general. Understanding how transistors are allocated is basic for understanding cpu. Nothing electronics-related in question, not wondering about electronics at all, transistor distribution has to do with logical processing and memory management. Computer science. $\endgroup$– PancakeSep 25, 2021 at 10:50
-
1$\begingroup$ Computer science usually deals with abstraction level of logic gates and higher. Not transistors. $\endgroup$– nir shaharSep 25, 2021 at 13:57
-
$\begingroup$ I'm able to know where the question fits. I could ask about logical gates instead, but, the registry seems to use a lot of transistors, and, it isn't using logical gates. Since I'm interested in understanding how much of the "stuff" in cpu is dedicated to what, I ask about transistors. This is computer science. I am not interested in the electronics perspective on it, in this context. At all. $\endgroup$– PancakeSep 25, 2021 at 13:58
-
$\begingroup$ This isn’t CS, this is “ancient history of technology”. $\endgroup$– gnasher729Sep 26, 2021 at 10:47
1 Answer
You're looking at an ancient CPU. Back then, IC technology greatly limited the number of available transistors on each chip. As it became easier and easier to add transistors, we started seeing big shifts in the use of these transistors.
One of the most obvious shifts is the fact that a large number of CPU designs are multi-core nowadays. Also, a modern CPU may have 200 or more registers, each of which stores 64 bits. Considering it takes 6 transistors in a standard SRAM cell, the register bank alone requires around 80.000 transistors per core, way more than the entire 8008 in your example.
Another well-known feature of modern CPU's is the cache. Again, these are SRAM cells, and 4 MB takes about 200 million transistors just to store the cache content - you need about 50 million more to read and write.
Since transistors have shrunk so much, we've used them a lot more aggressively. The shifter on the 8008 could shift by one bit. If you wanted to shift by 3 bits, you'd repeat that three times. A modern CPU can shift over any number of bits in a single operation - much faster, at the expense of more transistors.
The 8008 doesn't even have a multiply operation; modern CPU's have hardware to multiply, divide, and do square roots.