WEBVTT

00:00:00.000 --> 00:00:06.800
We've gotten used to throwing around the term CPU core, the part of your processor that does the actual, you know, processing.

00:00:06.800 --> 00:00:11.800
We understand that more cores are usually better, especially for applications like video editing.

00:00:11.800 --> 00:00:16.300
But what exactly makes a core different from the rest of the CPU?

00:00:16.300 --> 00:00:22.000
And how exactly do they work? It's probably useful to first define what a core is not.

00:00:22.000 --> 00:00:29.600
Cores don't handle I.O. or input output from the rest of the system as there's a separate part of the CPU die that deals with that.

00:00:29.800 --> 00:00:37.300
Nor do they provide you with the graphics. That is the responsibility of an integrated GPU, which also sits on a different part of the die.

00:00:37.300 --> 00:00:42.400
So now let's look at what a core does do by talking about the different parts of a core.

00:00:42.400 --> 00:00:46.100
Let's start out with the ALU or Arithmetic Logic Unit.

00:00:46.100 --> 00:00:51.000
The ALU does exactly what it sounds like. It's the part of your computer that does the thinking.

00:00:51.000 --> 00:00:57.600
More specifically, it handles mathematical operations and also carries out logical operations such as comparing different values.

00:00:57.700 --> 00:01:00.900
Although this might make the ALU sound like a fancy calculator,

00:01:00.900 --> 00:01:08.400
the programming languages that enable everything you do on your computer rely on math and formal logic that the ALU can understand.

00:01:08.400 --> 00:01:12.500
Cores often also have a floating point unit, which is similar to an ALU,

00:01:12.500 --> 00:01:16.500
but deals with number sets that have their decimal points in different places.

00:01:16.500 --> 00:01:20.900
And you can learn more about what this means and why it's important in this video right up here.

00:01:20.900 --> 00:01:25.400
But how do the ALU and the FPU know what to work on?

00:01:25.400 --> 00:01:28.500
Well, data is fed to these units by registers.

00:01:28.500 --> 00:01:33.700
These are temporary holding places for whatever the CPU core has to process next.

00:01:33.700 --> 00:01:39.100
One type of register, called an input register, holds the data that the CPU needs to process,

00:01:39.100 --> 00:01:45.200
while another type of register, called an instruction register, tells the CPU what to do with that data.

00:01:45.200 --> 00:01:50.800
So if the system needs to multiply 6 and 3, it will place 6 and 3 into the input registers

00:01:50.800 --> 00:01:53.900
and a multiply instruction into the instruction register.

00:01:53.900 --> 00:01:57.300
The ALU will then figure out the product, 18 in this case,

00:01:57.300 --> 00:02:02.600
and send the result to yet another part of the core called an accumulator.

00:02:02.600 --> 00:02:05.900
The accumulator then sends the result to the cache,

00:02:05.900 --> 00:02:10.900
which is a small amount of extremely fast memory built into each core.

00:02:10.900 --> 00:02:17.400
This data can then be read by the program that requested it. And by the way, the cache sends data the other direction as well.

00:02:17.400 --> 00:02:23.700
Specifically, it holds the data and the instruction the CPU has to process and execute before that data enters the ALU.

00:02:23.700 --> 00:02:27.900
Now, at the beginning of all this, the data is initially fetched from your main system RAM,

00:02:27.900 --> 00:02:33.700
but having it in the cache before the cores need to process it makes your PC run much faster.

00:02:33.700 --> 00:02:38.900
Once the CPU core finishes working on one instruction, it of course has to move on to the next one.

00:02:38.900 --> 00:02:42.500
So another part of the core is called the instruction pointer.

00:02:42.500 --> 00:02:47.700
It contains the location and memory where the CPU should load the next instruction from.

00:02:47.700 --> 00:02:54.500
But what ties all of it together? To find the answer out, we actually have to go outside the cores themselves.

00:02:54.500 --> 00:02:59.700
The CPU features a memory management unit or MMU that's separate from the cores

00:02:59.700 --> 00:03:05.000
that directs the data that flows between RAM and the CPU cores, kind of like a traffic cop.

00:03:05.000 --> 00:03:10.600
And the CPU die also has a control unit that manages the cores by synchronizing their different parts

00:03:10.600 --> 00:03:18.300
so that they work together fluidly. To do so, the control unit uses a clock signal that runs at a specific clock rate.

00:03:18.300 --> 00:03:25.300
That same number you see on your CPU or computer's label given in gigahertz or billions of clock cycles per second.

00:03:25.300 --> 00:03:32.100
Fast enough to help you watch this video. So hopefully now you understand the difference between a CPU core and the other parts of your processor.

00:03:32.100 --> 00:03:39.300
And we know this was a very simplified high level overview of a very complicated device like a CPU.

00:03:39.300 --> 00:03:43.600
We don't exactly have time to get into a whole PhD dissertation here on Tech Quicky,

00:03:43.600 --> 00:03:48.600
but maybe you'll find one of those down in the comments. So thanks for watching guys, if you liked this video, hit like, hit subscribe,

00:03:48.600 --> 00:03:53.600
and hit us up in the comments with your suggestions for topics that we should cover in the future.
