How a CPU Works

00:20:00
https://www.youtube.com/watch?v=cNN_tTXABUA

الملخص

TLDRThis video offers an insightful look into how central processing units (CPUs) function, likening them to the brain of a computer. By exploring the internal workings of a 6502 CPU model, as well as a theoretical Scott CPU model, viewers learn about the fundamental processes occurring within these components. CPUs contain wires and circuits for data routing, with a crucial 'clock' wire keeping operations in sync. These operations are measured in gigahertz in modern CPUs, supporting complex tasks at enormous speed. The video also introduces random access memory (RAM), which stores data for the CPU's processing. It illustrates the interaction between the CPU and RAM, explaining how data and instructions are managed. Registers within the CPU temporarily store data, aiding in processing. The instruction set—commands including load, add, jump, etc.—guides the CPU's actions. Arithmetic Logic Units (ALUs) within CPUs handle calculations. The video encapsulates how CPUs function with other components like motherboards and storage devices, concluding with making computing concepts accessible through the Scott CPU model and its representation in the book 'But How Do It Know' by John Scott. This book gradually explains the components within a CPU in a non-technical language, making it highly recommended for enthusiasts.

الوجبات الجاهزة

  • 🧠 The CPU operates as the computer's brain, processing data and instructions.
  • 🔄 A CPU's clock regulates its processes, modern ones ticking billions of times per second.
  • 📚 The instruction set comprises the commands a CPU recognizes to execute tasks.
  • 💾 RAM serves as temporary, quick-access data storage for the CPU's operations.
  • 📎 Registers store numbers temporarily, enhancing computational efficiency.
  • ➕ The ALU conducts essential mathematical operations within the CPU.
  • 🖧 Data buses connect various components, streamlining data flow around the CPU.
  • 🔍 The Scott CPU is a conceptual model that's easy to understand for learning purposes.
  • ⚙️ Modern CPUs outperform the Scott CPU by multi-tasking and processing quicker.
  • 📘 'But How Do It Know' is a valuable resource for understanding CPU mechanics without technical jargon.

الجدول الزمني

  • 00:00:00 - 00:05:00

    The CPU, referred to as the computer's brain, functions by using wires to carry information, notably the clock wire that syncs processes. The 6502 CPU, used in early computers and gaming systems, operates at a slower rate compared to modern CPUs measured in gigahertz. The Scott CPU, a conceptual CPU design, helps explain CPU components and operation basics, highlighting RAM's role in storing data and instructions for processing.

  • 00:05:00 - 00:10:00

    Inside a CPU, instructions are executed using a set of instructions like load, add, store, compare, and jump. Programs utilize these instructions for operations like playing guessing games. Data in RAM is composed of instructions, numbers, addresses, and letters, which interact with components inside the CPU. The CPU processes instruction sets and uses flags to determine operations based on conditions, such as comparison results, influencing the next actions.

  • 00:10:00 - 00:15:00

    The CPU's arithmetic and logic unit (ALU) performs operations like addition, with results stored in registers. The control unit directs operations, utilizing flags to make decisions. Registers temporarily hold data, functioning faster than RAM. The CPU uses a bus system for data transfer between components, optimizing data flow but limited to one number at a time on the bus, driving ALU operations based on fetched instructions.

  • 00:15:00 - 00:20:00

    The CPU processes instructions through various components like the control unit and ALU, using a bus system to manage data flow. It uses registers and flags to execute logic, supporting program paths via instructions like jump if equal. The CPU communicates with RAM and external devices through specific wires, performing multiple instructions rapidly. Modern CPUs, based on the same principles, are far more advanced in speed and complexity, integrating vast numbers of operations simultaneously.

اعرض المزيد

الخريطة الذهنية

