Inside the CPU - Computerphile

Поділитися
Вставка
  • Опубліковано 21 бер 2017
  • Bubbles in the pipeline? Some of the basic operations at the heart of the CPU explained by Dr Steve Bagley.
    EXTRA BITS: • EXTRA BITS: Inside the...
    Why CPUs Need Caches: • Why do CPUs Need Cache...
    The Perfect Code: • The Perfect Code - Com...
    Microsoft Hololens: • Microsoft Hololens - C...
    / computerphile
    / computer_phile
    This video was filmed and edited by Sean Riley.
    Computer Science at the University of Nottingham: bit.ly/nottscomputer
    Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

КОМЕНТАРІ • 280

  • @amaarquadri
    @amaarquadri 3 роки тому +77

    If anyone wants to understand this stuff at a very fundamental level, I would highly recommend Ben Eater's series on building a breadboard computer.

    • @basil9633
      @basil9633 2 роки тому +3

      aye i was just watching that

    • @bernhardschmidt9844
      @bernhardschmidt9844 2 роки тому +2

      @Supreme the large-ish black boxes used in the breadboard computer series are integrated circuits, essentially a packaging around the actual logic gates to make it possible to handle as a human. There's a tiny assembly somewhere in there with the actual logic gates, connected to the IC's outside connectors via tiny wires.
      The logic gates in a modern CPU are even more miniaturized, of course. As for where they are in a CPU, well, they pretty much make up the entire thing, storage (lots of caching going on in a modern CPU, also some microcode) and wiring connections (most of the cpu's package is filled up with wiring that connects to the connectors on the bottom; the actual cpu is only a few square centimeters in the center) aside.

    • @BAgodmode
      @BAgodmode Рік тому +1

      He’s fake. He admits he uses boards.

  • @pixlize
    @pixlize 7 років тому +200

    I always love this low level computer stuff. I would like to see things go even a little bit lower, like what exactly executing a command looks like in mathematical terms though

    • @somethingsomeone5440
      @somethingsomeone5440 5 років тому +72

      If you really want to know then check out Ben Eater he builds the various pieces of a computer on breadboard and over several videos you start to see and understand how computers do their thing. After watching and realizing how much goes into the simplest of tasks it really puts into prespective how amazing something like the smart phone is. It's truely magic.

    • @MetallicDETHmaiden
      @MetallicDETHmaiden 5 років тому +6

      lower? so...Algebra

    • @IainEmslie
      @IainEmslie 5 років тому +14

      10101010110011001010111011101100

    • @42norbert
      @42norbert 5 років тому +6

      you know, i think on the level of binary digits these things have structure of boolean algebra, that is kind of abstraction over physical device, ( like usually math)

    • @The2Coolest2
      @The2Coolest2 5 років тому +3

      Some is boolean algebra, which is then broken down to transistor levels. Most transistors use Silicon in their construction, hence, "Silicon Valley". Other's uses more complex circuits, which those can be broken down to boolean algebra, etc, etc

  • @andreydunin6712
    @andreydunin6712 2 роки тому +21

    I’m watching many of these years after publishing and extremely grateful for these explanations! You truly have a talent for teaching.

  • @Nagidal146
    @Nagidal146 7 років тому +89

    That on the pen distracted me for about 2 minutes

    • @GoodOlKuro
      @GoodOlKuro 7 років тому +5

      He probably broke some rule by writing something else than c with it.

    • @Neceros
      @Neceros 7 років тому +9

      Autism doesn't have medicine, KiloSierra.

    • @TheHereticAnthem20
      @TheHereticAnthem20 6 років тому +3

      C sharpie

    • @fullyautistic4760
      @fullyautistic4760 4 роки тому

      i feel u man :P

  • @vladomaimun
    @vladomaimun 7 років тому +26

    I hope this turns into a series. More on this topic please!

  • @retrogamer33
    @retrogamer33 7 років тому +18

    Some lovely computers in the background

  • @SerandibBroadcast
    @SerandibBroadcast 3 роки тому +6

    Sir, Thank you for doing this lesson. I m sitting for BCS HEQ exams this november and this channel is my source of knowledge. I always find it difficult to understand that bubble concept in the pipeline, but now I do. thanks again.

  • @DaveSohan
    @DaveSohan 6 років тому +2

    I have a Computer Architecture exam tomorrow. I am so glad that youtube recommended me to watch this. Thanks Computerphile

  • @syntaxerorr
    @syntaxerorr 4 роки тому +4

    Love the computerphile logo on the end of the marker.

  • @turbowhine360
    @turbowhine360 4 роки тому +3

    Thanks, Dr. Bagley, you are an excellent public speaker and explained the CPU cycle quite clearly.

  • @TheDuckofDoom.
    @TheDuckofDoom. 7 років тому

    oh boy I hope there is an extended or part two, so many interesting options in CPU functioning, also a vid for GPUs and openCL (GPU for non graphics computation) to contrast with the CPU.

  • @claytondefreitaslima1169
    @claytondefreitaslima1169 7 років тому +23

    3:15, that's a very big "ish"

  • @tiikoni8742
    @tiikoni8742 7 років тому +93

    I think it would have been worth of at mentioning that executed instuction may also cause program to jump to different part of code. Therefore executing next command that is already in pipeline would be invalid and whole pipeline need to be flushed before continuing.

    • @SamuelLopesGrigolato
      @SamuelLopesGrigolato 7 років тому +2

      Tiikoni And maybe also that the execution of a pipelined instruction may override the value of a memory address already read by the fetch module? In this case a partial flush is also necessary, I think. Although it must be noted that changing the code section of memory is not a "usual" thing to do.

    • @Flankymanga
      @Flankymanga 7 років тому

      This is exactly why it is a bad habit to use "'goto" in programming languages....

    • @TheNatureShade
      @TheNatureShade 7 років тому +8

      That's what branch prediction is for

    • @WildEngineering
      @WildEngineering 7 років тому +3

      Neural networks ftw

    • @jeffirwin7862
      @jeffirwin7862 7 років тому +24

      @Flankymanga That's not the problem with goto. Need an if() statement? That's a jump. Need a for() loop? That's a jump. Need to call a function? That's also a jump. The problem with "goto" is that it makes code hard to read for puny humans.

  • @detaart
    @detaart 7 років тому

    Serious bonus for using the SGI/Irix buttonfly buttons in your animation!

  • @RedSkyHorizon
    @RedSkyHorizon 7 років тому +1

    I noticed your Amiga 1000 in the corner. I also had owned this machine back in 85/86. Good times!

  • @ThunderDash42
    @ThunderDash42 7 років тому +8

    Great video! Could you guys also cover on different instruction sets for processors? Since I always found the difference between x64, x86 , RISC to be confusing. Would be awesome if you could make a video on it :)

  • @MonkeyspankO
    @MonkeyspankO 7 років тому

    nice collection in the background!

  • @rdvqc
    @rdvqc 7 років тому +5

    Next you introduce memory interleave architectures.
    Enjoyable video - takes me back - wrote my first program in '69

  • @musikvgen
    @musikvgen 5 років тому

    excellent! animation and description wise..

  • @wp5355
    @wp5355 4 роки тому

    Excellent presentation!!

  • @noevelasquez5109
    @noevelasquez5109 Рік тому

    Very HELPFUL video...thanks so much !!!

  • @machinegunkelly2112
    @machinegunkelly2112 7 років тому +54

    I like how he points with his middle finger.

    • @GoodOlKuro
      @GoodOlKuro 7 років тому +10

      after all it is usually the longest one. back when i was in school some teachers would do this and it was awkward or funny at first but it makes some sense.

    • @wierdalien1
      @wierdalien1 7 років тому +5

      GoodOlKuro its also held to be rude to point with index

    • @xXMegaUltraNinjaXx
      @xXMegaUltraNinjaXx 7 років тому +2

      also is in the middle of the hand.

    • @TheUtuber999
      @TheUtuber999 5 років тому

      At least he didn't point with the V sign.

    • @BangMaster96
      @BangMaster96 5 років тому

      I used to point at things on paper with my middle finger, until my friend start correcting my every time i used the middle finer, and now, i no longer do it lol

  • @dinoflame9696
    @dinoflame9696 6 років тому

    Best video to explain execution of process in cpu

  • @psyience3213
    @psyience3213 5 років тому

    Really good explanations.

  • @gmpgreen
    @gmpgreen 7 років тому

    Nice video! would interesting if he went more in depth into pipelining hazards

  • @TruthSoothsayer
    @TruthSoothsayer 2 роки тому

    I still have question. How does Assembly Language which is a software code communicates with Silicon Chip which is a hardware i.e. how is conversion done to chip of assembly language.

  • @neoness1268
    @neoness1268 Місяць тому

    Excelente explanation! THanks!

  • @TheDeanosaurus
    @TheDeanosaurus 7 років тому

    Great refresher.

  • @xZise
    @xZise 7 років тому +11

    Generally a cool video, but I think you should've split it into one about pipelining (there are other hazards as well like conditions). And then you (or Steve actually) could have expanded about the actual steps inside the CPU. I saw a video recently of someone building a CPU (+ Memory) on breadboards using separate chips for the registers and so on. And I found that video really helpful to see what actually means "fetching", "decoding" and "executing".

    • @Ordcestus11
      @Ordcestus11 7 років тому +4

      Fabian Neundorf , Can you link that video? Id be very interested to see it.

    • @tjeulink
      @tjeulink 7 років тому

      please link that video ;-;

    • @xZise
      @xZise 7 років тому

      PureMotionHD well in my reply I linked it. if it doesn't show up, search for "Ben Eater" who is the uploader.

  • @danielgrace7887
    @danielgrace7887 7 років тому

    Informative video, and interesting. Thanks.

  • @patrickc.6183
    @patrickc.6183 4 роки тому

    When multiple steps are occurring in the CPU at the same time, is that how simultaneous multi-threading works on an AMD CPU (or hyper-threading on Intel)?

  • @frechjo
    @frechjo 7 років тому

    Does anyone know how many reviews does it take for subs to get approved? Or how it even works?
    I got some ppl to review my Spanish subs, but they don't appear yet (in this video nor the MegaProcessor one).

  • @Mebzy
    @Mebzy 7 років тому

    Awesome video!

  • @karlkastor
    @karlkastor 7 років тому +1

    What about the Memory Access and Write Back phases?

  • @melkiorwiseman5234
    @melkiorwiseman5234 5 років тому +1

    You folks should insert a link to Ben Eater's "Building an 8-bit Breadboard Computer" series right here on YT. He's brilliant at simplifying the complications of a CPU to a level which the ordinary person can understand.
    The Breadboard Computer which Ben Eater builds and explains over the course of the series can be built by anyone. The only really big complication is finding all of the parts because some of them have become quite scarce since the book which Ben used as his guide was written.

  • @AccuphaseMan
    @AccuphaseMan 4 роки тому

    The part when he mentions the 15 byte instructions on X86 reminded me of ROP. I Guess this is why ARM is so much more secure.

  • @nostromo9081
    @nostromo9081 3 роки тому +1

    Thank you Bilbo. You are my IT mithril.

  • @hamzanasir1590
    @hamzanasir1590 3 роки тому +4

    Respected Sir.
    Your explanation is very amazing. I have a great interest in low level computer stuff. Keep making these kind of videos. 👍👍👍

  • @WickedMuis
    @WickedMuis 7 років тому +79

    So..next: Hyper Threading?

    • @Armi1P
      @Armi1P 7 років тому +17

      More universally, Symmetric Multi-Threading (SMT).
      Edit: sorry, *Simultaneous* multithreading (SMT)

    • @Luredreier
      @Luredreier 7 років тому

      Yeah, but you'd need a CPU with more instruction level parallelism if you want SMT to make sense then what this example provides.

    • @xeigen2
      @xeigen2 7 років тому +2

      SMT means Simultaneous multithreading

    • @Armi1P
      @Armi1P 7 років тому +4

      Xei Yes, thanks for the correction!

    • @aliedperez
      @aliedperez 7 років тому +8

      I'd suggest out-of-order execution

  • @Flankymanga
    @Flankymanga 7 років тому

    Isnt it possible today to have on a dual channel common DDR RAM to have multiple parallel accesses?

  • @SevenDeMagnus
    @SevenDeMagnus 4 роки тому

    Cool, is the register a kind of memory, a kind of cache?

  • @BariumCobaltNitrog3n
    @BariumCobaltNitrog3n 7 років тому +3

    Is there an animation of this anywhere? The mechanism that fetches the bits and bytes, how it corrals them and brings them back. What is moving, electrons? If they move, how does a copy stay behind? Or is it like Morse code where a signal is sent by the storage using some sort of transmitter that reads the info and sends out what it reads. I'm trying to imagine this tiny world where nothing moves, but a lot happens.

    • @melkiorwiseman5234
      @melkiorwiseman5234 5 років тому

      Look up Ben Eater here on YT and look for his Breadboard Computer series of videos. He's fantastic at simplifying the complicated.

  • @sludge-en9on
    @sludge-en9on 7 років тому

    thankyou for sharing the video its very helpful

  • @lm5050
    @lm5050 7 років тому +1

    What are "threads" and how do they emulate a CPU on a virtual machine?

  • @ozdergekko
    @ozdergekko 7 років тому

    Oh the times of the 6510 on the C64.
    I could read (and disassemble) hex code like reading a book. Modifying the OS, writing cracks and use the space used by the copy protection code for more useful stuff was so easy back then.

    • @gregorymalchuk272
      @gregorymalchuk272 3 роки тому

      What assembler did you use? I didn't think the Commodore 64 had an assembly monitor in rom like the Apple 2 did.

  • @maazsiddiqui6324
    @maazsiddiqui6324 3 роки тому

    please any one explain how cpu is outputing it on the screen i cant find anywhere!

  • @TesterAnimal1
    @TesterAnimal1 3 роки тому

    That green barred line printer paper is a blast from the past! Is it manufactured seriously any more, or is that just for fun?
    I used to load deafening band printers with that stuff, and it would frequently mash it all up, and the whole print job would have to be redone.

  • @ProWhitaker
    @ProWhitaker 7 років тому

    Thanks for the video

  • @BunnyFett
    @BunnyFett 7 років тому

    Love this guy.

  • @BlueFrenzy
    @BlueFrenzy 6 років тому

    I still have a big question: how does this translate into transistors? the piece piece I am missing of the puzzle is how adding more transistors increases the speed, specially knowing that there are tasks that require to be sequential.

    • @melkiorwiseman5234
      @melkiorwiseman5234 5 років тому

      Just adding more transistors doesn't increase the speed, but some programs can be structured so that several parts of the program can be run at the same time, only in different parts of the CPU. In that case, "more transistors" equals more "cores" in the CPU, allowing it to literally do more than one thing at a time.
      But as you guessed, this does not increase speed where all parts of the program have to be run in sequential order.

  • @shaantalk
    @shaantalk 7 років тому +1

    Request: please do seperate video on two types of KERNEL...

  • @luvnenvysyafiq
    @luvnenvysyafiq 7 років тому +1

    cant the bubbles be removed if the instruction memory and data memory were seperate? the structural hazards can be avoided that way since we can access both at the same time

    • @JakeN482
      @JakeN482 7 років тому +3

      This is actually why CPUs have multiple caches in series and parellel; The instructions and stack variables tend to be towards one end (or both ends) of allocated memory, while heap variables are towards the other end (or the middle). While the bubble can still exist, it's toned down many orders of magnitude, and still allows the possibility of treating instructions and data interchangably.

  • @jeraldambrose4080
    @jeraldambrose4080 7 років тому +5

    Woweee..This is like seeing your street on TV.. Ex-intel cpu and current ARM cpu group engineer checking in..Any fellow computer uarch/arch folks?

    • @lotrbuilders5041
      @lotrbuilders5041 7 років тому +2

      skeptic youravg so where did you study and what (from someone genuinely interested in the career)

    • @jeraldambrose4080
      @jeraldambrose4080 7 років тому +1

      Electrical Engineering (courses in computer Arch & Digital design).. Arizona state univ..

    • @Conenion
      @Conenion 7 років тому +2

      Cheers! I worked for ARM Gemany about 7 years ago. In the simulator group. They had a just in time ARM to x86 translator (done by a goup in the UK) and a GUI tool to build entire SoCs from ARM parts (done by us). You stiched your SoC together in the GUI and a simulator of that system was built by generating code and compiling it to an executable.
      Interesting stuff. Sadly they closed the site.

    • @jeraldambrose4080
      @jeraldambrose4080 7 років тому +1

      ARM is hiring like crazy right now..plans to double in the UK in the next few years..You can still make it back :)

  • @draconicepic4124
    @draconicepic4124 7 років тому

    CPU is way more complicated than the video entails. Modern processors do all types of things to keep the pipeline filled such as pulling more data than required. For example: rather than fetching one instruction at a time, it could fetch an arbitrary volume of memory (let's say 64 bytes). It would then decode as many instructions as it could from that block and prefetch the next block when the fetch bus isn't in use. Then, it can cache the decoded instructions to prevent fetching and decoding recent code. The CPU can also make notes about the instructions prefetched to predetermine holes in pipeline and try to fill them by reorganizing instructions. This also helps with branch prediction and register renaming.

  • @MPK1881
    @MPK1881 Рік тому

    Thanks a lot for sharing the knowledge, about the necessity for Harvard architecture.

  • @majortw
    @majortw 6 років тому +1

    You can try this with the Johnny-Simulator. Nice tool

  • @ag4ve
    @ag4ve 7 років тому

    Can you explain the "on an ARM processor all instruments are 32 bits long"? I'm going to take that to mean "the same bit length" vs 32 bits. But besides that, I remember doing ASM on a NXP chip and some instructions take a few cycles. But I could've swarn some of the Java and thumb 2 stuff had a different instruction length...?

    • @ag4ve
      @ag4ve 7 років тому

      Cool, so I was half remembering correctly... It's been a while, so that's kinda cool to know :)

    • @Conenion
      @Conenion 7 років тому

      Btw, I searched on the ARM infocenter site first, but the Keil explanation was the best I found.

    • @cigmorfil4101
      @cigmorfil4101 6 років тому

      The (original) ARM processor used 32 bits (4 bytes) to encode its instructions unlike the 6502 which used 8 bits (1 byte) to encode its instructions (a lot of bit patterns were not used).
      The 6502 used synchronous memory access - every clock cycle it read/wrote memory, and so used a single byte program counter pipeline - the next byte of the program (instruction/data) was being read: in his example of A9 43 when the A9 was being decoded the 43 was loaded, executing the instruction shifted the 43 to the A reg so whilst that was being done the next instruction 20 was being read in, and so on.
      The biggest problem with bubbles (in the pipeline of the 6502) was branch instructions - they could take 2, 3 or 4 clock ticks to execute (2 if no branch, 3 if branch to memory with the same page number (top 8 bits of address), 4 to a different page).
      Most instructions take 2 clock ticks plus extra tick if absolute addressing (3 bytes long) plus extra ticks for different addressing modes (causing bubbles).
      The ARM processor executes near enough 1 instruction per clock tick by avoiding branching (bubbles in its pipeline) by using some of the 32 bits of the instruction as a condition - the instruction only executes if the condition is met (there is the condition TRUE which means the instruction is always executed).
      I'm trying to remember but i think the 32 bits may have included memory addresses and immediate data.

  • @preferredimage
    @preferredimage 7 років тому

    BBC Micro with a zip drive attached? What sorcery is this?!! Also, nice shelf usage, much better than the other guy! :)

    • @LeFrez
      @LeFrez 7 років тому

      and being displayed on an Atari monitor, sweet.

  • @mauricewalker2254
    @mauricewalker2254 4 роки тому

    It is nice to learn the basics of a computer. It gives you the confidence to use your computer. I think l was born too soon and l am playing catch up.

  • @BrianBlock
    @BrianBlock 7 років тому

    Every time he touched and left a fingerprint on the monitor my soul hurt :) In all seriousness though, great video!

  • @AshenElk
    @AshenElk 7 років тому +2

    2:15 "You could do this, or this... Although it would probably crash *furrowed brow*." Lol

  • @danielnicolae99
    @danielnicolae99 Рік тому

    So how does the cpu get the first address loaded on its program counter in the first place?

    • @handleh
      @handleh Рік тому

      It's always starts at address 0 or some predefined address I guess

  • @saitaro
    @saitaro 7 років тому +5

    This video needs 65536 views.

  • @KuraIthys
    @KuraIthys 7 років тому

    Interesting that you give an example of a system where most of the parts of the CPU are idle, then compare it to a 6502...
    Which does instruction decoding and execution in parallel. (it's like a short, 2 stage pipeline, but not quite.)
    compared to some other processors from the era the instruction times for 6502 code were very short and consistent.
    I miss The 65x family. But it died out because it's entire design is built around having RAM that is faster than the processor.
    And since the mid 90's it's pretty much guaranteed that the processor is faster than RAM.
    That's why cache memory exists. If your main memory was fast enough you wouldn't bother implementing a cache, because it would be redundant. But... When main memory is slow... Cache helps keep the CPU busy...

  • @p.z.8355
    @p.z.8355 6 років тому +4

    1h30 min of lecture compressed into 11min15s.

  • @hiamben
    @hiamben 7 років тому

    Cracking vid.

  • @hoenki1
    @hoenki1 7 років тому

    thumb2 instructions are 32 bits, in thumb1 there are some 16 bit long instructions

  • @dylanfisher6042
    @dylanfisher6042 3 роки тому

    Can this pipeline ‘bubble’ dilemma be a solution quantum computing can solve with its ability to compute instructions simultaneously regardless of a cycle?

  • @davidprock904
    @davidprock904 3 роки тому

    You forgot to mention the Prock Architecture... oh wait , I haven't released it yet, its better that anything out there!

  • @tensevo
    @tensevo 3 роки тому +1

    Each cycle:
    Fetch instruction from memory
    Decode instruction
    Execute instruction

  • @RagHelen
    @RagHelen 6 років тому +1

    Why not enhance the staccato speaking manner with staccato jump cuts?

  • @flyingrat492
    @flyingrat492 2 роки тому

    Well my wonderful peoples, I've been searching far and wide and I am yet to find an answer, how does the computer actually generate the clock pulse that determines the speed. Is it a tiny capacitor being charged and discharged as i suspect or am I completely wrong and is it something entirely different. The internet seems stumped by this and I can only seem to find videos like this telling me the software side of things. I would be much obliged to recive any information about this subject and would greatly apreciate some further reading links.
    -yours sincerely, some random internet person

  • @goeiecool9999
    @goeiecool9999 7 років тому

    What's up with that into? Looking away and then at the camera? Is that some kind of cinematography trick? It just looks kinda awkward to be honest.

  • @vieuxparchemin5350
    @vieuxparchemin5350 2 роки тому

    Thx!

  • @WeAreGRID
    @WeAreGRID 7 років тому

    so if the pipeline infrastructure cant fetch a command and execute a command at the same time,
    doesnt that just mean you need another data bus?
    It seems to me that if you need one data bus for fetching instructions and another for accessing memory, that you should have every possible part necessary to execute a command redundant and in parallel, basically one bus for accessing memory, one for fetching instructions, a decoder for both, and then no matter what the instruction says, you always have a bus ready for it to be used on the next tick, so you always have an incoming pipeline and a parallel pipeline for things required in the actual instruction.
    If you have pipeline flow issues, make the pipe bigger or in parallel :P

  • @victorwarner2734
    @victorwarner2734 7 років тому

    why do these videos not have captions?

  • @-.._.-_...-_.._-..__..._.-.-.-
    @-.._.-_...-_.._-..__..._.-.-.- 7 років тому

    It's all coming together. Thanks.

  • @markuseby5267
    @markuseby5267 7 років тому

    Doesn't the cu fetch and decode. And the alu execute? Then the cu stores back in ram or cache

    • @markuseby5267
      @markuseby5267 7 років тому

      Register not cache

    • @meJevin
      @meJevin 7 років тому

      "Register not cache". registers can be considered cache too.

  • @ihaveneverwantedto
    @ihaveneverwantedto 4 роки тому +1

    So I cannot estimate his age be looking at him, at all. I googled "Dr Steve Bagley"and it auto-completed to "Dr Steve Bagley age", so clearly someone else thought the same thing.

  • @Pedritox0953
    @Pedritox0953 4 роки тому

    Steve is a rockstart of computing

  • @Kowalskithegreat
    @Kowalskithegreat 7 років тому +17

    i can't deal with these marker sounds

  • @baskoning9896
    @baskoning9896 7 років тому

    Do one on vault 7 backdoor in cpu's

  • @stutavagrippa8690
    @stutavagrippa8690 4 роки тому

    If we have a pipelined CPU, and the instruction needs to access something that will cause a bubble, why don't we just add some address buses?

  • @Booskop.
    @Booskop. 7 років тому +1

    It will be alright, yeah.
    Rock the cache-bah.

  • @jamesmnguyen
    @jamesmnguyen 7 років тому

    Cool how I already learned pipelining basics before this video. Too bad he didn't go into branching, although that's a bit much for one video.

  • @walkieer
    @walkieer 5 років тому

    How does the CPU know how to draw the character? Is it coded within the CPU itself?

    • @melkiorwiseman5234
      @melkiorwiseman5234 5 років тому

      The CPU doesn't "know" anything. Usually, in a Windows system, the CPU has to run a sub-program which translates the numeric value into the graphic for that letter or other character (eg 65=A).

  • @papacanfly5639
    @papacanfly5639 3 роки тому +2

    anyone allergic to the sound of that sketch pen sounding "shhhhh shhhhh shh"?

  • @tracktor1979
    @tracktor1979 2 роки тому

    I still don't get what's actually happening inside the CPU. How does it "know" to put a value in the point counter? How do the CPU and memory "talk" so that the memory knows, or is forced to send, an instruction from a specific address? Why does running two voltages (1s and 0s) through a CPU do anything? Seems like the CPU "knows" certain instructions, but where does the "knowing" come from?

  • @tiagoaoa
    @tiagoaoa 7 років тому

    dataflow, forget about the von neumann model.

  • @matjailbrek
    @matjailbrek 5 років тому

    Les kitKat un délice ! #Epitech

  • @IRCXDS
    @IRCXDS 7 років тому

    Before CLUs. There was nothing. I want to know how they ŵent rom nothing to something as complicated as a cpu.

  • @SameAsAnyOtherStranger
    @SameAsAnyOtherStranger Рік тому

    An explanation of how CPUs using the compliance model of everything.

  • @isyt1
    @isyt1 2 роки тому +1

    Interesting but I don’t understand how in the past there was a race with CPU manufacturers to have the highest number of MHz and that basically said how fast the CPU is.
    Why is that no longer a thing?

    • @Rachit0904
      @Rachit0904 2 роки тому +1

      It was mostly just marketing. The same CPU running at double the MHz can theoretically perform calculations twice as fast. But you can also design the CPU to do more at slower speeds. It's no longer a thing because a) consumers realised that MHz only tell part of the story, and b) higher frequencies are exponentially harder to keep cool and stable

    • @dmitripogosian5084
      @dmitripogosian5084 Рік тому +1

      Basically to increase clock speed you need to pack transistors closer to each other, as well as evacuate the heat from smaller volume, and physical limits have been approached

  • @gerrygamez
    @gerrygamez 7 років тому

    Funny, I gave a presentation on this topic in school today.

  • @CarlTSpeak
    @CarlTSpeak 6 років тому

    A 15 byte instruction? Holy cow.

  • @nO_d3N1AL
    @nO_d3N1AL 7 років тому +2

    It'd be interesting to know how some modern CPUs are able to achieve 16 instructions per cycle

  • @potatoonastick2239
    @potatoonastick2239 7 років тому

    I don't really get what the decoding is supposed to do, can't you just execute a piece of code after you fetched it?

    • @DavidChipman
      @DavidChipman 7 років тому

      But in order to execute it you have to know what it does. Is it a math operation? Is it a compare? Is it testing for flag settings? Is it accessing a memory location?

    • @potatoonastick2239
      @potatoonastick2239 7 років тому

      arcuesfanatic that makes sense to me. Since you seem to know a lot about this, why is it that when an assembly instruction uses for example the hex code 22FF, in assembled machine code it becomes FF22? Things are written backwards for some reason

    • @JakeN482
      @JakeN482 7 років тому +1

      It really depends on the architecture, but the general idea is the instruction might not neccessarily be an atomic instruction. For example: var += 5 in most C family languages translates to var = var + 5. Some CPUs might implement a += operator in addition to the regular + and = operators. This allows the program's footprint in memory to be effectively two instructions shorter. The CPU would probably have the operation implemented in it's decoder by inserting load(var) -> add(5) -> save(var) atomic instructions into the instruction queue, rather than implementing a circuit for doing all three at once in the arithmetic operators unit.

    • @computerfis
      @computerfis 7 років тому +1

      I suggest you read about endianness en.wikipedia.org/wiki/Endianness (:

  • @schwarzarne
    @schwarzarne 7 років тому

    Why would you need 8^15 bit long instructions? I knew x86 was somehow suboptimal by todays standards, but that is just crazy!

  • @nices1mulation156
    @nices1mulation156 7 років тому

    Can someone recommend me a good Computer Architecture book?

    • @melkiorwiseman5234
      @melkiorwiseman5234 5 років тому

      I'd suggest as a primer, Ben Eater's Breadboard Computer series here on YT.

  • @NKP723
    @NKP723 7 років тому

    Inside the CPU huh? Can this help me find my Xeon processor that I lost?