# How many percentage of total transistors in a CPU are used in each component?

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.

• This might be a question for the electrical engineering stack exchange Commented Sep 25, 2021 at 10:44
• 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. Commented Sep 25, 2021 at 10:50
• Computer science usually deals with abstraction level of logic gates and higher. Not transistors. Commented Sep 25, 2021 at 13:57
• 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. Commented Sep 25, 2021 at 13:58
• This isn’t CS, this is “ancient history of technology”. Commented Sep 26, 2021 at 10:47

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.

Your estimation of the number of transistors allocated to each function seems way off to me.

As you can see from the schematic, the 8008 has three 8-bit registers, two pointer registers, 7x8-bit registers for accumulators and scratchpad memory and 8x14-bit address stack registers.

That adds up to 208 bits of memory, each cell requiring 3 transistors and one capacitor for a total of 832 elements. And that count has yet to include any logic required for addressing.

As for the CLA I couldn't find details about the exact implementation, but your 160 estimate would be more in agreement with something a bit more sophisticated like the Brent-Kung adder, which wouldn't be invented for another 10 years. For a run-out-the-mill PMOS 8-bit CLA I have seen estimates ranging anywhere from 80 up to 300 transistors, depending on the maximum acceptable gate delay for the application.

And either way, I am not fully convinced you bounded the CLA area correctly.