Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,180 --> 00:00:04,894
Before we get our hands dirty with
learning how to build a computer,
2
00:00:04,894 --> 00:00:06,540
let's talk theory first.
3
00:00:06,540 --> 00:00:09,051
In an earlier lesson,
we talked about binary and
4
00:00:09,051 --> 00:00:11,640
how computers perform calculations.
5
00:00:11,640 --> 00:00:16,870
Remember that our computer can only
communicate in binary using 1's and 0's.
6
00:00:16,870 --> 00:00:21,577
Our computers speak in machine language
but we of course speak in human
7
00:00:21,577 --> 00:00:26,623
languages like English, Spanish,
Mandarin, Hindi, you get the idea.
8
00:00:26,623 --> 00:00:30,625
If we want to communicate with our
machines we have to have some sort of
9
00:00:30,625 --> 00:00:35,248
translation dictionary, just like if I
wanted to say something in spanish I'd
10
00:00:35,248 --> 00:00:38,520
look it up in an English
to Spanish dictionary.
11
00:00:38,520 --> 00:00:41,600
Well our computers have
a built in translation book.
12
00:00:41,600 --> 00:00:46,115
In this lesson we'll dive deeper into how
our computer translates the information we
13
00:00:46,115 --> 00:00:48,698
give it into instructions
that it understands.
14
00:00:48,698 --> 00:00:52,313
RIght now you're probably using a web
browser, music player, text editor or
15
00:00:52,313 --> 00:00:54,450
something else on your computer.
16
00:00:54,450 --> 00:00:57,211
We interact with these
applications on a daily basis,
17
00:00:57,211 --> 00:00:59,019
they're referred to as programs.
18
00:00:59,019 --> 00:01:03,260
Programs are basically instructions
that tell the computer what to do.
19
00:01:03,260 --> 00:01:06,908
We typically store programs on
durable media like hard drives,
20
00:01:06,908 --> 00:01:11,500
you can think of programs like cooking
recipes, we keep these recipes all stored
21
00:01:11,500 --> 00:01:15,110
together in a cookbook,
just like apps stored in a hard drive.
22
00:01:15,110 --> 00:01:19,205
Now we want to make a ton of food, so
we hire a chef to follow our recipes and
23
00:01:19,205 --> 00:01:21,440
whip up something good.
24
00:01:21,440 --> 00:01:25,494
The faster our chef works,
the more food she'll prepare,
25
00:01:25,494 --> 00:01:30,763
the chef is our CPU she processes the
recipes, we send her and makes the food,
26
00:01:30,763 --> 00:01:35,960
our chef works super fast so fast that
she can cook faster than she can read.
27
00:01:35,960 --> 00:01:39,350
So we take copy of the recipes and
put them into RAM.
28
00:01:39,350 --> 00:01:43,959
Remember that RAM is our computers short
term memory, it stores information in
29
00:01:43,959 --> 00:01:48,313
a location our CPU can access it faster
than they could with our hard drive.
30
00:01:48,313 --> 00:01:49,969
Now we can give our chef one or
31
00:01:49,969 --> 00:01:54,120
two recipes at a time instead of
reciting the entire cookbook to her.
32
00:01:54,120 --> 00:01:59,020
Okay, now let's say I want to make
a peanut butter and jelly sandwich.
33
00:01:59,020 --> 00:02:02,754
I see a pretty good recipe and
send it to our chef to make,
34
00:02:02,754 --> 00:02:06,727
remember that our chef needs
these instructions quickly so
35
00:02:06,727 --> 00:02:11,400
I don't send her the entire recipe,
I sent her one line at a time.
36
00:02:11,400 --> 00:02:16,890
One, get two slices of bread, two,
put peanut butter on one slice,
37
00:02:16,890 --> 00:02:23,640
three, put jelly on another slice,
four, combine the two slices of bread.
38
00:02:23,640 --> 00:02:26,670
Now let me throw one more thing at you.
39
00:02:26,670 --> 00:02:30,360
Our chef can only communicate
with us in 1's and 0's.
40
00:02:30,360 --> 00:02:33,580
So instead of sending something readable,
like the recipe for
41
00:02:33,580 --> 00:02:37,430
peanut butter and jelly sandwich,
we have to center something like this.
42
00:02:37,430 --> 00:02:40,770
In reality this process is
a little more complicated.
43
00:02:40,770 --> 00:02:44,213
Our CPU is constantly taking
instructions and executing them,
44
00:02:44,213 --> 00:02:46,590
these instructions are written in binary.
45
00:02:46,590 --> 00:02:49,580
But how do they travel
around the computer?
46
00:02:49,580 --> 00:02:55,146
In our computer, we have something
called the external data bus or EDB.
47
00:02:55,146 --> 00:03:00,096
It's nothing like a bus at all, it's a row
of wires that interconnect the parts of
48
00:03:00,096 --> 00:03:03,530
our computer,
kind of like the veins in our body.
49
00:03:03,530 --> 00:03:06,613
When you send a voltage
to one of the wires,
50
00:03:06,613 --> 00:03:10,637
we say the state of the wire
is on are represented by a 1,
51
00:03:10,637 --> 00:03:16,460
if there's no voltage then we say that
the state is off represented by a 0.
52
00:03:16,460 --> 00:03:20,430
This is how we send around our 1's and
0's, sound familiar?
53
00:03:20,430 --> 00:03:25,080
In the last lesson, we talked about how
transistors help us to send voltages.
54
00:03:25,080 --> 00:03:29,348
Now we know how our bits physically
travel around the computer,
55
00:03:29,348 --> 00:03:34,270
the EDB comes in different sizes,
a bit, 16-bit, 32, even 64.
56
00:03:34,270 --> 00:03:39,420
Can you imagine if you had 64 wires going
you can move around a lot more data right
57
00:03:39,420 --> 00:03:44,269
now we're just going to stick with using
an EDB with 8-bits in our examples,
58
00:03:44,269 --> 00:03:46,080
sending one byte at a time.
59
00:03:46,080 --> 00:03:51,310
Okay, so now our CPU is receiving
a byte and it needs to get to work.
60
00:03:51,310 --> 00:03:55,712
Inside the CPU,
there are components known as registers,
61
00:03:55,712 --> 00:04:00,000
they let us store the data
that our CPU works with.
62
00:04:00,000 --> 00:04:04,716
If for example our CPU wanted to add
two numbers, one number would be
63
00:04:04,716 --> 00:04:09,515
stored in a register A, another
number will be stored in register B,
64
00:04:09,515 --> 00:04:14,000
the result of those two numbers
will be stored in register C.
65
00:04:14,000 --> 00:04:17,395
Imagine the register is one
of our chefs work tables,
66
00:04:17,395 --> 00:04:21,694
since she has a place to work,
she can start to cook, to do so she uses
67
00:04:21,694 --> 00:04:27,390
a translation book to translate her
binary into tasks that she can perform.
68
00:04:27,390 --> 00:04:29,650
Let's jump back for a second.
69
00:04:29,650 --> 00:04:34,194
Remember that our programs are copied
into RAM for the CPU to read,
70
00:04:34,194 --> 00:04:38,903
RAM is memory that's randomly accessed
allowing our CPU to read from
71
00:04:38,903 --> 00:04:42,210
any part of RAM as quickly
as any other part.
72
00:04:42,210 --> 00:04:45,564
We don't actually send data
from RAM over the EDB,
73
00:04:45,564 --> 00:04:47,832
there would be way too much stuff.
74
00:04:47,832 --> 00:04:51,280
RAM can hold millions even
billions of rows of data.
75
00:04:51,280 --> 00:04:56,670
Despite our sandwich example,
most of our recipes aren't simple at all.
76
00:04:56,670 --> 00:05:00,142
There can be thousands of lines long,
we want to process them and
77
00:05:00,142 --> 00:05:02,980
we don't actually go in
any particular order.
78
00:05:02,980 --> 00:05:07,948
Since we can only send one line of
data through the EDB at a time we need
79
00:05:07,948 --> 00:05:12,931
the help of another component,
the memory controller chip or MCC.
80
00:05:14,360 --> 00:05:18,490
The MCC is a bridge between the CPU and
the RAM.
81
00:05:18,490 --> 00:05:22,876
You can think of it like a nerve in
your brain connecting to your memories,
82
00:05:22,876 --> 00:05:26,554
the CPU talks to the MCC and
says hey I need the instructions for
83
00:05:26,554 --> 00:05:30,447
step number three of this recipe,
the MCC finds instructions for
84
00:05:30,447 --> 00:05:34,890
step number three in RAM, grabs
the data and sends it through the EDB.
85
00:05:34,890 --> 00:05:38,668
There's another bus that's
nothing like a bus involved
86
00:05:38,668 --> 00:05:43,388
in the process called the address bus,
it connects the CPU to the MCC and
87
00:05:43,388 --> 00:05:48,504
sends over the location of the data but
not the data itself, then the MCC takes
88
00:05:48,504 --> 00:05:54,130
the address and looks for the data and
then data is then sent over the EDB.
89
00:05:54,130 --> 00:05:58,579
Believe it or not, RAM isn't the fastest
way we can get more data to our CPU for
90
00:05:58,579 --> 00:06:00,160
processing.
91
00:06:00,160 --> 00:06:02,971
The CPU also uses
something known as cache.
92
00:06:04,000 --> 00:06:05,636
Cache is smaller than RAM but
93
00:06:05,636 --> 00:06:10,380
it lets us store data that we use often
and let's just quickly reference it.
94
00:06:10,380 --> 00:06:14,743
Think of RAM like a refrigerator full
of food, it's easy to get into but
95
00:06:14,743 --> 00:06:19,832
it takes time to get something out, on the
flip side of that, cache is like the stuff
96
00:06:19,832 --> 00:06:25,330
we have in our pockets, it's used to store
recently or frequently accessed data.
97
00:06:25,330 --> 00:06:30,960
There are three different cash
levels in a CPU, L1, L2 and L3.
98
00:06:30,960 --> 00:06:33,980
L1 is the smallest and fastest cache.
99
00:06:33,980 --> 00:06:38,225
So now we understand how our
RAM interacts with our CPU but
100
00:06:38,225 --> 00:06:43,546
how does our CPU know when a set of
instructions end and a new one begins?
101
00:06:43,546 --> 00:06:48,260
Our CPU has an internal clock that
keeps its operations in sync.
102
00:06:48,260 --> 00:06:51,720
It connects to a special
wire called a clock wire.
103
00:06:51,720 --> 00:06:56,372
When you send or receive data, it sends a
voltage to that clock wire to let the CPU
104
00:06:56,372 --> 00:06:59,000
know it can start doing calculations.
105
00:06:59,000 --> 00:07:02,708
Think of our clock wires as
the ticking of a clock, for
106
00:07:02,708 --> 00:07:06,099
every tick the CPU does
one cycle of operations.
107
00:07:06,099 --> 00:07:10,779
When you send a voltage to the clock
wire as referred to as a clock cycle,
108
00:07:10,779 --> 00:07:15,381
if you have lots of data you need to
process in the command you need to run
109
00:07:15,381 --> 00:07:17,650
lots of clock cycles.
110
00:07:17,650 --> 00:07:23,610
Have you ever seen a CPU in the store and
has something labeled 3.4 Ghz?
111
00:07:23,610 --> 00:07:27,677
This number refers to the clock speed
of the CPU, which is the maximum
112
00:07:27,677 --> 00:07:31,710
number of clock cycles that it can
handle in a certain time period.
113
00:07:31,710 --> 00:07:39,275
3.40 GHz is 3.4 billion cycles per second,
that's super fast.
114
00:07:39,275 --> 00:07:42,782
But just because it can run at
this speed doesn't mean it does,
115
00:07:42,782 --> 00:07:45,891
it just means that it can't
exceed this number, still,
116
00:07:45,891 --> 00:07:49,070
that number doesn't stop
some people from trying.
117
00:07:49,070 --> 00:07:54,049
There's a way you can exceed the number
of clock cycles on your CPU on almost any
118
00:07:54,049 --> 00:07:57,068
device, it's referred
to as over clocking and
119
00:07:57,068 --> 00:08:02,360
it increases the rate of your CPU clock
cycles in order to perform more tasks.
120
00:08:02,360 --> 00:08:06,505
This is commonly used to increase
the performance in low end CPUs, let's say
121
00:08:06,505 --> 00:08:10,777
you're a gamer and you want to have better
graphics and less lag while playing,
122
00:08:10,777 --> 00:08:14,610
you might want to over clock
your CPU when you play the game.
123
00:08:14,610 --> 00:08:18,930
But there are cons to doing this like
potentially overheating your CPU.
12391
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.