0: Хорошо, давайте продолжим с устройством компьютера. Предыдущее видео было о общем устройстве компьютера, да, о том, как в общих чертах сипию работает, как взаимодействует с памятью и так далее. Сейчас давайте сконцентрируемся по конкрет.
1: На памяти память у нас бывает 2 видов 1 вид это ram озу. В русском варианте оперативно запоминающее устройство это энергозависимая память, то есть при потере энергии, да, когда вы выключаете своё устройств.
2: Компьютер, вся информация, которая хранилась там, теряется, при этом она очень быстрая и предоставляет эффективный рандомный доступ. То есть вне зависимости от того, где данные хранятся. Давайте пока что
3: Условно и упрощённо, скажем так, там в начале, в конце, в середине оперативной памяти, скорость доступа к этим данным будет одинаковая. При этом она дорогая по сравнению с hdd или прочими какими-то вариантами долговременной памяти.
4: Следовательно, как правило, у нас она встречается в малом объёме. То есть в среднем можно сказать, что сейчас довольно распространённый вариант. Это 16 гигабайт. Ну, допустим, у более продвинутых пользователей вы можете встретить уже 32 гига.
5: Ну не байта, конечно, естественно, в каких-то профессиональных машинах встречается, там 96 гигабайт, 128 гигабайт, 256 гигабайт, но даже в серверах не так, чтобы часто встречаются варианты, например, с 1 терабайтом, с 2
6: С десятью терабайтами, потому что она все-таки дорогая и как бы не то чтобы легко использовать большой объём памяти эффективно все же. Поэтому как-то пытаются
7: Использовать долговременную память, ну и собственно у нас стандартный вариант долговременной памяти это hd, то есть жёсткий диск в русском варианте ссд соли стоит драйв, твердотельный накопитель, ну и какие-то прочие, то есть ленточные накопители довольно на данный момент расспрос.
8: Ранее не настолько, конечно, как hd ссд, но тем не менее имеют свою нишу для архивного хранения информации, особенно, как правило, это медленная память, то есть даже супер быстрые современные ссд по сравнению с памятью.
9: Все равно медленные. А некоторые из этих хранилищ, например, hdd, да, имеют последовательный доступ. То есть мы данные считываем последовательно. 1, 2, 3, 4, 5, 6 кусочек и так далее, то ест
10: Там нет быстрого эффективного рандомного доступа. Конечно же, если мы говорим об ссд, то там довольно опять-таки, эффективный, да, быстрый рандомный доступ к тем или иным кускам данных, хотя тоже с некоторой
11: Звёздочкой, они независимы от энергии, то есть при потере какого-то снабжения. Вполне себе информация сохраняется, но довольно было бы странно, если бы долговременное хранилище информации теряло бы информацию довольно быстро.
12: Ну и, как правило, это дешёвое хранение информации, поэтому встречается опять-таки, как правило, в большом объёме.
13: Окей, да, давайте поговорим непосредственно об оперативной памяти. То есть можно визуализировать себе это так, да, плашка 1 из вариантов такой оперативной памяти, которая вставляется в ваш компьютер. То есть здесь буквально можно заметить,
14: Некоторые, скажем так, контакты, по которым передаются данные от этих контактов идут какие-то там трейсы, линии, скажем так, по которым передаются сигналы к таким вот блокам. Это буквально блоки памяти.
15: Которые у нас, по сути, представлены в виде таблич таблички, то есть оперативная память в общих чертах может быть представлена в виде таблицы из ячеек. Каждая ячейка у нас хранит в себе либо единичку, либо
16: Либо нолик, то есть какой-то бит информации, и каждая ячеечка имеет свой номер. То есть 1 ячеечка имеет номер, скажем так, 0, 2 вот эта вот ячеечка имеет номер.
17: 0 x 1 да, 3 имеет 0 x 2. То есть, по сути, нулевая, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 и так далее ячейки, то есть для того, чтобы показать, что это не просто какой-то индекс для удобства визуализации добавляе.
18: 0 x. То есть можно рассмотреть, что вот так вот, если зачеркнуть нолик, это да, то нулевая ячейка 1, 2, 3, 4, 5, 6, 7 вот я, да, давайте в 8 ячейку запишу, там, например, ой, двоечку, нолик, да.
19: 9 единичку в 10 нолик, да, в 16, например, запишу единичку и так далее. Это, конечно же, в общих чертах, то есть на физическом уровне, как именно хранятся сигналы, там огромное количество нюансов, огромное количество
20: Возможных технологий, которые так или иначе используются для хранения данных. Да, эти данные как-то передаются, как-то происходит обращение к ним, но нам, как программистам, достаточно представить себе оперативную память как набор таких единиц.
21: И Ноликов, то есть банально биты.
22: Ну и как я уже до этого говорил, у нас в принципе все, что необходимо для работы компьютера, и все, с чем работает компьютер, хранится в оперативной памяти и хранится именно в виде Ноликов и единичек.
23: То есть не в виде каких-то буквально значений 5, 10 или там абц, если мы говорим об интеджер и о строчках, а абсолютно все в современном компьютере, да и не особо современном, и в телефоне в том числе хранит
24: В виде Ноликов и единичек команды, которые выполняет процессор. Да, помните, у нас варианты там муф, например, команда была дифф и какие-то прочие, прочие, прочие вещи. То есть то, что выполняет процессор.
25: Тоже хранится в оперативной памяти оперативная память такой вариант визуализации напомню это по сути стол с ингредиентами да, который мы используем для приготовления, но hd это наш склад.
26: Соответственно, очень важный нюанс, который тут стоит подчеркнуть ещё раз, это то, что каждая ячейка памяти у нас хранит, имеет свой адрес. То есть мы можем сказать, например, процессор, обратись, пожалуйста, по адресу.
27: 0 x 16. Соответственно, процессор обратится к вот этой вот ячеечке, ну и дальше там выполнит какую-то команду с этими данными, да?
28: Со временем мы чуть чуть погрузимся в то, как именно процессор понимает, как обратиться к этой памяти, там какие команды, как выполнять. Но пока что, я думаю, нам в этом плане достаточно
29: Такого представления. Окей, давайте пойдём дальше. Процессор. То есть, если опять-таки визуализировать процессор для удобства, можно представить себе в виде вот такого вот чипа, да, как правило, такой чип исполь.
30: Используется в каких-то системах, которые самостоятельно собираются. То есть в ноутбуках у вас этот чип буквально интегрирован в материнскую плату и выглядит немножечко по другому. Но тем не менее внутри он выглядит как-то так, то есть
31: На самом деле, вот этот маленький маленький маленький чипчик, да, который там буквально, ну сколько тут пара сантиметров на пару сантиметров, он содержит в себе огромное количество таких микро, микро, микро, микро, микросхем, да.
32: В которых очень сложно запутаться. То есть это все какие-то, скажем так, дорожки, по которым идут сигналы, какие-то микро, маленькие устройства, устройства, которые так называемые гейты, логические гейты и все прочие гейты.
33: Которые как-то преобразуют физический сигнал и собственно реализуют различные операции сложения, умножения и ну вот как раз-таки у меня здесь выписаны и вообще, если как бы разделять хотя бы вот это
34: Все большое месиво, которое даже сложно увидеть невооружённым взглядом, то это можно разбить вот таким вот образом. То есть все вот это у нас, да, тут вот это вот, вот это вот а точнее вот это, вот это, вот это
35: Это вот это да, это у нас какие-то ядра, ядра процессора, возможно о них слышали. Это какие-то кусочки, которые ответственны за cash, да, вот собственно этот кэш 3 уровня, там какой-то системный агент, какие-то, какие-то ещё другие
36: Другие, другие вещи, да, тут у нас опять-таки части, которые отвечают за графику. Ну потому что у нас некоторые процессоры, например, внутри себя также содержат и какие-то графические возможности, не все, но тем не менее, некоторые
37: Предоставляют доступ к интегрированной графике, которая как раз-таки выводит. Напоминаю, да, у нас что-то на экран. То есть не всегда у вас это отдельное устройство. Вот тут же у нас опять-таки в процессоре, да, какие-то, скажем, бло.
38: Чипчики маленькие, которые ответственны за взаимодействие с оперативной памятью. Ну, собственно, ддр 4, ддр 5.
39: Окей, да, это то вот хотя бы что немножечко приоткрывает завесу под загадочным названием cpu но давайте мы вернёмся, конечно, к нашему обобщённому, абстрагированному от нюансов физических.
40: K ввиду да, к нашему системному блоку материнской платы и посмотрим на cpu центр Просин юнит, то есть центральный процессор центральный процессор имеет, как вы уже увидели, да, огромное количество внутри себя нюансов, которые
41: Сводится идейно, по сути, к следующим вещам. То есть у нас есть арифметика, логическое устройство, это буквально
42: Некий набор чи там чипов, да, некий набор очень, очень маленьких устройств, который что умеет делать, который каким-то образом выполняет команды ксор ор n, да.
43: Суммирование и так далее. То есть это те команды арифметики из арифметики, да, из логики, которые, по сути, выполняют основную работу в нашем компьютере. У нас есть управляющее устройство, которое занимается тем, что определяет
44: Да, какую операцию нам сейчас надо выполнить процессору, которая преобразует собственно команды, хранящиеся в оперативной памяти, в какие-то команды, которые уже будут переданы в наше арифметика, логическое устройство.
45: Ну и у нас есть некоторые регистры. То есть, что такое регистр, регистр, опять-таки в общих чертах. То есть на самом деле, конечно, регистры больше по размеру их больше, но регистр это, по сути, небольшой набор ячеек памяти, то есть
46: В каждом регистре у нас также хранятся какие-то нолики и единички, нолики, там, единички, нолики, единички, единички, единичка, нолик, да, 0, 0, 0 1, 1, 1:00, например, ну и так далее, и тому подобное. Вот.
47: Хорошо, что нам тут ещё хотелось бы узнать.
48: Ну, наверное, как непосредственно работает, да, процессор и оперативная память с друг с другом, как это приводит к работе компьютера. То есть, смотрите, у нас есть
49: Какая-то оперативная память, в ней у нас лежат данные и инструкции, ну в виде Ноликов и единичек. То есть 0 1 1 1:00 1 0. Да, там давайте я напишу какой-то рандомный на данный момент набор Ноликов.
50: Единичек, потому что нам не сильно принципиально, что там и как, но, думаю, пока будет пусть так, 1, 0, 1, 1, 1. Вот. Соответственно, когда компьютер запускается
51: Там очень много вещей происходит, на самом деле, не то чтобы много, а очень и очень много, мягко говоря, потому что, ну, современные компьютеры, да, уже имеют историю порядка, там, скольки, ну, плюс - 50.
52: Лет и порядка как бы 30 лет, скажем так. Да ну навскидку так вот, история за последние 30 лет она так или иначе влияет на некоторые особенности работы материнских плат. Некоторые особенности работы cpu би.
53: И так далее. Поэтому очень много происходит вещей, но как можно представить себе, по сути, включение пк, да, мы начинаем просто с нулевого адреса включается наш компьютер.
54: Подаётся питание на cpu, на материнскую плату, на рам и так далее материнская плата каким-то образом передаёт управление там cpu и, грубо говоря, cpu берет и начинает работать с нулевого адреса, то есть на самом деле где-то тут у нас.
55: Cpu внутри имеет такой регистр, так называемый инстракшн поинтер, то есть это адрес ячейки, с которой мы сейчас работаем, то есть адрес.
56: Операции, которую мы сейчас выполняем, по сути. Вот, и можно сказать, что он изначально равен у нас тут нулю. Да, давайте я так быстренько, 0 0, 0, 0 0 сделаю. Начинает он с нуля, да.
57: И здесь считывает какие-то данные, да, то есть тут у нас набор Ноликов и единичек, этот набор Ноликов и единичек у нас поступает в управляющее устройство и можно рассматривать этот набор Ноликов и единичек, грубо говоря.
58: Как такой какой-то ключ то есть здесь такой вот ключ, здесь другие зубчики, здесь какие-нибудь третьи зубчики и все прочее управляющее устройство это наш замочек с каким-то там набором скважин да или даже давайте набор замочков.
59: Набор замочков, очень, очень красивые замочки, набор замочков с различными скважинами. Так вот, в зависимости от того, какой здесь набор у нас был, какой у нас ключик был, да, этот ключик подхо.
60: К разным скважинам, ну и, соответственно, приводит к различным действиям. То есть вот этот вот замочек мог бы быть, например, там суммированием каким-то этот замочек ответственен был за команду муф, ну этот, за какую-нибудь команду там.
61: Multiply умножить. Вот дальше. Управляющее устройство, таким образом проверило, ну, скажем так, корректность нашей команды и передаёт сигнал арифметику логическому устройству, которое, собственно, выполняет
62: Данную команду, команда выполнилась, и мы перешли. То есть мы выполнили команду и что происходит? Процессор просто увеличивает наш регистр ип. То есть тот, который указывает на дан, в данный момент выполняющуюся команду, на
63: Следующую команду ну, если мы скажем, что наша команда была 8 bit, а мы действительно считали 8 bit, мы же чётко понимаем, да, сколько мы считали, небольшая помарочка в реальности, конечно, там побольше бит, не 8, но тем не менее.
64: Давайте это удалим, это удалим, это удалим и это удалим, то есть ставим наш регистр в значение 0 x 8 буквально сдвинули на единичку, по сути на следующий кусочек данных.
65: Ну, понятное дело, что здесь в бинарном варианте, то есть можно было сказать, что здесь было 0 икс 0 до этого сейчас 0 x 8, да, но в бинарном варианте опять-таки 8 это степень двойки, поэтому её можно легко получить, да, здесь
66: У нас 2, здесь, у нас 4, здесь у нас 8. Ну вот таким вот образом мы сдвинули наш указатель на следующую команду, мы можем её выполнить, мы можем сдвинуть указатель дальше, дальше и дальше. То есть процессор просто идёт как бы
67: Сверху вниз последовательно выполняет команды. Хорошо. У нас есть различные команды, например, которые могут сказать, слушайте, а давайте вот скажем, вот эта вот команда, это будет некоторая команда.
68: Например, да, вот замочек, который подойдёт к скважине лот.
69: Lotte так лот.
70: Например, р 1 регистр 1. Ну, можно, у них есть свои имена, можно назвать 1 регистр и регистр. 2, например, для нашего примера. Вот. Соответственно, у нас такая есть команда, которая загружает данные, какие, которые
71: Идут следом за командой, да, загружают в регистр номер 1. Вот, то есть управляющее устройство поймёт, что у нас поступила на вход команда лотер 1. Это означает, что арифметика. Логическое устройство должно считать след.
72: Следующий набор битов на следующие 8 бит и загрузить их в р. 1.
73: Хорошо, то есть, допустим, там загружается 1:00 1 упс, 0 0 1:00 0 1. Да, ладно. Значит, на поскольку наша команда вместе с операндом занимала
74: 16 bit в этот раз да не 8, то мы должны сдвинуть не на 8, а на 16, то есть сюда теперь как бы указывает наш.
75: Ip instruction, pointer. Ну и мы здесь тоже давайте исправим немножечко, немножечко ситуацию. 0 x 24. Хорошо.
76: Ну и, конечно же, тут надо подправить тоже бинарный вариант немножечко лишнего удалил, но да ладно, 0 1 1 тут будет 0 x 24, то есть следующая.
77: Команда, которую должен выполнить процессор, он сам отслеживает её. Это вот 0 x 24 по адресу, точнее 0 x 24. Хорошо. И вот таким образом наша команда, наш процессор работает.
78: Абсолютно все вещи в процессоре сводятся к Такому набору команд.
79: В виде Ноликов и единичек. Все данные, которые представлены в виде, не знаю, в виде строчек, с которыми мы работаем в виде циферок, они представлены в виде Ноликов и единичек, и все работает в общих чертах подобным образом.
80: Да, ну и дальше, например 0 x 24 у нас здесь могла быть команда, которая увеличивала бы значение р 1 на 1, то есть ink р. 1 давайте инкремент инк р. 1, то есть мы считываем.
81: Эту команду понимаем, что значение р 1 надо увеличить на единичку.
82: Да, ну прибавляем в бинарном варианте и получаем такой вот вариант, а как именно это происходит? То есть, как это происходит? Сложение, да? Ну, сложение у нас происходит по собственно, обычным правилам, можно банально
83: Взять столбик 100 там, что 100 0 1 было, да, + 1. Ну и бинарно складываем нолик. Ну, поскольку у нас нет в бинарной системе исчисления двойки, как бы мы не можем здесь двойку написать, мы, по сути производим
84: Переполнение, да, мы переносим разряд сюда переносится 1 и сюда записываем 1:00 1:00 1. Все сложили. А компьютер, конечно, не так складывает. Там на самом деле для сложения используется некоторый набор.
85: Логических операций, то есть единички и нолики можно рассматривать как какой-то набор, да, логических операций в смысле значений логических. Ну и вот, и можно реализовать суммирование через логические операции, в общем,
86: Интересная там вещь, очень много нюансов прикольных, но об этом когда-нибудь потом.
87: Хорошо.
88: То есть, обратите внимание, да, очень важный нюанс, который здесь был, может быть, не особо заметен, но процессор, по сути, работает с данными внутри себя. То есть то, что было загружено внутрь него самого.
89: В регистры процессор не редактирует оперативную память. Да нет такого, что где-то есть команда, которая скажет, ой, слушай, а измени, пожалуйста, значение в оперативной памяти на нолик, например, здесь нет процессор загрузит. Давайте
90: Лишнее уберу пока, да. Так вот это вот только лишнее. Процессор загрузит данные из оперативной памяти внутрь себя.
91: Каким-то образом их изменит опять-таки внутри с помощью арифметико логического устройства. И после этого отправит обратно в оперативную память. Сама оперативная память не меняет данные, она только их хранит, и все изменения происходят внутри.
92: Процессора. Очень важный нюанс, да, более того, благодаря адресации мы можем делать большое количество интересных вещей. Так, то есть
93: Например, давайте вернёмся чуть чуть назад упс. И вот у меня был момент, да, был момент.
94: Когда я выполнял вот здесь команду, то есть мы там что-то сделали, загрузили в р 1, насколько я помню, да, значение какое-то и так далее, и тому подобное. Вот что мы можем ещё сделать. А давайте мы
95: В р 1 загрузим не 1:00 0 1, а, например, вот что-то такое. Упс. Давайте синенькие 0 00:00. Сейчас узнаете почему, зачем, в чем будет смысл. То есть мы
96: Выполнили 1 команду, да, которая там что-то делала. Вот. Потом выполнили 2 команду, которая в р 1 загрузила следующее значение. Все нолики.
97: Да, я тут как-то забыл немножко р 2 р 1. Извиняюсь, изменить. Давайте это уберём, это уберём, это тоже уберём. 0 0, 0. Да, все выполнили здесь команду.
98: Загрузи следующее за командой значение в регистр р. 1 и, допустим, в 0 x 24 а у нас же здесь 0 x 24 instructions поинтер в итоге оказывался здесь будет коман.
99: Давайте её назовём муф, например, муф муф р 2. Даже уточним. То есть муф, это значит, что это загрузи данные, например, из оперативной памяти в процессор, в да.
100: Случае в регистр 2 или из процессора, из 2 регистра в оперативную память. Так, в упрощённом варианте вот это будет команда. У нас муф сильно на набор нулей единичек не смотрите, это так, образный набор.
101: Но только мы загрузим сейчас, что мы загрузим значение, которое лежит по адресу, лежащему в регистре р 1. О, то есть мы не конкретный набор вот этих данных загрузим.
102: Да, который тут даже не нарисован, а мы скажем, что эта команда возьмёт значение р 1 и будет рассматривать его как адрес значения, которое надо загрузить в р. 2.
103: О, обращаемся к р 1. Смотрим на адрес 0 0. Да, это адрес 0 0 и загружаем значение по адресу в р. 2. То есть это 0 1, 1, 1, 0 0 1 0, то есть
104: Благодаря тому, что мы можем обращаться, и вообще каждая ячейка оперативной памяти имеет свой какой-то адрес. Благодаря этому мы можем использовать адреса, то есть значение внутри ячеек оперативной памяти это не только
105: Какие-то данные просто пользовательские, но это и в том числе адреса других данных. То есть вот этот набор Ноликов и в нашем случае как бы указывает сюда.
106: Да, либо мы можем рассмотреть это значение просто как 0.
107: Без проблем.
108: Окей, то есть это в общих чертах опять-таки как работа взаимодействуют друг с другом сипию и рам. Важно запомнить общее устройство cpu идею того, что у нас рам это табличка, которая хранит в себе нолики еди.
109: Все в компьютере представлено в виде Ноликов и единичек, в том числе команды для процессора.
110: Да, у каждой ячейки есть свой адрес, и мы можем этот адрес сохранить и потом как-то использовать как данные, с которыми работает наш компьютер.