فيديو أسئلة وأجوبة

  • What is the CPU often compared to?

    The CPU is often compared to the brain of the computer.

  • What is the function of the clock in a CPU?

    The clock helps keep everything in sync by turning on and off at a steady rate. In modern CPUs, it turns on several billion times per second.

  • What is RAM and how does it interact with the CPU?

    RAM stands for Random Access Memory and contains data processed by the CPU. The CPU retrieves data from RAM in an order but can access it randomly if required.

  • What is a register inside the CPU used for?

    A register is used to temporarily store a number, acting like fast, internal RAM within the CPU.

  • What is the instruction set of a CPU?

    The instruction set is a collection of commands the CPU understands, such as load, add, compare, jump, in, and out instructions.

  • How does the CPU process instructions?

    The CPU processes instructions by using components like the control unit, registers, and the Arithmetic Logic Unit to execute commands.

  • What is the purpose of the Arithmetic Logic Unit (ALU)?

    The ALU performs all mathematical operations in the CPU, such as addition, subtraction, and comparison.

  • How is data from RAM accessed by the CPU?

    The CPU sends an address to RAM to begin retrieving data, and data is sent back to the CPU when the enable wire is activated.

  • What happens when a CPU's clock tick occurs?

    During each clock tick, the CPU performs simple operations guided by its instruction set.

  • How are modern CPUs different from the Scott CPU presented in the video?

    Modern CPUs are more complex, capable of processing multiple instructions per clock tick due to having multiple components working simultaneously, resulting in far greater processing speeds.

عرض المزيد من ملخصات الفيديو

