We must start from the fact that there is no perfect system in the sense that it does not have performance losses, that is, there is no system in the world that works at one hundred percent performance. So waiting for the CPU of our PC to do it is not touching the ground. However, the causes of why this happens can be several and we are going to explain them to you below.
Why is my CPU not working at 100% performance?
Well, there are several reasons for this, although to fully understand the performance we have to start from the three basic elements: clock speed, number of cores and the IPC. Of all of them, the first two are constant values that do not depend on external elements. The IPC, on the other hand, although it depends on the architecture of the processor, that is, on the internal organization of its components. It is also influenced by a number of external elements.
The IPC must be understood as the average instructions per cycle that a processor performs. However, this measure cannot be taken as a yardstick to compare CPUs and even so, the marketing of Intel and AMD repeats it incessantly as if it were a performance constant that can be extrapolated for all programs and in all cases. possible.
And this is where we have to get into two different bottlenecks:
- The first one is due to RAM, there is a bottleneck in the communication of the processor with the memory, which can create a latency in each instruction and ends up affecting the general performance of the system if the memory subsystem is not sufficiently fast.
- The second is for the software, that is, for the instructions chosen to encode the program. This obviously does not depend on the hardware, but on good programming practices when coding the applications. That is why we are not going to touch that part in this article.
Stalls or stops
When a CPU is not doing anything, it does not perform, and it may be doing nothing because it does not receive instructions to carry out or cannot complete them due to the fact that it is waiting for a response from memory. With the passage of time, tricks have appeared to avoid this problem. The best known is that of the caches, which are memories in the processor that contain copies of parts of the RAM to quickly access them. Another trick is multithreading, which consists of giving the kernel another task to execute at idle time in order to get more out of it.
In other words, the lack of performance is not due to a lack of power, but rather due to the fact that communication with the memory is not ideal in the vast majority of cases and this is not something that can be predicted. In other words, a processor is not designed to achieve a specific performance figure, but so that, taking into account all the difficulties, it reaches the maximum possible. Especially since the integrated memory controller or IMC can be completely overwhelmed by the enormous amount of memory demands that exist.
Not surprisingly, that is why many future systems are being designed with the concept of bringing the information closer to the processor to increase the IPC and thereby get closer to one hundred percent performance. The idea is to minimize the number of stalls or stops suffered by the different CPU cores. Which, since time immemorial, is the biggest bottleneck in terms of hardware and the one that prevents using the full power of the processor.
Can it be solved somehow?
Well yes, when buying the memory modules for your PC where you should ensure that they have the lowest possible latency. Let’s not forget that the processor and RAM communicate synchronously and therefore access times work in a coordinated manner. However, you will have observed when buying the different memory modules that they have different latency times. Well, those with the lowest latency allow you to get close to one hundred percent CPU performance.
The other point is to use a dual channel configuration, which consists of using access to two memory modules at the same time. Although in the case of DDR5 it is rather quadruple channel, in order to avoid stops. What’s more, we are surprised that Single Channel systems are still being sold today.
Other elements that do not allow the processor to reach 100% performance
Even if we had the perfect CPU in which there were no problems communicating with memory and the programs were well written, we would still find that 100 percent performance would not be reached. All this due to a series of external factors that, although trivial and apparently disposable in principle, do affect the creation of an ideal environment for it.
The main culprits for this are voltage, temperature, and clock speed controllers. There are many mechanisms in the processor that are synchronous and therefore depend on a clock speed and a time for each cycle to work. If this gets out of tune it can end up with a system malfunction, so there is a tune-up time between a variation in CPU GHz, regardless of the brand and architecture we’re talking about.