CPUs are now more powerful than they were back in the year 2000. The first multi-core processor was introduced by IBM in the year 2001. And from that point, we now have processors that are packed with multiple cores and threads to tackle complex workloads. But it’s been a long time since we haven’t seen much progress in the addition of cores on CPUs as compared to GPUs. At the moment, AMD’s Threadripper Pro 3995WX is the only CPU that has 64 cores and 128 threads on the market. So why a CPU cannot have thousands of cores like a GPU? We’ll have a brief discussion on this
One of the logical reasons behind not having too many cores on a CPU is the “Thermal Efficiency”. Adding more cores to a tight silicon space will make it thermally dense, thus decreasing the overall efficiency and performance of the CPU. Secondly, the addition of more cores on a CPU can create inefficient collaboration between the ram bus speed and the cache (buffer memory) of the CPU.
To understand things in a better way, let’s dive into the basics:
What is a CPU core?
The basic function of a CPU is to run code and in order to run a code, the CPU uses depends upon three basic things, namely the internal memory, buffer memory (cache), and an execution engine.
The process carried out by a CPU is as follows:
- Fetching the instructions
- Decoding the taken instructions and converting them into micro-instructions.
- The final step is to execute these instructions and direct them to the relevant destination.
So, the part of the CPU that is responsible for executing all of this process is called a “Core“. So, if you are multitasking on a desktop with multiple cores, then each core on that CPU is assigned a different task. This makes a CPU with multiple cores faster than a CPU with just a single core.
This is the type of multiprocessing where only one core (we can say it “mother core”) executes the operation and the remaining interconnected cores accept the instructions sent by the mother core. Asymmetric multiprocessing is easier to apply but is less efficient.
This is the opposite of asymmetric multiprocessing where each core on the CPU is independent and executes the code when needed. Symmetric multiprocessing is highly-efficient as compared to asymmetric multiprocessing but it’s difficult to implement.
So Why We Cannot Have More Cores on a CPU?
Like we’ve said earlier, some processors like the AMD Threadripper Pro 3995WX do have a higher core count (64 cores) and that is because these types of processors are made up of high-quality semiconductor materials. But at the same time, you’ll see lower clock speed on processors that have a higher core count.
There are different constraints that restrict the addition of more cores on a CPU.
This is the most influential factor behind the performance of a CPU. Adding more cores to a CPU will result in more heat. Each core on a CPU is assigned some sort of clock speed, and if that clock speed is higher, then the CPU will produce more heat. And without a proper heat dissipation mechanism, your CPU will burn immediately.
Memory Collaboration Issues
Your CPU communicated directly with your ram in order to execute functions properly. The CPU has its own memory and cache to communicate with RAM which also has a bus speed measured in MHz. At a certain point, extra cores on a CPU might cause blockage for the CPU to send instructions back to RAM, thus reducing the performance.
Any game or application that you run on your computer has coding at the back end. Programmers or developers write code which carries instructions for the CPU to carry out the process efficiently. So, this is up to the programmer to design a code that can execute a certain number of cores and threads on a CPU. Therefore, even if you have a 32 core CPU, there is no surety that the program you intend to run will ever execute all of these cores to improve the performance unless it’s designed to do so.
We hope you now have the answer to the question that why a CPU cannot have too many cores like a GPU. The addition of extra cores on a CPU will result in decreased thermal performance, memory bottleneck, and inefficient code execution of a program. Will we ever see more than 100 cores on a CPU in future? No one knows unless we see some programs or games that are heavily dependent on surplus cores and threads.