Choosing The Right CPU
In this video, I will look at the specifications provided with CPUs, that is, how to identify what a CPU supports and what features to look for. Knowing this information will help you choose the right CPU to meet your needs.
In The Real World
In the real world, your choice of CPU usually comes down to the performance you need. Low-range CPUs are generally for users that need to create documents, read emails and access the internet. Mid-range is more for users who want to edit videos and play some newly-released computer games. High-range CPUs generally tend to be for high-performance workstations or computers purchased for specialized data processing. Performance will be one of the factors you need to consider.
Other factors to consider are the features of the CPU. Different CPUs are designed with different objectives in mind. For example, some CPUs are designed for energy saving. Others are designed with better virtualization features. Although modern CPUs should support virtualization, newer CPUs perform virtualization faster than older ones.
There is a lot to consider when purchasing a CPU, so let’s have a look.
CPU Clock Speed
The CPU clock speed is a measure of the internal timing clock of the CPU. Everything inside the CPU synchronizes operations to this clock. In theory, if you want to increase the performance of the CPU, you would increase the clock speed. However, modern CPUs are not that simple.
You can see in the chart, CPU clock speed in the early days of computing increased quite quickly, but as time passed it started to level out. This is because some hard engineering limits were reached which prevented CPU clock speed from increasing. In order to get more performance out of the CPU, the engineers would have to do something other than increasing the clock speed.
Clock speed is generally expressed in Gigahertz which translates to one billion instructions per second. The fastest CPU on the market, when this video was made, could run at a maximum of 6 Gigahertz per second. However, this is top performance speed, effectively a boost speed which is short lived. How long you get at this speed or close to it will be determined by factors such as your CPU cooling and the quality of the CPU. Once the CPU gets too hot, thermal throttling kicks in and reduces the speed of the CPU. Modern CPUs will monitor the temperature and automatically drop the speed if the CPU starts overheating. When the CPU boosts its clock speed, it will start getting hot very quickly.
To give you an idea of what sort of hard engineering limits we can expect in the future, the current record for CPU clock speed is 9 Gigahertz.
Guru Pixelpaw: It’s over 9000!
In order to get speeds like this, although short lived, you need to use extreme cooling solutions like liquid nitrogen. Thus, you can understand why CPU speeds tend to stay around the two to four Gigahertz range. These engineering limits make it hard to make CPUs any faster, but as we will see in the video, there are other ways to increase performance in a CPU.
CPU Multiplier
To determine the speed of the CPU, a multiplier is used to multiply the bus speed to get the CPU speed. The bus speed is provided by the motherboard. The multiplier is configured by the computer’s BIOS or UEFI. The settings that you can change will vary from computer to computer. Motherboards designed for overclocking will generally have more control over the multipliers and may allow controlling of individual cores. Unless you are interested in overclocking, it is recommended to leave the multipliers on their default values.
To see the multiplier currently used on a computer, you can use the freely available tool CPU-Z. On this computer the multiplier changes between 12 and 43. The computer is able to change the multiplier when the computer is not under load. You will find that, on modern computers there are a lot of devices that will slow down when not under load, in order to reduce the amount of power being used.
So far, we have seen what controls the speed of the CPU, let’s now have a look at what actually determines the performance we will get.
Microarchitecture
You won’t get asked a question on microarchitecture in the exam, but it is good to have a little bit of an understanding of it, so you know what effect it has on CPU performance. Each CPU design is based on a particular microarchitecture. The microarchitecture is the physical design and implementation of the CPU. Essentially, the microarchitecture is the design of the physical circuits including instruction sequencing and data paths. The microarchitecture can vary significantly between CPUs, changing everything including the logic used inside the CPU.
Shown here is an example of a CPU architecture. It is not important to understand how it works. The main takeaway is that it shows just how complicated the inside of a CPU can be. Each generation can significantly change the way the internals of the CPU work. However, each generation should improve performance, otherwise you may just as well stay with the current generation. It does not make sense for a CPU to make changes that don’t improve performance.
To consider the difference a generation can make, I have two different CPUs. One is 11th generation and the other 12th generation. Both have the same clock speed. A CPU benchmarking site reports the second CPU, on average, performing 20% faster. This is an average, so some tests show a better performance than others. You can see these examples of two CPUs with the same clock speed, but different generations, one will outperform the other. You can also see that clock speed is not the best indication of the performance that you will get from the CPU.
Let’s consider what else helps improve performance.
CPU Cores
Around 2002, CPU development reached a performance plateau due to the diminishing returns of increasing clock speed. To overcome this issue and achieve further performance gains, parallel processing was implemented, enabling CPUs to process multiple tasks simultaneously. The first development allowed a CPU to run two processes at the same time.
In 2005, Intel released its first CPU to have multiple cores. A core is a single processing unit. The solution to increasing performance was simply to add more cores. A simple solution, but not one without its problems.
In order to parallel process, this required software support. Software support in the operating system and also in the application. Computers have been utilizing multitasking for years. This is when a computer appears to perform multiple tasks at the same time; however, in reality it is switching between tasks extremely quickly, giving the illusion that it is performing multiple tasks at the same time. Adding cores gives the computer the ability to parallel process, as each core acts like a virtual CPU that can run independently of the others.
To understand how this works, consider that you have an application running on the computer. This application has a number of tasks that it needs to complete, so it does this in sequential order.
In order to take advantage of parallel processing, the application is required to divide these tasks up and process them in parallel. This requires a number of things. Firstly, the application has to be designed in a way that allows tasks to be broken up into separate components and processed in parallel. The application also needs to be able to control all these tasks and efficiently determine what CPU resources are available and use them effectively. This adds more complexity to the software. Also, the software has to be parallel processing friendly. Not everything can be broken up into different tasks and processed independently.
Adding cores adds more processing power, but inside the core there is also parallel processing ability.
Simultaneous Multithreading
Modern CPUs support simultaneous multithreading. This effectively allows for efficient parallel processing. The way it is currently implemented, is that each core in the CPU supports two threads. A thread being a sequence of instructions. A thread is essentially a virtual CPU that can execute one sequence of instructions, or to think of it another way, it runs a single stream of instructions independently of the other threads.
Having two threads in the same CPU core allows resources to be shared between the two threads. For example, the CPU cache can be shared in this way. Also, other functions like pipeline functions can be shared.
You may be wondering why the core is limited to two threads. The implementation of additional threads in a single core is just not cost-effective, due to the complexity of the core design and the lack of tangible rewards. It is more effective to add additional cores than to add more threads to a core.
You may hear the term Hyper-Threading. Hyper-Threading is Intel’s implementation of multithreading. For AMD, the term SMT is used. Don’t worry about the terms that are used, it is essentially talking about the same thing. Let’s look at other ways you can increase processing power.
Symmetric Multiprocessing (SMP)
Another way you can increase performance is to use multiple CPUs called Symmetric Multiprocessing or SMP. In order to use this, you require a motherboard that supports additional CPUs. The CPU also needs to support SMP. Bear in mind, not all CPUs support SMP. If you are planning to use multiple CPUs, I would also check the compatibility list from the manufacturer to ensure the CPU will work with your motherboard and any additional CPUs you are planning to use.
There are some advantages to using multiple CPUs. Multiple CPUs increase parallel processing. So, if you are running applications that use a lot of parallel processing, having additional CPUs will help. You can also consider using a CPU with more cores, and I will discuss the advantages of using more cores later on in the video.
Increasing the number of CPUs allows for greater scalability and greater throughput. For larger commercial systems that support more than two CPUs, additional CPUs can be added; however, these systems are typically proprietary and not available through conventional sales channels. Thus, as your needs grow you can add additional CPUs.
The disadvantage is that it is expensive. Just the motherboard alone is often more than twice what you would pay for a single CPU motherboard. Added to this, you don’t get twice the performance. There is an overhead to getting CPUs to work together and they all share the same resources on the motherboard. The end result is, you don’t get double the performance, although it does improve it.
Having multiple CPUs also makes the I/O on the motherboard more complicated. With modern CPUs, the memory controller is inside the CPU. You can see on this motherboard that both CPUs have memory that is connected directly to it. This makes sense since the memory controller is in the CPU. However, when a CPU requires data that is stored in memory that is not connected directly to the other CPU, this data needs to travel through a bus which connects both CPUs together. The bus connecting the CPUs together is a high-speed bus, but you don’t want to transfer data between CPUs if you don’t have to. Thus, it makes it more suitable for particular applications. Let’s have a closer look.
In The Real World
In the real world, your choice between buying a better CPU with more cores or adding a CPU will come down generally to performance versus throughput. For example, if you are running CPU heavy applications, you would want to consider a better CPU. Nowadays, there are consumer CPUs with over 20 cores on the market. Rather than having the extra expense of purchasing a dual CPU motherboard and an extra CPU, it is often better off purchasing a better CPU, but not in all cases.
If you are doing a lot of data processing or running simulations such as fluid dynamics, it is worth considering a second CPU. The manufacturer of the software will provide information about how well their software works with a second CPU. CPU intensive simulations often use a lot of data and put a lot of load on the CPU. Thus, having the second CPU increases the throughput of the application. You will find that a lot of the dual CPU systems, other than servers, are high-performance workstations which are designed to process a lot of data.
The other place you will find dual CPU systems is in server rooms. Server rooms are where you will find the majority of your heavy number crunching and data processing computers. Servers are streamlined for that purpose and you will generally find server software is written with multiple CPUs in mind. Even when the software does not take advantage of multiple CPUs, the operating system or management software should be able to take care of multiple CPUs. Management software used in server rooms, particularly cloud based, will take advantage of any hardware it has. Furthermore, more sophisticated management software can further improve performance by allocating resources according to the current load. If you are running a lot of virtual machines, this is also a good candidate for multiple CPU systems.
You may want to consider getting a better CPU if you are playing games and they are running a little slowly. Games don’t require high-performing CPUs as much as they used to, but you need to meet the minimal requirements.
When considering what to buy, also consider upgrading other components that may have an even greater impact on your computing experience. For example, investing in a higher-quality graphics card can often have a bigger effect on performance than buying a more powerful CPU. If your primary use of the computer is for 3D gaming, upgrading the video card will have more impact than the CPU.
Nowadays, you will find that dual CPU systems are becoming less and less common even in high-performance workstations. This is because a single CPU with a high core count will be cheaper than a dual CPU system, use less power and in many cases give you better performance.
Let’s look at some of the features that you should consider before purchasing a CPU.
CPU Features
The basic features of a CPU are well developed, so even if you purchase an inexpensive model from within the last five years, it will most likely run any software currently available. What differs is the performance you will get and some of the features of the CPU. The CPU may also be customized for specific purposes.
One of the features is integrated graphics. Integrated graphics means that you don’t require a video card to be installed in the computer. Instead, there is an integrated video card inside the CPU. The integrated video card offers pretty good 2D performance and basic 3D performance. This is not bad for a basic computer, but if you want good performance, you are going to have to install a dedicated video card.
The CPU may also be customized for high performance. These CPUs will run at a high clock rate or allow you to overclock it if you wish. Other CPUs are designed to use less power; such CPUs are normally found in laptops, but you can purchase them for desktops as well. They sacrifice performance in order to draw less power.
The last feature to consider is virtualization. Virtualization is the process of creating a virtual version of a physical device. The virtual environment is designed to run as it would on a physical device.
Let’s have a closer look at what is required for virtualization.
Virtualization Requirements
There have been two generations of virtualization. These have been implemented by Intel and AMD using different methods. In the case of Intel, they have called their virtualization feature, Intel Virtualization Technology. In the case of AMD, they call the feature AMD-V. Hardware virtualization first entered the market in 2005. Thus, the vast majority of CPUs on the market today should support first generation virtualization. You may just need to enable it in your BIOS before you can use it.
Second generation virtualization was released in early 2011. Since it was released a long time ago, it also has good support in the market. If you have an old system, however, it may not support it.
Second generation adds support for Second Level Address Translation otherwise known as SLAT. In first generation virtualization, memory translation is done in the virtual machine and also on the physical computer. That is, it is performed twice. With SLAT, this translation is done once for both the virtual and physical machine making memory management a lot faster.
For Intel, this is called Extended Page Table and for AMD, Rapid Virtualization Indexing. If you are purchasing a computer and planning on running virtualization, it is worth checking to make sure the CPU supports this feature. The vast majority of CPUs on the current market should support it, since the feature was released a while ago. But if it is an older model or a cheap CPU, it is best to check.
End Screen
That concludes this video on CPU features. In later videos we will look at model numbers, selecting a CPU and installing it. We hope to see you in those videos from us. Until the next video, we would like to thank you for watching.
References
“The Official CompTIA A+ Core Study Guide (Exam 220-1101)” pages 84 to 103
“Mike Myers All in One A+ Certification Exam Guide 220-1101 & 220-1102” page 74
“Picture: Save Energy PNG Image” https://www.pngall.com/save-energy-png/download/17914
“Picture: Stock Clock Speed graphic” https://i.stack.imgur.com/z94Of.png
“Video: First 9.1 GHz CPU (overclocked 14900KS)”
https://www.youtube.com/watch?v=qr26jxPIDm0
“Picture: Microarchitecture picture” https://en.wikipedia.org/wiki/Microarchitecture#/media/File:Intel_Core2_arch.svg
“CPU Benchmarks” https://cpu.userbenchmark.com/Compare/Intel-Core-i7-12700K-vs-Intel-Core-i7-11700K/4119vs4107
“Picture: CPU” https://pixabay.com/vectors/processor-icon-computer-chip-1714820/
“Video: Particles” https://pixabay.com/videos/explosion-particles-intro-flash-175298/
Credits
Trainer: Austin Mason http://ITFreeTraining.com
Quality Assurance: Brett Batson http://www.pbb-proofreading.uk