- [Craig] In this video, we take a look at how the common characteristics of CPUs affect their performance. (uplifting piano jingle) Let's think about a typical racing car as an analogy before we look at the central processing unit itself. So, what are all the factors affecting the speed of this car? Well obviously, we have the horsepower of the engine itself, but that's not the only factor. In the same way, with a CPU, you've got how fast the clock can tick, measured in hertz, but there are many other factors which affect how fast it can perform. So, what else have we got? Well, we've got the tyres - these will have a big overall impact on the speed of our racing car. We've got the weather conditions. We've got the driver's overall skill. We've got the aerodynamics of the racing car. As you can see, there are lots of factors which determine the overall speed of a racing car in any particular race. In a similar way, the performance of the CPU is affected by various factors. There are three critical aspects of the CPU design which you need to be aware of for your exam. The first is clock speed. Measured in hertz, this is the number of instruction cycles per second it can execute. We think of modern CPUs as operating in multiple gigahertz, with a single gigahertz representing one billion operations per second. The whole cycle is controlled by the control unit and the CPU's internal clock. The faster the clock ticks, the quicker you can fetch and execute instructions. You can't strictly say it's one-to-one. For example, you can't say that with a three-gigahertz processor, there are three billion cycles, therefore, there are three billion instructions being executed per second, but it isn't far off. And if you stop to think about that for a moment, that's really, really quite incredible, the speed at which modern CPUs are now able to operate. The second factor to consider is the size of the cache. The cache is a temporary storage of instructions and data which are being read from and written to the main memory. So, every time you fetch an instruction or a piece of data, we keep a copy of it in the cache. Every time we write data back out to the memory, we're going to keep a copy of it in the cache. The purpose of this is that we want to try and avoid getting instructions and data from memory as much as possible, as it costs time. So, if we have the instructions and data we need inside the processor already, in the cache, we can save lots of time. This clearly means the more instructions and data we can store in the local cache, the better and the more efficient the CPU is going to be. Now, there's a tipping point where you might ask, "Well, what's the point in having main memory at all?" "We might as well have all the contents of memory already inside the cache, inside the CPU." Well, the size of the cache inside the CPU is limited and tends to be much smaller than the storage available in main memory. And we actually only need a relatively small amount of cache in order to notice a significant increase in the CPU's overall performance. Finally, we need to think about the number of cores. In very simple terms, a core is a complete copy of the CPU. So, a quad-core processor would have four separate processing units, each with its own set of registers, ALU, accumulators, control unit, et cetera. This means a CPU with more than one core is physically able to carry out more than one fetch-execute cycle at a separate time and has the potential to be able to run multiple programs at once. Note, however, that doubling the amount of cores doesn't directly lead to a doubling of the speed and efficiency of the processor. CPU cores have to communicate with each other. The more cores you have, the more communication needs to take place to keep everything in sync, and this costs time and efficiency. On top of this, many programs are simply not designed to make maximum use out of multiple cores. So, let's just recap what we've been through already. A CPU's overall performance can be affected by many different factors. The most important are clock speed, measured in hertz, and this is the number of cycles per second; the cache size, a temporary storage of data and instructions being read to and written from, stores copies of recent data and instructions. It is much quicker getting items from the cache than from main memory. And the number of cores. A core is, in simple terms, a complete copy of the CPU. So, a quad-core processor would have four separate processing units, each with its own registers, accumulators, ALU and control units, remembering that doubling the number of cores doesn't simply double the overall speed. CPU cores need to communicate with each other and this takes time, and many programs are not designed to make use of multiple cores. What comes next is technically a little beyond what you need to know for the GCSE exam, so there's no need to take notes in the rest of this video. However, if you're looking for a slightly deeper level of understanding, this next section will really add some extra value and provide excellent bridging knowledge for the A Level. Many people see a physical chip like this and call it a CPU, and while this understanding is fine for your GCSE exams, it's technically incorrect if this chip has more than one core. It would more commonly be referred to as a chip multiprocessor or CMP, which itself actually houses, in this example, four CPU cores and some shared cache, which can be used across all four. We more commonly just refer to this as a quad-core processor or quad-core CPU. The efficiency of the computer's main CPU can be further enhanced by offloading some of its tasks to other, more specialised processors. Most modern computers, especially PCs dedicated to gaming, and gaming consoles will have separate graphics cards and sound cards, and these will have their own processors, highly specialised forms of your computer's main CPU, which are designed to excel at processing instructions related to graphics and sound. By offloading these tasks to these processors, the overall performance of your main CPU can be improved significantly. (uplifting piano jingle)