Coding Communication & CPU Microarchitectures as Fast As Possible

preview_player
Показать описание
How do CPUs take code electrical signals and translate them to strings of text on-screen that a human can actually understand?

Рекомендации по теме
Комментарии
Автор

I still don't know how any human being ever invented a transistor. Who the hell got the idea that arranging a few atoms of silicone together and turning them on and off would lead to full-fledged computers?

The very design of computers amazes me, and mostly because I don't know how they were ever invented. such complexity, it seems hard to fathom someone stumbling upon the idea.

Imagine a world with no computer, and then you have this idea to build one, and somehow figure out how to make it understand and process human language code (inventing this compiler program too) AND inventing a screen that is capable of receiving processed information to project an image that makes sense to us.

Utterly insanely.

At any rate, damn am I glad someone figured it out, life is literally a new world with computers.

It does make you wonder though, go back 500 years and all the people back then were operating under the same laws of physics and had the same resources. They could of had computers, had they just of known to combine the right amount of materials together to process computers and electricity. So, can you even imagine what we're missing now? What will be obvious in 500 years from now, that we haven't the faintest clue about now?

UnknownXV
Автор

"Hey, that processor is going a little too fast. We're going to have to give you a ticket."

roxasmaker
Автор

Instructions unclear, over clocked my car. Killed people in front of my car. Voided my warranty.

bennyuoppd
Автор

2015: “An average cpu has millions of transistors”
2019: . . .

WhateverTechComestoMind
Автор

We're designing a basic CPU (not every instruction is available, just basics like add, subtract, move, store, load, compare etc) for our Computer Science class right now and it's awesome. I'll add a little snippet of blabber for anyone a little bit more interested in the specifics of how you go from 1s and 0s into instructions. It's kind of hard to condense into simple terms, and I might just sound like a madman talking about nonsense, but hopefully it might explain something!

A compiled program is just a list of instructions. An single instruction would be something like "add r0, r1, r2" which means we want to add the value in register 1 with the value in register 2, and store that result in register 0. Say we are using 32 bit architecture, this means that each instruction we use is represented by 32 digits of 1/0s. We split these 32 bits up into different parts to represent information about what instruction we want to run. The CPU takes an instruction, splits it up, and does the various instructions based on what was fed in.

So for example in the ARM architecture, the leftmost 4 bits represent the condition of the instruction. If it is 1110, that means we should always run the instruction. If it is 0001, that means we should only run the instruction if our condition flags are set to "not equal". We would have to run a compare instruction beforehand to compare 2 numbers which would set the condition flag registers (like "cmp r0, r1" which compares the value in register 0 with the value in register 1, and sets our condition flags to show the results of the comparison telling us stuff like if it is greater than, less than, equal to).

A typical instruction would (for a data-processing instruction) would have 4 bits of conditions, 2 bits of "op" (representing what kind of instruction we are using, e.g data processing vs memory, 6 bits of "funct" (this tells us what our actual instruction is, for example add which is represented by 0100), 4 bits of Rn (the register that contains the value we are using for the instruction), 4 bits of Rd (the register where we store the result, e.g. 0011 in binary means 3, so we store the result in register 3), and 12 bits of Src2 (the second value we are using which can either be another register, or an immediate value). So with "add r0, r1, r2", Rd is 0000, Rn is 0001, and Src2 contains 0010 (along with some other information like bit shifting and such).

mortl
Автор

Put your pins where i can see them! now... slowly exit the motherboard... did you know you were driving with a busted RGB?? you also didn't slow down for the t-junction

alikhoobiary
Автор

As a Computer Engineering major, I'm proud to say that this is actually a reasonably good explanation.

austinwachukwu
Автор

Finally someone who explains this well.
Good video. :)

Shady
Автор

I've been researching CPU Architectures for about 5 hours and this one video explains it better than anything else I've seen in that time. Well done mate.

larrylentini
Автор

Did he say "millions of transistors?"
Try billions. The Xeon from 2012 has around 5 BILLION transistors.

justSomeUserOnYT
Автор

2:15 As a CS student, I might be taking a bit too much pleasure when hearing that my hobby is immensely complicated.

hydrochloricacid
Автор

code is compiled into assembly, and from there to binary irc

ingolfura.
Автор

i didnt really learn anything new,
but for some reason looking at that cpu graphic. while thinking about boolean logic, and my computer running in front of me in its entirety..
it was just a really awe inspiring moment

ministerofpropogandaii
Автор

The processor die at 1:45 is a 6502 :)

oddball
Автор

I have tried to explain this topic for friends but i have never come close to the quality of this explanation. Well done Luke

reidarcederqvist
Автор

I'm in the first year of system's engineering and I learned this today, so awesome to know this already lol

juancruzfernandez
Автор

Cool coincidence: the laptop at 0:44 was what I used for every one of my programming projects through college. The layout is still my favorite laptop layout (if only the up arrow replaced the right side of the right shift key, rather than being squashed).

qszwax
Автор

GJ Slick, that's a really tricky few topics to try and break down into layman's terms, let alone doing them together in a 4 minute video. Out-fucking-standing dude.

I'm curious how long it took to actually script this episode #becausereasons

ChrispyNut
Автор

This guy is very clear. Never though it was possible to talk something like that in just 5 minutes. The script is very good and great edition.

bytefree
Автор

Not all languages run through a compiler though; some go through an interpreter, which is a program that rather than translating your code into machine-understandable bits and bytes, runs the program directly instead. Python, Ruby, and JavaScript are such examples.

About the instruction sets: The labelling for 64-bit architectures varies from website to website. Some write it as x86-64, some write it as x64, and some again write it as AMD64. These all refer to the same thing, the name just varies depending on who you ask.

NikolajLepka