احصل على وصول فوري إلى ملخصات فيديو YouTube المجانية المدعومة بالذكاء الاصطناعي!
الترجمات
en
التمرير التلقائي:
  • 00:00:00
    The CPU short for central processing unit is like the brain of the computer and once you understand how it works
  • 00:00:05
    You'll understand the computer as well. Let's remove the cover of the CPU and zoom in to see what happens inside
  • 00:00:12
    there are lots of different wires carrying information around the CPU this particular CPU is called the
  • 00:00:19
    6502 and was used in computers like the Apple 2 and the Commodore 64 as well as in the original Nintendo Entertainment System
  • 00:00:26
    This simulation of the 6502 can be found online at visual 6502 org in
  • 00:00:33
    Every CPU there is a particular wire that turns on and off at a steady rate to help keep everything in sync
  • 00:00:40
    That wire is called the clock and the clock in this simulation is turning on about twice a second
  • 00:00:46
    Modern CPUs are measured in gigahertz
  • 00:00:48
    giga meaning billion in hertz meaning times per second so the clock in modern cpus turns on several billion times per second
  • 00:00:57
    That speed is what allows cpus to do very complicated things very quickly
  • 00:01:02
    However, what the CPU does during each clock tick is actually very simple and something. We'll look at more in this video
  • 00:01:09
    For now we'll zoom back out and put the cover back on
  • 00:01:12
    The CPU and your computer might be manufactured by a company like Intel or AMD
  • 00:01:18
    But the type of CPU we're going to look at today is called the Scott CPU
  • 00:01:23
    The Scott CPU doesn't actually exist except as a design in a book called
  • 00:01:27
    But how do it know by john scott the design of the scott cpu is copyrighted
  • 00:01:32
    And it's being used in this video with john's permission
  • 00:01:35
    The book is available at but how do it no com?
  • 00:01:39
    This is a great book that goes through each of the components in the CPU very slowly without using a lot of overly technical
  • 00:01:46
    Jargon, if you've been looking for a book that explains how a computer works. I would highly recommend this one
  • 00:01:52
    So let's flip the CPU over and look underneath
  • 00:01:55
    You'll see a lot of pins sticking out that allow the CPU to take in information and send it back out
  • 00:02:01
    The CPU fits into what's known as the motherboard the motherboard allows all the components in the pewter to connect to each other
  • 00:02:08
    So we'll flip the CPU back over and plug it into the motherboard on
  • 00:02:12
    The right of the motherboard is a place for something called RAM RAM is short for random access memory
  • 00:02:19
    And it just contains all the data that is being processed by the CPU
  • 00:02:23
    Let's learn a little bit more about RAM by looking at how the CPU and RAM interact
  • 00:02:28
    For now well remove the wires on the left and move the motherboard over to make room for the RAM chip
  • 00:02:34
    Ram consists of a list of addresses and at each of those addresses is a piece of data
  • 00:02:40
    the CPU normally requests and processes each piece of data from RAM in order one after the other
  • 00:02:46
    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
  • 00:02:54
    The data can be accessed randomly if it needs to be although normally. It's accessed in order
  • 00:02:59
    When the computer first starts running a program it sends an address to RAM to begin retrieving that program
  • 00:03:06
    The RAM address just consists of a series of ones and zeros representing on and off wires
  • 00:03:12
    Ram doesn't do anything with that address though until the CPU also turns on the set or the enable wire
  • 00:03:18
    If the enable wire is turned on Ram automatically sends whatever piece of data is at that address back to the CPU
  • 00:03:26
    That data is then processed by the CPU accordingly
  • 00:03:30
    Once the CPU is finished processing that piece of data it then sends another address to Ram
  • 00:03:36
    Turns on the enable wire and gets the next piece of data from Ram this process happens over and over again inside the computer
  • 00:03:43
    If the CPU needs to save data to Ram it outputs an address
  • 00:03:48
    Output some data, and then turns on the set wire
  • 00:03:51
    The RAM will then overwrite the data at that address with the new data
  • 00:03:56
    But what is that data inside Ram because it just looks like a bunch of ones and zeros
  • 00:04:01
    Well, it's made up of different things some of the most important pieces of data in RAM are the instructions
  • 00:04:08
    Instructions just tell the CPU to do different things
  • 00:04:11
    There are also numbers inside that data. These are numbers that you might want to add together compare or simply process in some way
  • 00:04:20
    Another thing and this is kind of weird that is in the data is addresses at
  • 00:04:24
    Particular memory addresses in RAM the data itself is also an address
  • 00:04:29
    These addresses can be used for various things
  • 00:04:32
    For instance if you want to output a number to an external device you have to know the address of that particular device
  • 00:04:38
    Do you want to send data to the printer, or do you want to send it to the monitor for instance?
  • 00:04:43
    There are also letters stored in RAM if you want to show some text on the screen
  • 00:04:47
    You would actually store it as a bunch of ones and zeros and RAM
  • 00:04:51
    Each letter is stored as a particular combination of ones and zeros according to a character code these character codes are arbitrary
  • 00:04:59
    Someone just decided that this is a lowercase a and this is an uppercase G for instance
  • 00:05:05
    So that's what's actually in the data inside Ram now
  • 00:05:09
    Let's go back to seeing the data is just a bunch of ones and zeros and we'll now move the RAM chip
  • 00:05:14
    into the RAM socket on the motherboard
  • 00:05:16
    We'll then group the RAM addresses and data together
  • 00:05:19
    Pull the CPU out of the motherboard and look at what's called the instruction set of the CPU
  • 00:05:25
    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
  • 00:05:33
    Understands so there might be a load instruction which loads a number from RAM into the CPU
  • 00:05:40
    After a couple of these load instructions there might be an add instruction that adds these two numbers together
  • 00:05:46
    After an add instruction might be a store instruction, which saves the result of that addition back out to RAM to be used later on
  • 00:05:53
    There might also be a compare instruction after some load instructions, which compares two numbers together to see which one is larger
  • 00:06:01
    or if they are the same
  • 00:06:03
    the compare instruction can be very useful when used in conjunction with what's called a jump if
  • 00:06:08
    Instruction as we saw earlier the CPU generally requests each piece of data from RAM in order one after the other
  • 00:06:17
    Sometimes though the programmer wants to jump to an out of order ram address to process some other instructions and memory
  • 00:06:23
    The jump if instruction checks to see if a certain condition is true before it jumps
  • 00:06:29
    It uses the results of the compare instruction to make this decision
  • 00:06:33
    There is also a regular job instruction that jumps no matter what?
  • 00:06:38
    finally there is an out instruction and an in instruction these will output data to an external device like a monitor or
  • 00:06:46
    Input data from an external device like a keyboard
  • 00:06:50
    These two instructions are often used in conjunction with an address like we talked about earlier
  • 00:06:55
    There are some other instructions in the CPUs instruction set that these are some of the more commonly seen ones
  • 00:07:02
    So as we saw the data in RAM consists of things like instructions
  • 00:07:07
    numbers addresses and letters
  • 00:07:10
    So let's go through a program. That would use this instruction set to play a guessing game
  • 00:07:15
    So it would load a number like nine into the CPU
  • 00:07:19
    Let's say that the programmer decided that that was the right answer
  • 00:07:22
    So he went ahead and put that number into RAM and then comes an end instruction to retrieve the user's guess after
  • 00:07:29
    The in instruction is the address of the keyboard so we can know where we're getting the data from
  • 00:07:34
    Next comes a compare
  • 00:07:36
    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
  • 00:07:44
    Following the compare instruction is a jump if equal instruction which will jump to another address in RAM if those two numbers
  • 00:07:51
    We just talked about are the same
  • 00:07:53
    the jump if equal instruction is immediately followed by a new RAM address if
  • 00:07:58
    The two numbers are the same
  • 00:08:00
    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
  • 00:08:07
    Then the computer ignores the jump if equal instruction and the corresponding address and just keeps going
  • 00:08:14
    Following the jump to address comes an out instruction with the address for the monitor, then the letter capital G
  • 00:08:21
    And then below that would be the letters U e
  • 00:08:25
    SS. Space again, so guess again
  • 00:08:29
    So if the user guesses the wrong number the program would tell him to guess again
  • 00:08:33
    And then jump back up to the in instruction to retrieve that new guess and then process these instructions all over again
  • 00:08:41
    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
  • 00:08:49
    So now let's briefly take a look inside the CPU itself to see how it would process an instruction
  • 00:08:56
    as we saw earlier
  • 00:08:57
    This is the inside of the 6502 CPU
  • 00:09:01
    Let's take away the 6502 wiring and see what's inside the Scot CPU
  • 00:09:06
    The first component is the control unit which is kind of like a captain in the army
  • 00:09:11
    it receives its orders from RAM in the form of an
  • 00:09:14
    instruction and then breaks that instruction down into specific commands for the other components
  • 00:09:20
    One of the most important components under the command of the control unit is the arithmetic logic unit or ALU for short?
  • 00:09:27
    The ALU is what performs all the mathematical operations inside the CPU such as addition subtraction
  • 00:09:34
    Or even comparison like we saw earlier
  • 00:09:37
    The arithmetic logic unit has two inputs will label them input a and input B and assume
  • 00:09:43
    They are two numbers from some previous load instructions
  • 00:09:47
    Now we might want to add those two numbers together
  • 00:09:50
    The control unit receives that instruction from RAM and then tells the ALU what type of operation to perform
  • 00:09:57
    The ALU performs the operation and then outputs the answer
  • 00:10:01
    Sometimes though depending upon the type of instruction the output from the ALU can actually be ignored
  • 00:10:07
    For instance if you have a compare instruction the ALU doesn't need to output an answer instead
  • 00:10:14
    It just needs to tell the control unit how the two numbers compare to each other
  • 00:10:18
    for this the ALU uses
  • 00:10:20
    What are called flags and they help the control unit decide what to do when it receives the next?
  • 00:10:26
    Instruction like jump if which we'll see later
  • 00:10:29
    For now though. Let's say that we are working with an instruction that does produce an output. Where does that output actually go?
  • 00:10:36
    well the eight wires coming out of the ALU would actually run to what is called a register a
  • 00:10:42
    Register is a very simple component whose only job is to store a number temporarily
  • 00:10:47
    registers act just like RAM except
  • 00:10:50
    They are inside the CPU making them faster and more useful for storing a number temporarily Wow instructions being processed
  • 00:10:58
    When the ALU sends the output to the register it won't actually be saved until
  • 00:11:03
    the control unit turns on the registers set wire
  • 00:11:06
    The set wire is just like the one we saw earlier for RAM
  • 00:11:10
    When the set wire is turned on the register saves whatever number is on its input wires
  • 00:11:16
    Once we have the output saved in the register though. How do we get it back out?
  • 00:11:21
    Well when we are ready to move a number out of the register we need another control wire called the enable wire
  • 00:11:27
    That also runs from the control unit to the register as soon as the control unit turns the enable wire on
  • 00:11:34
    The register will output whatever number is saved inside
  • 00:11:37
    the output wires of the register then connect to what is called the CPU bus a
  • 00:11:42
    Bus as we saw earlier on the motherboard is simply a group of wires that connect multiple components inside a computer on
  • 00:11:50
    The bus are some other registers with their own set and enable wires
  • 00:11:55
    These may have numbers from previous instructions already saved inside
  • 00:11:59
    so the control unit will then turn on the set wire of the
  • 00:12:02
    Particular register that it wants to save that number to and that number will be saved in that register
  • 00:12:08
    Afterward the control unit will then turn off the enable wire from the first register and clear the bus
  • 00:12:14
    The four registers at the top are just used for storing numbers between operations
  • 00:12:19
    So they have output wires that go directly back onto the bus
  • 00:12:24
    So now we have moved a number from one register to another just by turning some wires on and off
  • 00:12:29
    That's the advantage of the bus easily moving numbers between components
  • 00:12:34
    The disadvantage of the bus is that you can only have one number on it at a time
  • 00:12:39
    Because of this limitation the arithmetic logic unit uses a temporary register for input B
  • 00:12:45
    When the control unit is processing an instruction involving the ALU it will move one of the inputs to the temporary register
  • 00:12:52
    The temporary register has no need for an enable wire since it only outputs to the ALU and doesn't conflict with any other registers
  • 00:13:01
    The other input to the ALU comes directly from the bus
  • 00:13:04
    The control unit will enable another register and that number will become input a to the ALU that
  • 00:13:11
    number stays on the bus until the ALU is finished processing the instruction and
  • 00:13:16
    So now there are two inputs to the ALU and we're ready for the ALU to perform an operation
  • 00:13:22
    As we saw earlier the control unit knows what operation to tell the ALU to perform
  • 00:13:28
    Because of the instruction it receives from rim
  • 00:13:31
    The instruction itself is an another register called the instruction register
  • 00:13:36
    By the way the input wires from the bus won't affect this register since the instruction was already saved in a previous step
  • 00:13:43
    This register like the temporary register, also has no need for an enable wire since it just outputs to the control unit
  • 00:13:51
    Based upon this instruction the control unit then tells the ALU what type of operation to perform
  • 00:13:58
    So let's say the instruction. We're processing is a compare instruction with the compare instruction
  • 00:14:03
    We're not interested in the number that is output by the ALU
  • 00:14:07
    We only want to know how the two inputs compare to each other
  • 00:14:11
    For that we use the flags that we talked about earlier
  • 00:14:14
    Each flag is just a wire that turns on or off depending upon whether or not a certain condition is true
  • 00:14:21
    Inside the Scott CPU there are four flags, and we'll look at two of them now
  • 00:14:26
    The a is larger flag will turn on if input a is larger than input B
  • 00:14:31
    if the inputs are the same
  • 00:14:33
    Then the equal flag turns on and if both of these flags are off that means input B is larger
  • 00:14:40
    But in this case the equal flag is on so that means both inputs are the same
  • 00:14:46
    Once the compare instruction is over. We still need to use the flags for the next instruction
  • 00:14:51
    So we'll save them to a register that only has 4 inputs and four outputs one for each flag
  • 00:14:57
    Once the flags are set into the flags register the CPU is finished with the compare instruction and it can then request the next
  • 00:15:05
    instruction from REM
  • 00:15:07
    generally the next instruction after a compare instruction is a jump if
  • 00:15:11
    instruction this combination of a compare and a jump if instruction by the way is very common in
  • 00:15:17
    programming
  • 00:15:19
    Anytime there is more than one possible path through a program the computer is using these instructions to tell it which way to go
  • 00:15:26
    So now that we're finished with the compare instruction and our flags are saved in the flags register
  • 00:15:31
    We need to tell RAM that we're ready for the next piece of data in this case the next instruction
  • 00:15:36
    So inside the CPU another register that is very important is what's called the instruction address register
  • 00:15:44
    The CPU uses this register to know where the next instruction should come from in RAM
  • 00:15:49
    When the CPU is ready for the next instruction it enables the instruction address register onto the bus
  • 00:15:56
    eventually the instruction address will flow to RAM
  • 00:15:58
    But it doesn't get there directly there is an intermediary register called the memory address register
  • 00:16:05
    Whose only job is to tell Ram what memory address the CPU wants next since it won't always be an instruction
  • 00:16:13
    Once the instruction address is set into the memory address register it has automatically sent to RAM since the memory address register
  • 00:16:20
    Doesn't have an enable wire the control unit then turns on the enable Ram wire and RAM
  • 00:16:27
    Automatically sends back the data at that address which in this case is an instruction
  • 00:16:32
    That instruction is then saved in the instruction register, and the control unit begins processing it in
  • 00:16:38
    This case it's a jump if equal instruction, which checks to see if the equal flag is on
  • 00:16:44
    It does that by running one of its wires and the equal flag wire into a NAND gate
  • 00:16:50
    If both inputs to the and gate or on then the output wire turns on as well
  • 00:16:56
    This output wire will then trigger the jump that
  • 00:16:59
    jump eventually retrieves the next piece of data from RAM
  • 00:17:03
    Which happens to be an address and move it into the instruction address register
  • 00:17:08
    when the jump if equal instruction is over the CPU then processes the instruction at that new address at
  • 00:17:15
    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
  • 00:17:23
    So we'll add the final four wires to our CPU which are used to control the external devices like the monitor and keyboard
  • 00:17:30
    We now have a nearly complete picture of what the Scotts CPU looks like
  • 00:17:35
    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
  • 00:17:43
    Each instruction that we have seen can be processed by the Scott CPU in about 6 clock ticks
  • 00:17:49
    Modern CPUs can process multiple instructions per clock tick meaning that the computer you're using to watch this video is likely
  • 00:17:57
    processing tens or even hundreds of billions of instructions per second
  • 00:18:02
    that phenomenal speed is accomplished by using more than one of each component and
  • 00:18:07
    Making sure that all the components are active as much as possible
  • 00:18:10
    This makes modern CPUs much more complicated than the Scott CPU
  • 00:18:14
    But they are still fundamentally doing the same things as the Scott CPU
  • 00:18:19
    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
  • 00:18:25
    The right are the set RAM and enable RAM wires on
  • 00:18:28
    The top are the RAM address wires on the bottom are the data wires that run to both RAM and the external devices
  • 00:18:36
    And on the left are the input/output control wires
  • 00:18:40
    So let's zoom back out to see the rest of the chip
  • 00:18:42
    And we'll put the cover back on the CPU and put it back in the motherboard
  • 00:18:48
    Using the ports on the Left we can now plug in the cables that connect our monitor and our keyboard
  • 00:18:53
    Each of these ports has an address and that port address is what the CPU uses with an in or an out instruction
  • 00:19:00
    That port address by the way is sent using the data bus since the address bus in this computer is only used for RAM
  • 00:19:07
    So we'll zoom out to see how the motherboard fits inside the computer case in the computer case is the last component
  • 00:19:14
    we'll look at which is the hard drive as
  • 00:19:17
    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
  • 00:19:23
    Store it more permanently for that we use a hard drive
  • 00:19:27
    Inside the hard drive is a spinning disk covered in tiny magnets with a small metal arm floating above it
  • 00:19:34
    The arm moves around to the different parts of the disk where a different data can be stored and retrieved
  • 00:19:39
    The disk and the arm generally move very very quickly, but nowhere near as fast as the CPU can process data
  • 00:19:47
    For this reason all the data from the hard drive must first be moved to RAM before it can be processed
  • 00:19:53
    So we'll put the hard drive back inside the computer and zoom out here. We can see the program
  • 00:19:58
    We just ran and the message telling the user that he guessed correctly
  • 00:20:02
    So now you've seen the very basics of how a computer processes information
  • 00:20:06
    You'll find much more about the Scot CPU in the book at the website, but how do it know comm?
  • 00:20:13
    Also, there are a few small differences between the book and the video
  • 00:20:16
    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.
  • 00:20:20
    Whatever you do, work at it with all your heart, as working for the Lord, not for human masters -Colossians 3:23
الوسوم
  • CPU
  • Computer Architecture
  • 6502 CPU
  • Scott CPU
  • RAM
  • Registers
  • ALU
  • Clock
  • Motherboard
  • Instruction Set