NoteGPT_How a CPU Works
NoteGPT_How a CPU Works
computer and once you understand how it works You'll understand the computer as
well. Let's remove the cover of the CPU and zoom in to see what happens inside
there are lots of different wires carrying information around the CPU this
particular CPU is called the 6502 and was used in computers like the Apple 2 and
the Commodore 64 as well as in the original Nintendo Entertainment System This
simulation of the 6502 can be found online at visual 6502 org in
Every CPU there is a particular wire that turns on and off at a steady
rate to help keep everything in sync That wire is called the clock and the clock in
this simulation is turning on about twice a second Modern CPUs are measured in
gigahertz giga meaning billion in hertz meaning times per second so the clock in
modern cpus turns on several billion times per second That speed is what allows
cpus to do very complicated things very quickly However, what the CPU does during
each clock tick is actually very simple and something. We'll look at more in this
video
For now we'll zoom back out and put the cover back on The CPU and your
computer might be manufactured by a company like Intel or AMD But the type of CPU
we're going to look at today is called the Scott CPU The Scott CPU doesn't actually
exist except as a design in a book called But how do it know by john scott the
design of the scott cpu is copyrighted And it's being used in this video with
john's permission The book is available at but how do it no com? This is a great
book that goes through each of the components in the CPU very slowly without using
a lot of overly technical
Jargon, if you've been looking for a book that explains how a computer
works. I would highly recommend this one So let's flip the CPU over and look
underneath You'll see a lot of pins sticking out that allow the CPU to take in
information and send it back out The CPU fits into what's known as the motherboard
the motherboard allows all the components in the pewter to connect to each other So
we'll flip the CPU back over and plug it into the motherboard on The right of the
motherboard is a place for something called RAM RAM is short for random access
memory
And it just contains all the data that is being processed by the CPU
Let's learn a little bit more about RAM by looking at how the CPU and RAM interact
For now well remove the wires on the left and move the motherboard over to make
room for the RAM chip Ram consists of a list of addresses and at each of those
addresses is a piece of data the CPU normally requests and processes each piece of
data from RAM in order one after the other However, if the CPU is instructed to
pull data out of order it can do so that is why it's called random access memory
That data is then processed by the CPU accordingly Once the CPU is
finished processing that piece of data it then sends another address to Ram Turns
on the enable wire and gets the next piece of data from Ram this process happens
over and over again inside the computer If the CPU needs to save data to Ram it
outputs an address Output some data, and then turns on the set wire The RAM will
then overwrite the data at that address with the new data But what is that data
inside Ram because it just looks like a bunch of ones and zeros
Well, it's made up of different things some of the most important pieces
of data in RAM are the instructions Instructions just tell the CPU to do different
things There are also numbers inside that data. These are numbers that you might
want to add together compare or simply process in some way Another thing and this
is kind of weird that is in the data is addresses at Particular memory addresses in
RAM the data itself is also an address These addresses can be used for various
things For instance if you want to output a number to an external device you have
to know the address of that particular device
Do you want to send data to the printer, or do you want to send it to the
monitor for instance? There are also letters stored in RAM if you want to show some
text on the screen You would actually store it as a bunch of ones and zeros and RAM
Each letter is stored as a particular combination of ones and zeros according to a
character code these character codes are arbitrary Someone just decided that this
is a lowercase a and this is an uppercase G for instance So that's what's actually
in the data inside Ram now
Let's go back to seeing the data is just a bunch of ones and zeros and
we'll now move the RAM chip into the RAM socket on the motherboard We'll then group
the RAM addresses and data together Pull the CPU out of the motherboard and look at
what's called the instruction set of the CPU As we saw earlier some of the pieces
of data in RAM are instructions and each CPU has its own set of instructions that
it Understands so there might be a load instruction which loads a number from RAM
into the CPU After a couple of these load instructions there might be an add
instruction that adds these two numbers together
These two instructions are often used in conjunction with an address like
we talked about earlier There are some other instructions in the CPUs instruction
set that these are some of the more commonly seen ones So as we saw the data in RAM
consists of things like instructions numbers addresses and letters So let's go
through a program. That would use this instruction set to play a guessing game So
it would load a number like nine into the CPU Let's say that the programmer decided
that that was the right answer
So he went ahead and put that number into RAM and then comes an end
instruction to retrieve the user's guess after The in instruction is the address of
the keyboard so we can know where we're getting the data from Next comes a compare
Instruction that checks to see if those two numbers the one saved by the programmer
and the one entered by the user are the same Following the compare instruction is a
jump if equal instruction which will jump to another address in RAM if those two
numbers We just talked about are the same
the jump if equal instruction is immediately followed by a new RAM
address if The two numbers are the same The CPU jumps to that new address to begin
processing its next set of instructions from there if the two numbers are not the
same Then the computer ignores the jump if equal instruction and the corresponding
address and just keeps going Following the jump to address comes an out instruction
with the address for the monitor, then the letter capital G And then below that
would be the letters U e
SS. Space again, so guess again So if the user guesses the wrong number
the program would tell him to guess again And then jump back up to the in
instruction to retrieve that new guess and then process these instructions all over
again By the way the in and instructions used here have been simplified somewhat,
but you'll find them covered in more detail in the book So now let's briefly take a
look inside the CPU itself to see how it would process an instruction as we saw
earlier This is the inside of the 6502 CPU
Let's take away the 6502 wiring and see what's inside the Scot CPU The
first component is the control unit which is kind of like a captain in the army it
receives its orders from RAM in the form of an instruction and then breaks that
instruction down into specific commands for the other components One of the most
important components under the command of the control unit is the arithmetic logic
unit or ALU for short? The ALU is what performs all the mathematical operations
inside the CPU such as addition subtraction
Or even comparison like we saw earlier The arithmetic logic unit has two
inputs will label them input a and input B and assume They are two numbers from
some previous load instructions Now we might want to add those two numbers together
The control unit receives that instruction from RAM and then tells the ALU what
type of operation to perform The ALU performs the operation and then outputs the
answer Sometimes though depending upon the type of instruction the output from the
ALU can actually be ignored
For instance if you have a compare instruction the ALU doesn't need to
output an answer instead It just needs to tell the control unit how the two numbers
compare to each other for this the ALU uses What are called flags and they help the
control unit decide what to do when it receives the next? Instruction like jump if
which we'll see later For now though. Let's say that we are working with an
instruction that does produce an output. Where does that output actually go? well
the eight wires coming out of the ALU would actually run to what is called a
register a
Once we have the output saved in the register though. How do we get it
back out? Well when we are ready to move a number out of the register we need
another control wire called the enable wire That also runs from the control unit to
the register as soon as the control unit turns the enable wire on The register will
output whatever number is saved inside the output wires of the register then
connect to what is called the CPU bus a Bus as we saw earlier on the motherboard is
simply a group of wires that connect multiple components inside a computer on
The bus are some other registers with their own set and enable wires
These may have numbers from previous instructions already saved inside so the
control unit will then turn on the set wire of the Particular register that it
wants to save that number to and that number will be saved in that register
Afterward the control unit will then turn off the enable wire from the first
register and clear the bus The four registers at the top are just used for storing
numbers between operations So they have output wires that go directly back onto the
bus
The other input to the ALU comes directly from the bus The control unit
will enable another register and that number will become input a to the ALU that
number stays on the bus until the ALU is finished processing the instruction and So
now there are two inputs to the ALU and we're ready for the ALU to perform an
operation As we saw earlier the control unit knows what operation to tell the ALU
to perform Because of the instruction it receives from rim The instruction itself
is an another register called the instruction register
By the way the input wires from the bus won't affect this register since
the instruction was already saved in a previous step This register like the
temporary register, also has no need for an enable wire since it just outputs to
the control unit Based upon this instruction the control unit then tells the ALU
what type of operation to perform So let's say the instruction. We're processing is
a compare instruction with the compare instruction We're not interested in the
number that is output by the ALU
We only want to know how the two inputs compare to each other For that we
use the flags that we talked about earlier Each flag is just a wire that turns on
or off depending upon whether or not a certain condition is true Inside the Scott
CPU there are four flags, and we'll look at two of them now The a is larger flag
will turn on if input a is larger than input B if the inputs are the same Then the
equal flag turns on and if both of these flags are off that means input B is larger
But in this case the equal flag is on so that means both inputs are the same
Once the compare instruction is over. We still need to use the flags for
the next instruction So we'll save them to a register that only has 4 inputs and
four outputs one for each flag Once the flags are set into the flags register the
CPU is finished with the compare instruction and it can then request the next
instruction from REM generally the next instruction after a compare instruction is
a jump if instruction this combination of a compare and a jump if instruction by
the way is very common in
When the CPU is ready for the next instruction it enables the instruction
address register onto the bus eventually the instruction address will flow to RAM
But it doesn't get there directly there is an intermediary register called the
memory address register Whose only job is to tell Ram what memory address the CPU
wants next since it won't always be an instruction Once the instruction address is
set into the memory address register it has automatically sent to RAM since the
memory address register
Doesn't have an enable wire the control unit then turns on the enable Ram
wire and RAM Automatically sends back the data at that address which in this case
is an instruction That instruction is then saved in the instruction register, and
the control unit begins processing it in This case it's a jump if equal
instruction, which checks to see if the equal flag is on It does that by running
one of its wires and the equal flag wire into a NAND gate If both inputs to the and
gate or on then the output wire turns on as well
This output wire will then trigger the jump that jump eventually
retrieves the next piece of data from RAM Which happens to be an address and move
it into the instruction address register when the jump if equal instruction is over
the CPU then processes the instruction at that new address at That new address,
maybe some instructions that output the text you guessed correctly onto the screen
because now we know that the user guessed correctly So we'll add the final four
wires to our CPU which are used to control the external devices like the monitor
and keyboard
We now have a nearly complete picture of what the Scotts CPU looks like
Data moves around inside the CPU using the bus and is stored in each register
according to how that data is going to be used Each instruction that we have seen
can be processed by the Scott CPU in about 6 clock ticks Modern CPUs can process
multiple instructions per clock tick meaning that the computer you're using to
watch this video is likely processing tens or even hundreds of billions of
instructions per second that phenomenal speed is accomplished by using more than
one of each component and
Making sure that all the components are active as much as possible This
makes modern CPUs much more complicated than the Scott CPU But they are still
fundamentally doing the same things as the Scott CPU So now let's zoom back out and
we can see all the wires that run back out to the pins on the chip on The right are
the set RAM and enable RAM wires on The top are the RAM address wires on the bottom
are the data wires that run to both RAM and the external devices And on the left
are the input/output control wires
So let's zoom back out to see the rest of the chip And we'll put the
cover back on the CPU and put it back in the motherboard Using the ports on the
Left we can now plug in the cables that connect our monitor and our keyboard Each
of these ports has an address and that port address is what the CPU uses with an in
or an out instruction That port address by the way is sent using the data bus since
the address bus in this computer is only used for RAM So we'll zoom out to see how
the motherboard fits inside the computer case in the computer case is the last
component
we'll look at which is the hard drive as Soon as the power to the
computer is turned off all the data and RAM is lost so you have to have a way to
Store it more permanently for that we use a hard drive Inside the hard drive is a
spinning disk covered in tiny magnets with a small metal arm floating above it The
arm moves around to the different parts of the disk where a different data can be
stored and retrieved The disk and the arm generally move very very quickly, but
nowhere near as fast as the CPU can process data
For this reason all the data from the hard drive must first be moved to
RAM before it can be processed So we'll put the hard drive back inside the computer
and zoom out here. We can see the program We just ran and the message telling the
user that he guessed correctly So now you've seen the very basics of how a computer
processes information You'll find much more about the Scot CPU in the book at the
website, but how do it know comm? Also, there are a few small differences between
the book and the video
But those shouldn't detract from your understanding of either you can
find a list of these differences in the video description. Thanks for watching.
Whatever you do, work at it with all your heart, as working for the Lord, not for
human masters -Colossians 3:23