IPC and generational improvements

IPC , generations , CPU , architecture


There are many ways to improve CPU performance across new architectures with chips from both Intel and AMD, and they have all been employed many times to bring the first weak CPUs to the powerhouses released today. Here we're going to look at some of the most common changes and improvements to understand a bit more about how performance can be improved. 


1. Cores and Multithreading

One of the biggest advances in performance, especially in the last few years, is from the number of cores a CPU is equipped with. 


Cores are sort of like individual CPUs that split up the workload, and do a bit each. They can communicate with one another through various ways to make sure that they appear as one processor outside of the CPU, but CPUs with more cores have greater processing power. It's a bit like doing jobs around the house. If you're on your own, it can take longer to do all of your tasks, but if some friends help you, then you can get more done quicker. You and your friends here are analogous to the CPU cores. You can distribute the jobs so everyone has something to do, and you can help one another by passing tools to one another, but you generally do your tasks mostly alone.


The first silicon based CPU released in 1971 had a single core. In the year 2000 the first dual core CPU was released. In 2006 the first quad core CPU was released. The first hexacore CPU was released in 2010. In 2012 the first 8 core CPU was released. By 2017 the first 32 core CPU was released, and in 2019, 64 core CPUs became commercially available. 


Unfortunately increasing the number of  cores doesn't always increase the gaming performance of a particular CPU. It does help to a certain extent, however in general faster CPU cores are better than more cores. 


If we continue our analogy of jobs around the house, if you have more people than jobs some people will just be sitting around doing nothing, as you can't split the jobs up into any smaller parts. 


This is part of the reason that the number of cores in Intel's Core Series CPUs didn't increase from their first generation to their 7th. In more compute based workloads like video encoding, more cores can make a much bigger difference. 


Some architectural revisions choose to equip processors with multithreading technology to double the number of threads that they have, dramatically increasing the overall processing power of a CPU, if not always the gaming performance. The Multithreading allows CPU cores to process more instructions at once, meaning at some points it can use different parts of the core to execute two different threads of instructions. This can never happen all the time, so it doesn't double performance in myltithreaded workloads, but it generally provides performance similar to if a CPU had ~10-40% more cores. It is generally more effective for CPUs with fewer cores.


Recent examples:

- Intel 7th Gen Core Series to Intel 8th Gen Core Series (All skews)

- Intel 8th Gen Core Series to Intel 9th Gen Core Series (i7s + i9s)

- Intel 9th Gen Core Series to Intel 10th Gen Core Series (i9s)

- AMD Ryzen 2nd Gen to AMD Ryzen 3rd Gen (R9s)


2. Clock speeds

CPUs work by 'executing', or 'doing', a certain number of instructions per cycle, and then performing lots of cycles a second. The repetitive execution of many different instructions in the right order is then translated into a pleasant user experience. Within the same basic architecture (e.g. x64, ARM, RISC V) more instructions executed per second correlates to more performance, so manufacturers can improve their CPU clockspeeds (how many cycles they do per second) to increase performance. 


Back to the chores analogy. An increase in clock speed is a bit like doing the jobs quicker so that you can finish all the jobs sooner. 


Generally, increasing clock speeds requires higher quality silicon, smaller transistors, more power, and higher operating temperature. These limit the speed at which developers can increase clock speeds, but generally speaking every upgrade to a similar architecture will have a increase in clockspeeds. I say similar because when companies move to an entirely different design, like AMD did when moving from Bulldozer to Zen things can be slightly different. If the IPC (which we'll discuss next) is significantly higher, it's possible the clock speeds will have to decrease until a better manufacturing process, or slightly tweaked architecture can be used. 


Recent examples:

- Intel 1st Gen Core Series to Intel 2nd Gen Core Series (All skews) - possible due to lower power draw 

- Intel 6th Gen Cores Series to Intel 7th Gen Core Series (All skews) - possible due to revised 14nm process node

- Intel 8th Gen Core Series to Intel 9th Gen Core Series (All skews) - possible due to revised 14nm process node

- Intel 9th Gen Core Series to Intel 10th Gen Core Series (All skews) - possible due to revised 14nm process node

- AMD Ryzen 1st Gen to AMD Ryzen 2nd Gen (All skews) - possible due to a smaller process node

- AMD Ryzen 2nd Gen to AMD Ryzen 3rd Gen (All skews) - possible due to a smaller process node

- AMD Ryzen 3rd Gen to AMD Ryzen 4th Gen(5000 Series) (All skews) - possible due to a revised architecture and more mature 7nm process


3. IPC 

The IPC, or 'Instructions per Cycle' of an architecture is exactly what it sounds like, how many instructions are executed in each cycle. As we saw in the previous section, if you increase the number of instructions performed per second you generally increase performance. Increasing the number of instructions per cycle is therefore very useful. 


If we imagine we're back doing our house jobs, and increase in IPC is like being better at multitasking. If the job is putting plates in the dishwasher, you could be putting two in at once, instead of one, decreasing the time it takes to finish. 


The actual IPC of an architecture is a large complex number, which is hard to find on the Internet, and not very useful as different instructions can be executed more quickly than others. I am therefore using a 'Relative IPC' measurement to show the differences below. The RIPC is calculated using the Cinebench scores and the processors clock speeds (You can also get a rough measure of multithreading effectivity using a similar algorithm). 


Recent examples:

- Intel Core Series 3rd Gen to Intel Core Series 4th Gen (~15% increase )

- Intel Core Series 4th Gen to Intel Core Series 6th Gen (~10% increase)

- Intel Core Series 6th Gen to Intel Core Series 7th Gen (~5% increase)

- Intel Core Series 9th Gen to Intel Core Series 10th Gen (~4% increase)

- AMD Ryzen 1st Gen to AMD Ryzen 2nd Gen (~6% increase)

- AMD Ryzen 2nd Gen to AMD Ryzen 3rd Gen (~13% increase)

- AMD Ryzen 3rd Gen to AMD Ryzen 4th Gen(5000 Series) (~22% increase)


4. Other Changes

So far we have covered the three main ways that performance is improved across architectures, but there are a few other things the tech companies have up their sleeves. 


Another advantage of a smaller manufacturing process is the reduced power draw, leading to lower operating temperatures. A lower operating temperature can then allow the chips to stay at their maximum turbo clock for longer. 


Recent examples:

- Intel Core Series 2nd Gen to Intel Core Series 3rd Gen (Allowing prolonged turboing and extra overclocking headroom) 

- AMD Ryzen 3rd Gen to AMD Ryzen 4th Gen(5000 Series) (Allowing cheaper cooling to unlock full performance)


These are lots of other ways that CPU designers can improve the performance of their chips, but here we have covered the ones which have by far the biggest impact on performance. 


Conclusion

I hope that you now understand a bit more about the different ways that CPUs' performance can increase. If you want to understand more about how these changes work and can be implemented, then be sure to follow the blog as I should have more in depth content on this topic coming soon. 

Comments

Popular posts from this blog

What is a CPU Architecture?

Hardware Descriptive Languages (HDLs)

Building a PC for under £300