An attempt at clarifying IPC and CPU clock speed

These days, there are two main parts of a CPU the average gamer is looking at : cores and frequency. While the first one is usually well understood (aside from the fact that gaming doesn’t use all the cores so no need to get a whole cart of them), the frequency part is almost always used as a performance indicator while its not always the case.

What the frequency really means

The frequency of a CPU is measured in Hertz, and often MegaHertz (MHz) or GigaHertz (GHz). It measures the number of cycles happening per second. 1 Hertz is 1 cycle per second, 1 MHz is 1 000 000 cycles per second, and 1 GHz is 1 000 000 000 cycles per second (lots of cycles). A CPU with a frequency of 5 GHz does 5 000 000 000 cycles per second.

And that is all the frequency means, the number of cycles per second. It doesn’t matter what those cycles mean, what they do, or anything else, the frequency means only how many of them happen in a single second.

A clock cycle

Now we get to the other interesting and obscure part, the clock cycle. As said just above, we now know how many cycles a CPU does every second thanks to its advertised frequency.

To understand what a cycle is, I would refer you to this Intel article.

In this case, a “cycle” is the basic unit that measures a CPU’s speed. During each cycle, billions of transistors within the processor open and close . This is how the CPU executes the calculations contained in the instructions it receives.

A clock cycle is a period of time, repeating itself, during which a certain number of calculations are done. That is all it is. The confusing part is that this “number of calculation” is different depending on the architecture of the cpu, the design, the generation, and a lot of other factors.

IPC or Instructions Per Cycle/Clock

First of all, let’s make sure we are on the same page, a “cycle” and a “clock” are the same thing and both name can be used to designate it. As a result, some people define IPC as Instructions Per Clock and some use Cycle instead. Both are valid, you can use whatever you prefer.

This IPC is exactly what it means, the number of instructions (or calculations if you prefer) performed every clock or cycle. You can then multiply this number by the frequency to get the number of instructions per second. This will then give you an actual performance metric for the CPU.

The main issue with IPC is that it cannot really be quantified and is not given by the manufacturer.

Why does it all matter ?

The reason we pay attention to this “IPC” as well as the frequency is because it is the only way to get actual performance reviews of the device. Take the following image with 3 example devices :

Device 1 is running at 4 Hertz, device 2 at 3 Hertz and device 3 at 2 Hertz. If all devices have the exact same number of instructions per cycles, then device 1 is 33% faster than device 2 and 50% faster than device 3.

Now lets spice things up :

Device 1 can do 10 instructions per cycle, so 10×4 is 40 total instructions per second
Device 2 can do 13 instructions per cycle, so 13×3 is 39 total instructions per second
Device 3 can do 25 instructions per cycle, so 25×2 is 50 total instructions per second.

In this example, the device 1 is “faster” but device 3 is the most powerful with the most instructions per second, despite having the lowest clock speed (Hertz). This is why the frequency alone is not enough to determine a device’s performance.

If you want examples of this : just take a look at old AMD FX processors. Great clock speeds, that held the frequency world record for a long time, and horrible IPC, translating into poor performance.

This is also why you cannot compare two CPUs from different generations/architectures by just the frequency, as they may have very different IPC and performance.

In conclusion : frequency is only part of the picture

Now you know why judging a CPU by its frequency alone is like judging a book by its cover. There is a lot of technical aspects that are not shown on the public specsheets we get as consumers.

This is also why we need detailed performance reviews with another metric (like FPS for games for example). That way we can actually see the real performance of a CPU without having to guess from a frequency number.

Hopefully this makes understanding IPC easier now.

Related Posts