Принципы развития архитектур ЭВМ; система команд RISC-V

Расшифровка видео
0:00
[музыка]
0:11
всем привет с вами снова встречаемся и у нас вы будете
0:20
удивлены опять версии в курсе от вычислить математики и кибернетики по всяким вещам так или
0:28
иначе имеющим прямой или не очень прямое отношение к linux потому что
0:35
это то чем я умею заниматься вот но как обычно
0:41
отношениях не очень прямой и и сегодня у нас открывается цикла лекций
0:47
под названием архитектуры язык assemblies кв а ежели кто
0:53
ещё не в теме про то кто я такой я сотрудник в культе там учить математике
1:00
и берлинский зовут меня геор некурящие вот сайтик которую сейчас видите я использую для всяких своих проектов
1:07
образовательных основном вот еще я сотрудник компании базальт спа и мы там
1:13
занимаемся как раз российским дистрибутивы linux из-за этого продолжаем да значит вот от этого от
1:20
того что я как бы мы оставляем место работает компания базальт спа у нас
1:25
всевозможные linux тематик так или иначе просачивается в нашей лекции вот разговоры у нас есть групп в telegram
1:33
который обсуждает все пока что все лекции у нас в этом семестре их планируется h3 направлении
1:42
я решил пока не разделять это пускай тусовку будет примерно 1 вот и мы с вами
1:48
в этом семестре вот в этом курсе занимаемся вот такой темой артик тура и в.м. ее
1:54
заказ анализ сразу хочу сказать о том что будет что нас ждет впереди еще у нас
2:00
впереди значит не будет во первых этот курса формально проходит
2:07
на факультете как почему-то сперанский вот не буду вдаваться в подробности почему
2:13
скажу только что это чисто организационный такой трюк вас понятное дело что если бы меня сразу сказали
2:21
ждете сперанский курс я бы сделал по-другому вроде бы считается что курсы для аспирантов такие должны быть
2:26
обзорные всякими интересными подробностями
2:33
современном состоянии дел потому что с конкретикой вроде как они сами могут разобраться но как я еще как я уже
2:41
говорил вообще рвах я как бы не был к этому готов вторых я так в общем не умею точнее не так я так конечно же умею
2:48
рассказ сделать обзор чего-нибудь но испытывают этого смертную скуку мне
2:53
кажется что не только я и в общем по этой причине делать этого не буду во
3:00
вторых вот этот наш курс который у нас два часа в неделю одна пара в действительности
3:08
является частью большого комплекта примерно аналогичного тому что читается
3:14
у нас на факультете под названием актурур им язык ассемблера во втором семестре первый курс вот так я
3:23
такой такого рода лекций делал когда-то для филиала
3:28
университета вот и это так сказать одна часть вот связи с
3:34
этой спецификой и что этот наш курс это одна часть большого проекта мы пропустим
3:40
началу этого проекты конец извините это как раз тема о том чего будет ничего
3:47
не будет чего будет и чего не будет в наших разговорах
3:53
вот конкретно в этом семестре поведайте начнем с стала чего не будет продолжим
4:00
тем чего будет разумеется не будет у нас никакой подводки к понятию архитектура
4:08
то есть вот всей этой темы которые есть скажем на первом курсе связанные с там
4:14
модельными учебными машинами у которых там примерно десяток команд я которые бывают
4:21
различные виды адресации различные виды упаковки данных и так далее тогда
4:26
не будет подводки к 7 схемотехнике со всякими вот этими ключами логическими
4:32
схемами всего остального не будет даже объяснения
4:38
формально формально объяснение того уж такой регистр что такое компьютерная
4:44
память чем отличается регистровой памяти обычно и так далее хотя возможно если мы
4:50
вы крым на это время я чуть-чуть расскажу про то почему бывает память и память вот не факт вот
4:58
предполагается что это все был уже рассказано в какой-то форме но если нет
5:05
то впихнуть от все в один семестр 2 часа в неделю я считаю нецелесообразным и не возможно получится the same обзорная
5:11
лекция который я испытываю смертность не будет
5:17
рассказов о различных архитектурах несмотря на официальное название
5:22
нашу сперанского косо по текстур современных вы им потому что
5:28
опять таки при таком формате да у нас там примерно 12 если не сказать 11 лет и
5:36
то есть ну в общем да получается с 22:00 до 24 при таком
5:46
формате как бы все современной архитектуры за 24 часа ну вы сами понимаете что получится это тоже
5:53
не будет примерно половины тематике связанные с
5:59
архитектурой vm которое начинается грубо говоря с того момента когда начинается виртуальная память
6:07
пример вынуждены по двум причинам во-первых все из того же из экономии
6:12
времени мы мне хочется в этот фрагмент которого на сейчас происходит сделать его максимально близким по изложению к
6:19
тому что должно происходить вот в этом большом комплекте и во-вторых мы с вами
6:25
будем пользоваться течение этого семестра одним конкретным эмулятором риск five его сейчас покажу в
6:32
котором всей этой верхней части просто не таро там отсутствует вот
6:38
соответственно даже если бы я нашел время на рассказ
6:43
этот рассказ получился бы обзорный смотри выше не хочу обзорная лекция 9 а
6:48
вариант делать его не обзорным а например проводить на настоящем железе или хотя бы на хорошему эмуляторе там
6:56
конкретной доски рис по минской и это означает влезать в еще одну тему
7:03
достаточно большую настолько большое что опять смотри выше не влить что это
7:11
означает это означает что в рамках данного курса мы
7:16
будем изучать практически систему команд риск файл вот
7:22
писать программный assembly немножко изучать технику программирования ассемблер а
7:27
запланировано одна большая одно большое занятий на эту тему полное практическое
7:33
вот и сквозь эту призму разглядывать ту часть о принципов развития архитектуры в
7:39
м которую собственно можно увидеть мы будем говорить о всяких значит
7:45
сопутствующих темам сопутствующих
7:50
штуках которые учитываются при развитии его м 3 при при планировании и дизайне
7:56
конструирования их вот ну и соответственно вот как-то так все это будет происходить
8:04
до значит понятно что из нашего рассмотрения также
8:09
выпадут разговоре о чего разговоры о чем-то что не является процессором но потому что
8:15
современная культура современного быть еще и здоровенное количество всевозможных внешних устройств и
8:21
протоколы общение с ними про то как процессор с ними общается мы говорить будем про то как они сами устроены
8:27
разумеется не будем иначе это на многие годы разговор и к сожалению у нас
8:32
выпадет еще одна важная для современности часть и это архитектуры не общего назначения
8:39
а какие-то спец вычислителя самый главный спец вычислитель современности от разумеется году графический процессор
8:45
вот у них углу есть множество очень интересных особенностей понятное дело что
8:51
временные рамки нам не позволят это все впихнуть в один курс имеет тоже смело
8:56
опустим вот так же мы не будем заниматься всевозможными
9:03
продвинутыми техниками программирование на сами для просто потому что это не тема нашего занятия
9:08
нашего разговора вот так и это у нас такой разговор о том чем мы не будем
9:14
делать кого разочаровал извините как бы не хочу впихивать невпихуемое
9:20
вот а теперь что мы будем делать значит весь наш разговор будет посвящен такой
9:26
модный современный продвинутую архитектуре которая называется риск five и это очень интересный очень пафосный
9:33
проект которому там недавно использовать использовалась 10 лет вот то есть это
9:38
очень свежая в этом смысле линейка прямо совершенно отдельный от всех остальных вот
9:45
особенности и принципы этого проекта мы обсудим чуть
9:50
больше вот хочу сказать только что в какой-то момент вот это вот все движение буквально
9:57
прорвало туда начали присоединяться в стройными рядами совершенно все ведущие
10:02
производители железа камера там intel и nvidia производители жёстких дисков оба
10:09
оставшихся в живых вот еще куча всяких спец контор которые занимаются там
10:15
сетями и сетевым процессор не всего да то есть к этому к этому foundation стали при цене подсоединяться практически все
10:22
вот насколько это повлияет на будущее
10:27
вышли сильный индустрию мы с вами увидим вот но а пока что мы изучаем все еще
10:36
вполне такую маргинальную но стремительно набирающей популярность архитектуру с некоторыми особенностями
10:43
позволяющим и и изучать как это сказать с большим удовольствием чем другие архитектуры вот в частности для
10:52
практической работы мы будем использовать штуку под названием раз вот и и кстати нет опачки вот
11:02
собственного сайта проекта нету потому что на самом деле этот проект является
11:08
модификацией довольно старого учебного проекта под названием марс сейчас я вам покажу вот
11:14
сейчас его покажу просто было понятно насколько древние этот проект
11:21
2004 столь году его затеяли свое время вот видите сайте уже выглядит страшно
11:30
что-то не то происходит происходит что-то не то на неважно в
11:36
общем в общем университет миссури когда-то это дело на ваял вот с тех пор
11:43
его поддерживали более или менее да ну не будем дальше смотреть в этот
11:48
марс короче говоря в какой-то момент он стал менее актуален сейчас вы узнаете почему вот а люди значит вместо вместо
11:57
вместо него там взяли этот исходный код и переделал его подрезка five благо это
12:03
можно было сделать достаточно легко вот ну как легко блага это было возможно
12:09
значит добывается он вот отсюда этот самый марс это по программ написаны на
12:15
java поэтому для того чтобы запустить достаточно просто скачать вот этот jar-файл а вот и запустить его из
12:23
командной строки секунду вот
12:28
вот он да вот взять и сказать ему так java jar и вот всю фигню
12:36
вот и вуаля вот он запустился этот самый марс
12:42
100 он же раз на самом деле точнее только это как раз раз вот он
12:48
представляет собой интегрирую среду программирования в
12:54
которой есть и редактор кода и за счет отладчик и
13:01
отладчик с показом регистров короче говоря как у shift и поганые сейчас я
13:06
пакет на запущу он чуть чуть получше вот
13:12
вот тут же ты панар мании удалось странные проблемы с шрифтами
13:18
обычный по кроме в линуксе точно вот а значит ну
13:25
вот давайте я попробую там какую первый попавшийся программку открыть вот программ сложение двух чисел вот так
13:33
выглядит редактор вас от моего компилируем эту программу вот так выглядит отладчик к сожалению я не смог
13:40
добиться от матраса чтобы он буковки побольше сделал так что
13:45
боюсь что на видео это будет уже совершенно невозможно смотреть но я очень под придумываю у меня есть
13:52
несколько вариантов как это как-то проблему исправить но сегодня
13:59
пока так вот вот здесь пошаговая пошаговая отладка
14:05
вас ну в общем
14:11
то есть она ещё там в пытается что-то вводить вот пожалуйста сложение двух
14:16
чисел вам не видно на самом деле там внизу сумму вы видели я постараюсь придумать чтобы буковки были
14:23
побольше либо сделал увеличительное стекло какой у него короче говоря вы имеете представление о том что такое вот
14:29
этот эмулятор он достаточно удобный вот в нем есть
14:35
всякие полезные штуки включая например имитацию кэша имитацию предсказание
14:40
перехода это к вопросу об архитектуре и вы им до работают со всевозможными
14:45
внешними устройствами разумеется тоже виртуальными вот в общем все это у нас в курсе нас ожидать вот такими вещами мы
14:53
будем заниматься что мы еще будем делать мы будем писать в качестве домашних заданий
15:00
программ на самом деле которые будут и эксплуатирует соответствующей темы вот нами выучены
15:08
папы до тех пор пока это не потребует интерактивность эти программы на 7 или
15:14
будут чисто автоматически проверяется системой и джордж и регистрация на наш спецкурс это
15:22
просто регистрация virgin ссылка прилагается на титульной странице курса вот потом видимо
15:31
а потом видимо когда пойдут всякие интерактивные штуки типа обработчика
15:36
прерываний нам придется делать программ который автоматически проверить сложному
15:42
возможно все закончится например небольшим финальным проектом вот который
15:48
нужно будет написать или какой-то контрольный я имею ввиду тех людей которым нужна реальная оценка
15:54
0 и зачет вот они просто так к нам пришли таких я тоже очень уважаю да ну короче
16:02
говоря там будет видно но поначалу будем решать задачки виджет же имейте это в виду и регистрация в и джорджа и то есть
16:08
запись на списку вот ну и как бы кто меня знает
16:14
разумеется я не удержусь от всевозможных комментариев вообще всякого бла бла на тему того что такое риск five и его
16:22
место в этой жизни вот о чем собственно прямо сейчас и начну
16:28
говорить хотя хочется уже перейти к конкретике еще
16:35
одна вещь о которой я говорить не буду потому что времени нету это чистая бла бла вот это
16:41
основной по моему мнению принцип развили развитие компьютерных архитектуры и
16:46
вообще информационных технологий в железе в нашей вселенной этот основной принцип состоит в следующем
16:53
если говорят о говорить коротко он стоит в том что то что уже сделано не меняется
17:00
так пошла эволюция переделывать дороже если более конкретно
17:05
выглядят примерно так появляются какие-то как нынче модно говорить вы замечали то бишь новые задачи перед
17:12
компьютерный вычислите перед пойти отраслью эти задачи решаются потому что
17:18
они уже появились здесь сейчас теми средствами которыми их можно решить прямо сейчас и прямо здесь вот
17:25
решаются они параллельны сразу в нескольких местах обычно потому что ну как бы в разных странах разные там
17:31
значит свой корпорации конкурирующие побеждает 12
17:37
реже 3 подхода которые здесь и сейчас актуальны для решения этих проблем после чего вот
17:46
эти способы решения соответствующих задач и замораживаются лет на 50 если не
17:51
навсегда в частности хороший пример это так
17:57
называемый фон нейман своя архитектура кстати мало кто знает что они кавер текстура фон неймана в общем не
18:02
существует есть здоровенный наполненные всевозможными рассуждениями доклад группы фон неймана в котором не где явно
18:09
эти принципы не сформулированы вот и потом значит через несколько десятилетий люди на них поглядели на этот доклад и
18:16
ну и выжили оттуда какие-то утверждения так вот эти принципы фон неймана
18:22
ну например там бинарная логика использование памяти для хранения команд
18:27
последовательное выполнение команд до адресация в памяти все эти принципы они
18:36
были придуманы несколько десятилетий назад вот если больше полувека назад на
18:43
самом деле до почти уж скоро век будет как не скоро хорошо вот из тех пор можно
18:51
было бы придумать что-то и поновее с учетом того как изменилась аппаратная база по сравнению там 30 годами или 50-х
18:58
годах прошлого века вот на нет те современные компьютеры за небольшим
19:03
исключением я сейчас говорю вообще прокладка компьютер и потому что цена отдельная тема вот как раз
19:09
иллюстрирующие что мы погрязли в legacy они настроены так что все все принципы которые были придуманы там несколько
19:16
десятилетий назад до сих пор безусловно и неукоснительно соблюдаются и это в общем приводит к усложнению и
19:24
главное к невозможности здесь и сейчас со стороны вот знающих людей объяснить
19:30
почему так так пошла эволюций а вот хороший пример это использование адресу
19:37
ему памяти с ячейками памяти которая еще где-то в 70-х годах или восьмидесятых
19:46
была признана главной проблемой фоне минской архитектурой вот ну и что и
19:53
никто эта проблема так и не стал решать где-то в 10-х годах появилась группа ученых такой один русский один итальянец
20:00
я не помню их фамилии поищите слова
20:06
смешное такое слово нечто среднее между мемасика процессор
20:11
мем процессор по моему она называлась поищите словом процесса дайте мы поищем вместе словом процессоры смешно да вот
20:18
от границы пятнадцатый год за счет не действия назад на пол того вот вот эти ученые сша италия очень странно вообще
20:24
говоря о формулировка почему учёные сша и далее один русский другой italiani свобод работают сша то есть это либо
20:30
ученые сша эльбрусе он из россии талии но неважно вот мне значит
20:36
вы думали какой то выдумали какую-то волшебную штуку под названием mem процессор очень туманно и и и очень
20:43
бизнесовые рекламировали и никуда это всё не пошло тут я даже не про то шарлатаны эти два учёных из сша италии
20:50
или непризнанный гений а про то что мысли о том что проблема
20:57
проблема фонем она существует за пусть допустим с памятью на самом деле
21:02
существует совсем есть решение их нет так что возвращаясь к теме сегодняшней
21:07
лекции мы с вами и мы с вами работаем практически в архитектуре фон
21:13
неймана практически в том виде в котором она была разработана уже почти сто лет назад но хорошо не 100 но уже больше чем 50
21:23
смиритесь с этим здесь я снова опускаем о хорошей подробный рассказ про то про
21:30
историю развития вычислительной техники и какими путями значит она дошла до жизни
21:36
такой как сейчас вот [музыка] хочу только как бы отметить совершенно
21:43
такие произвольно выбранные точки из этой истории чтобы объяснить в какое
21:50
место занимает риск five в ней ну для начала чисто организационно по
21:57
системе команды риск five как нетрудно догадаться соответствует системе организации команд риск прям практически
22:03
в точности как и его придумали вот это в том числе и потому что один из авторов
22:08
риск файлы это один завтра в термину иск и идеологии риск собственно
22:13
сам фен и силе патерсон не помню кто из них главный вот может быть ума и
22:20
это те самые люди которые когда-то поняли что ну как у которых когда-то
22:29
возникла идея что в гонке процессоров кто быстрее кто удобнее может победить
22:34
не тот кто за одну инструкцию ассемблер на я машина делает множество может у
22:41
микро-микро инструкций внутренних аппаратных а наоборот
22:47
что в гонке может победить тот кто у которого ассамбле на инструкции примерно
22:53
соответствует 1 ну хорошо ни одной но весьма ограниченному числу микро программных инструкции
23:00
это позволяет программисту более эффективно организовывать вычисления
23:05
пускай более низкого уровня или не программистов компилятору с более высокого языка и это позволяет
23:10
аппаратным разработчикам не заморачиваться не выдавать на гора сложные инструкции которые потом все
23:15
равно работают медленно и это позволяет проектировать архитектуру самого
23:21
компьютера таким образом чтобы учитывать то небольшое число микро программных
23:27
инструкции из которых состоит в выполнении 1 инструкция мы про это будем
23:33
говорить когда будем говорить про конвейер и тем самым оптимизировать вычислительную загрузку чтобы
23:40
карьер вообще нужен для того чтобы компьютер все время работала не просто вот идея казалась ну в общем очень
23:49
передовой на базе этой risc архитектуры по сравнению с архитектуры который
23:55
называется cisc вот типичный cisc процесса это современные intel и там дофигища различных инструкций эти
24:02
инструкции умеют делать дофигище там есть всякие странные вещи типа
24:07
1 иструкции сделать векторную операцию над памятью то есть фактически
24:12
развернуть цикл или одной инструкции работать с двоично-десятичный
24:18
представлением числа ну короче вот вот странные вещи реально я со дна вектор по
24:23
памяти . я так думаю что в современных
24:28
процессорах развернутые инструкции написаны на сервере которая занимается вектор операций по память будет реально
24:35
работать быстрее как раз за счет оптимизации вот ну не важно важно то что есть направление cisco есть направление
24:41
риск вот фактически
24:47
основная тема риска это вот все что можно сделать быстро нужно поместить в
24:52
систему кого-то все что нельзя сделать быстро мин оттуда помещать пускай лучше люди программируют от ручками вот
25:00
вот тут люди вспоминают две вещи во-первых про попытку сделать трагичный
25:05
компьютер трагичные компьютеры были в общем довольно долго особенно советском союзе был такое направление вот
25:13
потому что трагичная логика более эффективно чем двоичной смысле математическом вычислительном но
25:19
аппаратная база в общем подвела и учета от них тоже отказались хотя опять же могли бы сделать вот и второе тут тебе
25:28
подсказывает прайм 1 до значит главный представитель сегодняшнего коммерческого
25:34
такого успешно конюшню коммерчески успешного направления риск и это конечно
25:41
дерево arm вот у которого значит в отличие от многих других
25:47
представителей собственных наработок процессоров
25:53
история не прервалась вот и дожили до сегодня и вполне отлично работают как на
25:59
телефонах практически не архивная всех да так и например на компьютер фирмы
26:04
apple макинтош вот такой вот 37 такое бинарное разделение
26:11
мира на cisc и risc архитектуры скажу что на самом деле есть еще всякие другие решения вот они не совсем как бы
26:21
альтернативную cisc у юли риску их можно перемешивать но например есть решение под названием вниз
26:27
дарил он construction world который состоит в том что у вас есть реальный мощный процессор
26:33
но для того чтобы всю его мощность реально загрузить нужно самостоятельно
26:39
так группировать ваша
26:44
команды в вашей программе которые вы хотите сделать чтобы упаковать много
26:50
команд в одну большую длинную инструкцию который например выполняет много сложений во многих учебниках сразу она
26:56
на него ваш процессор аппаратно умеет работать с большими кусками данных или
27:01
выполнять какие-то большие операции причем очень быстро но далась тогда
27:06
ложится задача таким образом написать программу чтобы вот эта инструкция
27:11
допустим сложение там 200 56 и разрядного числа действительно складывал
27:16
200 от 6 разрядов они 16 вот представителям такой более-менее чистого
27:24
понятия в лифт на сегодняшний день работающим представителем является российский процессоры брус вот у
27:30
которого еще есть куча всяких интересных штук но разговор у нас не про игру
27:36
вот там как раз прям в полный рост этот вылив рулит то есть если вы правильно организовали вычисления он работает
27:43
очень быстро если неправильно там в 10 раз медленнее вот ну в общем такое дело вот ну и на самом деле если опускаться
27:53
еще ниже там вот вот в этот многоточие там очень много всякой мелочи быть как
27:58
одна из характер тур отличается другой в частности архитектура arm
28:04
которая вот как общий бренд на самом деле это большое большое количество
28:10
различных договоренность о том как должна быть организована система команд вот
28:18
вот тут дмитрий подсказывает что можно поменять размер шрифта у редактора у
28:23
редактора можно дмитрий это он имеет виду 1 до редактор можно а вот в
28:29
бинарном темпе почему то нельзя не доделали люди я вот буду этим
28:34
буду с этим бороться может сам поправлен в конце концов программа на джалла написано что он взял дахаку теперь по
28:40
времени по времени довольно интересно значится 1 16 ряд с первым 16-разрядного
28:48
процессора но хорошо первым популярных 16-разрядных процессом потому что наверняка разработки шли и раньше
28:55
реально популярна вот является ну можно
29:01
называть intel 8086 это примерно конец 70 принципе
29:08
примерно тогда же появляются все настоящий таким
29:14
некоторые раньше некоторые позже вот эти архитектуры
29:20
архитектуры 16-разрядной и даже 32-разрядные но не в ни одна из них не
29:26
была достаточно кроме вот названных не было достаточно устойчива к тому чтобы
29:31
превратиться в 32-ом постелите 6 4 разряда дожить до наших дней поэтому мы
29:36
будем говорить только про intel arm и mips вот наверняка я что-то забыл из
29:41
того что дожил до сегодня и вполне работает из процессоров общего назначения но вот ситуация такая были
29:47
какие-то когда-то спарки кстати тоже рисковые но они умерли были там фирма decide мы там corporation свои
29:54
процессоры монтажу умерли ну в общем вот такая вот неприятная ситуация да
30:01
где в середине 80-х начинают массово появляться 32-разрядный процессор и
30:07
потому что потребность такая возникает данные стали большие шины адреса явно не
30:13
хватает вот даже в 208 шестом процессоре который был раньше начале восьмидесятых
30:19
уже была попытка значит как-то расширить адресную шину
30:24
чтобы можно было больше чем 64 килобайта запихать память
30:30
значит ну вот условно говоря интеловские то есть 2 разрядный процессор появятся
30:37
три восемьдесят пятом году ними пса вый это вот то самое микс на которой
30:42
наследником который является риск файл 85-м в apm-8 шестом ну в общем вот все
30:48
эти хэдлайнером примерно начали одинаково вот на рубеже двухтысячных годов
30:55
ну даже чуть раньше появилась потребность в 6 разрядных процессорах и тут внезапно выяснилось что гиганты не
31:04
готовы массовых выпускать а хотят выпускать десктопный где 6 что
31:10
разрядность нафиг не нужно вот и ждите разрез 64-х разрядных были только всякие числа грузы то есть топовый компьютер
31:17
которые выпускались ограниченными партиями и 1 решился это делала побороть компания md который выпустил свой
31:24
архитектур amd64 вот и вполне значит она стала
31:32
захватывать рынок и в общем сейчас захватила да то что там intel как он
31:37
присоединился это ну такое понятное дело что в случае вот такого ага таких огромных
31:44
корпораций понятное дело что трудно сказать у кого-то
31:49
кто реальный автор конкретного большого-большого продукта
31:56
очень много народу очень много разных контор участвуют некоторые участвует это мысе вот так вот этот кусок я
32:05
рассказываю про тож что допустим в тот же arm
32:11
вы к телам 64-разрядную платформу в 2011
32:17
только году вот именно потому что к этому моменту arm и тогда еще осталась сущая лапши
32:25
mips стремительно выйти на периферию то есть нас не было в нулевые годы и в
32:30
десятые у нас громкого и не было вообще компьютеров и общего назначения за
32:35
исключением он их с анти он ну и почти не было вот а [музыка]
32:41
такие живые артур как arm & mems или там еще кое-какие которые тогда были живы живы еще они выделялись на периферию в
32:49
телефончике полезли вот в строим устройству маршрутизатор был время когда
32:54
там нулевые годы почти любой можете за тратился нами все с линуксом вот потом
33:00
на армии потом выяснилось что телефончики современные чуть ли не мощнее современных компьютеров
33:06
должны быть вот и потом выяснили что почему бы не сделать
33:14
архитектуру и 3 4 разряда для современных компов все финише был в тот самый м1 процессора
33:20
которым тут в чатике говорят это то что в современных маках стоит это между прочим тоже a russian что
33:27
вот в этой временной сетке в 2010 году появляется
33:32
инициатива авторов собственно архитектуры mips которые понимают что гонку
33:39
интеллектов в том виде в котором она сложилась на 2000 или 2010-е годы они не
33:46
выйдут больше никогда вот об этом у нас будет разговор это
33:52
гонка по усложнению до современный процессор тот же интеловские занимают миллиарды ключей ну как то так
34:00
вот закон мура никто не отменял как известно да значит и
34:07
вместо того чтобы заниматься вот этой гонкой вооружений
34:12
обмазаны иконкой патентов авторы стримит все тот же
34:20
паттерсон и теннесси плюс пригнувшись нем забыл кто там был третий надо посмотреть вот в этой книжке
34:27
книжки книжки книжки вот в этой книжке есть этот третий
34:38
да кто там у нас и другой карман вот ну то есть по трассам был до все-таки
34:44
hennessy он уже старенький совсем потрясен был инициатором этого проекта ват арун ему помогал вот ну там целую
34:50
команду разумеется над этим работал не только и типа эта парочка значит идея состояла в том чтобы
34:57
разработать принципиально полностью арт открытую архитектуру пола все спецификации которые полностью
35:04
свободны реализовывать эту архитектуру может кто угодно
35:09
никакого ройлс никому платить за это не надо самостоятельно развивать ее дальше
35:15
может кто угодно ну собственно вот
35:21
участвовать в разработке тоже может кто угодно в проектировании ну короче такой типичный
35:27
открытый проект вот отличающиеся от тех свободных проектов которые мы знаем тем
35:32
что это up an hour 2 проект к их в общем не так уж и много вот это очень успешный
35:40
проходной проект там в начале 10-х годов этого тысячелетия века он потихонечку
35:47
шел-шел-шел и где-то к году 2018 2019 произошел взрыв вот
35:54
уж не знаю с чем это может быть связано не хватает
36:00
как бы энциклопедического знания современной айти вот чтобы сделать хорошую аналитическую оценку но где-то
36:07
году в девятнадцатом в этом ассоциацию начали вступать массового просто строим
36:12
самые различные люди и самые различные конторы первой ласточкой послужило то
36:17
что крис кв а его пришли производители винчестером сказали так чего можно сделать контроллер и никому
36:25
не платить никакого роли лт разверните нам два пожалуйста вот
36:31
как я уже говорил сейчас в ассоциации чуть ли вообще не все ведущие
36:37
производители железа мир и вот
36:43
я тёр то бишь процессоров которые спроектирован и разными компаниями но
36:50
вот вот примерно столько вот причем обратите
36:57
внимание большую часть их занимают люди конторы которые любят микроконтроллеры и
37:03
делают риск 32 меньшую часть хотя тоже значительно занимают их люди которые
37:09
любят более толстые железяки и делают не только риск двойную из 64 вот
37:16
[музыка] так что с разработками ядер для железок
37:23
все очень-очень-очень сейчас круто но по большей части эти ядра которые идут в
37:31
изделия на базе от вашего процессора но как процессор в железе не продаются
37:38
отдельно вот а те которые продаются отдельно их существенно меньше ну то есть понятно нет не только процессор
37:44
вместе с платой досок существенно меньше хотя тоже в количестве вот видите да это
37:50
это борт или это кора это такое я не эту кнопочку
37:55
нажал а тут не правильная ссылка хорошо сейчас
38:00
применяем вот platforms вот так существенно меньше
38:07
из них не богу популярные это roccat который делает сам файл они
38:13
обещали в этом году что-то что-то физической и обратите внимание что это
38:20
чистый опыт hardware вся доска целиком продает как бы
38:27
выпускается по лицензии бездне то есть вы можете сделать такую же вам ничего не будет
38:33
в означает опускаем всякий бизнес трюки
38:38
связанные с тем а как же вообще вот вся эта корпорация зарабатывает есть у неё все все железо имеется спецификации
38:46
железо открыты скажу простую вещь ну например может зарабатывать на сертификацию вы выпускаете процессор и
38:53
заговорите мамой клянус это риск five покупайте у меня мой процессор это
39:00
точный риск five вот зуб даю но покупателю
39:06
в общем своего суда мне нехорошо неплохо ты как нить гарантии какими-то и тут у
39:13
нее triscan foundation горит дорогой fondation а а вы пишите мне пожалуйста а сертификат что я тут рискуем сделал fun
39:21
дальше не проблема и даже тебя показывать прайс-лист то есть там в том месте где вы собираетесь монетизировать
39:28
не саму структуру команд а какие то отношения бизнесу и разумеется это
39:33
монетизации происходит через деньги вот один из способов на самом деле способов много но самое главное конечно эта идея
39:40
что на бесплатный сыр сбежится очень много
39:46
достаточно продвинутых разумных мышей вот ну а дальше они что-нибудь такой изобрету такая вот фигня у нас осталась
39:55
половина времени как запланировано на то чтобы поговорить про общую структуру системы команд рисков то есть мы
40:04
в целях экономии вместо одной лекции на
40:09
тему бла бла прошли половину а сейчас память займемся непосредственно архитектуры переключаем мозги а
40:15
нет еще бла бла к сожалению еще бла бла да значит продолжаем бабла на этот раз
40:22
приближаемся непосредственно к структуре да спасибо спасибо сокращение с
40:28
приветствую вас снова как всегда все правильно говорите контроллер и пощупать ужасно интересно
40:35
но в этом щупы недовольны много возни с периферии все так да значит принципы
40:40
организации риск five я просто скопипастил своей лекции по принципы организации mips потому что
40:47
повторяя авторы те же там есть один принцип который вы бросили мою даже вспоминать не будем он был неудачно это
40:54
их это типичный риск отсутствуя вычислить на сложных инструкций каждой инструкции который выполняете
41:00
выполняется быстро по памяти фиксированная длина это вот
41:06
как раз та тема которая у нас не будет игре не было уже ни было это различные форматы instruction set в том числе с
41:14
переменной длиной длина фиксированная фиксированная длина хороша тем что в два раза увеличивает скорость читаю
41:21
инструкцию исповедь потому что если у вас длина не фиксированная сначала прочитать первый кусочек конструкции
41:27
дегазировать его понять что конструкции не вся прочитать 2 и только после этого декодируется в
41:33
случае когда вы точно знаете что это инструкция 32 бита
41:39
высчитывается 32500 декодируйте все количество регистров общего назначения
41:45
по сравнению с аналогичными так архитектурами 32 разрядными большое их
41:52
32 штуки вот как впоследствии выяснилось это вообще хорошая идея делать много регистров общего назначения относительно
41:59
недорогая поэтому в современных процессорах в том же dh-4 тоже довольно
42:04
много но как бы от того же от любого 300 их
42:10
разрядного кроме mips а как раз отличается большим количеством регистр хотя нет бомбами
42:18
принципиально система команд устроена таким образом что при работе с памятью в память можно
42:25
оперативной памяти я имею ввиду в память может только писать и читать из нее никаких арифметических инструкций
42:31
никаких инструкций вида взяли из памяти пожевали положили в память почему так
42:36
потому что как мы помним архитектура фон неймана главный один из главных недостатков это медленная память причем
42:44
она по определению медленно и вот а в современных реалиях так сказать то самое legacy на которую
42:51
мы наступили никак не сойдем внешняя память она еще более медленное
42:57
она реально медленнее регистров просто физически вот поэтому чтобы
43:06
предусмотреть заранее сказать так предупредить заранее возможность писать чертовски
43:12
неэффективной программы в системе команд нет никаких команд кроме взять и положить в память остальные все
43:19
происходит на регистрах все вышли они происходят далеки вот теперь относительно конкретно риск файла
43:27
какие идеи заложены в риск five которые позволяют его ну как бы которые отличают
43:33
его от других ошибки в первую очередь это то чем вы постоянно встречаться
43:40
система команд она не для человека сделана она для
43:45
компьютера сделаны ну нету команды положить там не знаю число в риге в
43:52
регистр есть команда прибавить к числу 0 и положить в регистр потому
43:57
что это одно и то же потому что выполняется это с одной и той же скоростью потому что избавлению 0 она
44:04
мгновенно и вот и зачем два разных обхода заводить для
44:10
одной команды если можно эти вот когда ты нас эмблемы будешь писать тебе покажу
44:15
псевдо инструкцию по не сегодня поговорим с которой будет написано положить числом регистр когда ты это
44:23
скомпилирует что увидишь что это превращается в команду прибавить 0 к числу и положить вынес вот люблю
44:29
инструкций в самом instruction set нету зато есть единство
44:34
принципе они 3 адресность опять таки еще одна тема которая на которую нас уже не будет это отличие 3 2 1 и без адресных
44:44
акте пор стыковых например вот принципиально 3 адресность об этом мы
44:49
поговорим в следующий раз у нее главный принцип это сильное упрощение логики
44:55
работы мы можем закодировать логические операции в одну машину
45:03
инструкцию 3 адресу в двух адрес но уже не может об этом разговор будет позже но вот принципиально 3 адресность
45:10
разделение памяти данных команд этот принцип на самом деле уже не такой важный не все он поначалу присутствовал
45:19
прям очень жестко но в любом случае есть расширение для риск файла которая позволяет произвольно защищать
45:25
произвольные куски памяти от произвольных видов доступ например некоторые куски памяти будут нас не
45:31
доступны только на чтение и запись о некоторые куски памяти будут доступны только на чтение исполнения вот вот
45:38
типичный пример ситуации разделения область текста область дата да там где у вас исходный код программы только на
45:44
чтение исполнения а там где у вас данные на чтение и запись от исполнять а тут ничего нельзя и это нужно даже не для
45:51
того чтобы предусмотреть какие-то аппаратные защиты от атак хотя это тоже полезная штука
45:58
сколько для того чтобы вообще ваши программы совершенно случайно не стали работать ну
46:04
странно взяли записали что не туда а потом указал что вы записали в область кода потом начали его выполняется такое
46:11
тоже бывает кстати сказать вот тут сокращение с говорит что есть специальное дополнение
46:18
к реке туре диск five которая позволяет плотную упаковку и
46:24
16-битные команды мы про это будем говорить отдельно про так называемой
46:31
расширение корсик то ли просто сейчас давайте упомянем это вскользь о
46:37
расширении к архитектуре нужны тогда когда мы изобретаем какое-то ядро ими в данном случае имеется два новый
46:43
процессор для специфического применение в частности вот это самое 16-разрядной
46:48
инструкции это для процессоров которых важно не быстродействие неэффективность опер плотная упаковка но у тебя там 4
46:56
килобайта памяти на все программы в микроконтроллере вот там конечно чем меньше у вас абитов просто его тему
47:04
очень много было сделано еще в не все под для оптимизации выполнения
47:09
инструкций под конвейер а в риск valve не только под конвейер поэтому тоже будем говорить о вся система команд за
47:16
честно таким образом в расчете на то что ее будут дальше оптимизировать и
47:22
вещи которые плохо оптимизируется не реализованы зато или зону вещи который
47:28
оптимизируется хорошо вот сама система команд в двое важности
47:33
речными изя в бинарном очень неудобно для чтения хотя сделаны некоторые жалкие попытки
47:40
чтобы сделать поле удобный вот и в 1 предназначена для того чтобы как можно
47:46
быстрее аппаратный декодируется отверстия инструкцию мы эту видимо прямо сегодня а
47:51
вот язык ассемблера разумеется развёрнут лицом к человеку и значит на землю
47:58
приятен подписать долю приятным это тоже увидеть ну разумеется знаешь но это сон и вот
48:05
несмотря на то что регистры общего назначения то регистрации о назначении некоторые из них как это более равны как
48:13
те самые свиньи вас и используется для
48:18
особых нужд вот это либо оговаривается чисто конвенционно ну например указатель
48:25
стека или указатели фреймы либо а кстати нет указатель стека указатель
48:30
фрейма теперь не только конвенция они входят в планы по оптимизации проекта мы тоже будем говорить
48:36
либо совсем аппаратные штуки например какой то регистр 0 всегда содержит ноль
48:43
и в него можно что хочешь записать все равно там будет после этого 0 очень
48:48
удобный инструмент такой дивный а для разработчиков процессоров
48:54
не устаю повторять возможно в какой-то момент в вы устанете а я нет что
49:00
документ называемый спецификация процесса риск five
49:06
вот боже мой это что что это что шрифт
49:14
это плохой шрифт негодный давайте мы его откроем другой программой
49:21
мясо может быть отсюда можно секундочку вот в этом окошке у меня в браузер
49:29
хорошо показывается здесь видимо изоляция сделал свое черное дело и в ней
49:35
не видны шрифты давайте попробуем а
49:41
ужас-то мы скачаем откроем чем мы человеческим
49:49
повод другое дело
49:54
нет нам нужен оглавление нет оглавление ну давай вот
50:00
значит это храм или документ который на самом деле если читать
50:07
внимательно оказывается совершенно несложно правда надо сказать что чтобы внимательно
50:13
читать надо сидеть и прям вот читать то есть вот ну давайте покажу пример
50:19
помнить описании вот сейчас это что это виды инструкции нет это этом и сейчас мы
50:25
будем прямо сейчас говорить вот например описание
50:31
инструкции сложения в действительности здесь нет ничего ничего военного нет
50:37
если только привыкнуть к отбирают аббревиатур им которые тяжелей сники люди любят прям вот
50:45
до дрожи любят всякие аббревиатуры типа к следом вот вот это вот все вот
50:51
там а в действительности в общем ничего военного здесь не написано вот здесь
50:56
написано про то что у всех этих операций одинаковый обход здесь написано какие регистры для чего используются здесь
51:03
написано что вот тут у нас лежит и медед то есть непосредственное значение
51:08
которое мы хотим данном случае прибавить вот что еще а тут еще есть
51:16
shift и он xor and shift at ar xar косметической операции вот и
51:23
очень весело читать примечание которые написаны которые написаны курсивом
51:29
потому что там написано всякая мотивация почему мы не сделали не так как не все почему не сделали так как других
51:35
архитектурах вот вот эти примечания курсе мы как сейчас самое интересное в этой в этом документе который можно
51:41
читать вот это я к тому что несмотря на то что это реально такая зубодробительные технической
51:47
спецификации читать это можно вот иногда приходится пересчитывать по нескольку раз прежде чем в вов курить в то что там
51:55
написано но за исключением тех самых аббревиатур которую надо тоже сначала поэтому же
52:01
документе поискать и понять что они означают все остальное это вполне себе герметичная информация то есть это
52:07
спецификация не требует чтение каких-то других еще документов этим она очень
52:13
уютно вот самое интересное что как и все связанные с проектом риск файл этот
52:19
документ абсолютно свободно лежит на гитхабе это просто latina вот если кто-то возьмется выгнать из этого la тех
52:26
они бдх хтмл который мы опубликуем у нас на unix арки чтобы можно было в него сослаться прямо на конкретные места вот
52:34
того я буду очень благодарен и не только я потому что это сделает план курса
52:39
гораздо более удобным вот заранее заранее короче буду очень благодарен в принципе
52:47
сама система команд в риффов очень простая если в это понятие очень простая
52:55
включить практические соображения о том как она должна быть организована с точки зрения эффективности работы на жалейте
53:01
мы или увидим это прямо сейчас есть всего четыре типа команд
53:08
команда виды регистр или место у точнее регистр регистр регистру ножи 3 адресные
53:13
архитектурно чем 3 команда вида непосредственное значение регистр реестр
53:21
команда вида регистр регистр непосредственное значение сейчас расскажу зачем так и команды вида
53:28
большое непосредственное значение 1 регистр все то есть предполагается что основная
53:35
арифметикой вообще основная логика происходит на регистрах для этого существует команды типа r
53:42
если мы занимаемся почтением из памяти и вообще выполняем
53:48
операцию в которых адрес ячейки является источником
53:55
или адрес ячейки является источником или само число которые мы записали в нашу
54:00
команду является источником то это будет тип и вот ну например только что нами
54:06
просмотренный вид инструкции сложение числа с регистром поместить в регистр
54:11
как раз тип и вот если у нас источником если у нас память
54:19
является приемником то тип с и наконец если нам нужно большой кусок числа
54:27
больше чем те несчастные 12 битов которые у нас в с ее типе записать в инструкцию чтобы потом с ним
54:34
что то сделать это будет типу например есть команда положить h20 битов в ячейку правда почему-то в
54:42
старшие разряды поэтому сейчас поговорим вот всего 4 кроме того команды типа если типа у
54:48
используются еще и для переходов ios для ближних переходов у для дальних переходов но об этом у нас будет разговор в следующий раз когда мы будем
54:55
говорить про адресацию в все цикл вот значит еще раз основная арифметика на
55:01
регистрах если мы работаем с памятью то есть команда типа стар и команды типа и и мили от вот команда тип астор понятно
55:10
для сохранения команды типа и на самом деле тепло для чтения но еще и для того чтобы прямо в
55:17
прямо в инструкцию положить маленькое число это маленькое число у
55:23
засунуть в регистр не хотя в память вообще вот в конце в нулевом tab 7 битов
55:31
занимает так называемый обход обход это собственно номер инструкции тип и и вот
55:38
дальше очередные пять битов занимает регистра приемника и это всегда приемник
55:45
даже в том случае если у нас имеет значение и играет роль приемника вот дальше идет
55:54
поля типа функции которые это простаки модификаторы вот чтобы можно было
56:00
прочесть обход тут же его декорировать а уже то микропрограммное тот микро
56:08
программный контур который выполняет допустим вы не знаю там арифметические операции он вычитал поле фрукт это и вот
56:14
это и уже выясняла какой собственную физическую операцию пунктом сдвиг сложение еще что то вот это так сказать
56:21
зарезервированные поля вот хотя во многих случаях они уже раз резервированных знать и два регистра
56:27
регистр источника один из или регистр источника 2 источник источник прием сразу скажу во
56:35
всем мире все наоборот possibly сначала идет приемник потом источники не перепутаете в схеме когда у который
56:42
будете смотреть в документации будет вот так в ассемблере сначала идет приемник такая вот фигня я когда делал
56:48
сегодняшний пример клеится я ошибся забыл вот теперь относительно вот этих
56:55
вот значений в кавычки в в квадратных скобочках вот у нас есть
57:00
простая инструкция типы и которая говорит о том что мы возьмем маленькое число проделаем над ним какую-то операцию
57:07
например сложим с регистром и положим его этот результат в регистр destination
57:13
ну например можно сделать так маленькое число 12 бит то есть
57:18
фактически это трехзначное шестнадцатеричное число причем у него поскольку старший бит
57:25
знаковый то там она скажем так и сел положительно плане просто изнаночная они
57:31
начинается не не смо 7 вот 7 и меньше а если отрицательно это тоже ну вот
57:38
небольшое число с другой стороны это такая вполне себе разумные константа который нам часто бывают нужны там
57:43
прибавить 10 прибавить там размер ячейки прибавить 1 прибавить 4 вот такого рода арифметической операции
57:50
тёплыми зато отлично работ и так источник 1 источник в они так вот
57:57
это источник 1 это источник 2 потому что с ними сделали положили в прием операций типы а
58:02
вот в случае когда у нас приемником является ну например адрес в памяти
58:09
операция типа с у нас возникает у нас как у дизайнеров
58:15
этого все безобразие возникает дилемма либо сделать инструкцию удобный для чтения человеком вот как раз сокращение
58:23
спрашивают для этого нужен для чего-то это нужно только для общего развития это нужно только для общего развития ну и для того чтобы вы осознавали почему вы
58:31
не можете читаешь на вторичный код понимать что там написано вот мы про это в основном говорить то и не будем я
58:37
сегодня про это говорю просто что вы понимали что виде частичный код
58:42
конкретного конкретной машины инструкции не так-то просто лето без дополнительных
58:48
приспособлений дешифровать так вот обратите внимание что те инструкции типа
58:53
с не устроена таким образом что у нас здесь destination здесь source а здесь source
58:58
нет поскольку у для удобства машинного
59:04
быстрого и эффективного где кодинга с отверстия инструкции всегда весов джерси
59:09
наши должны быть на своих местах пришлось вот это вот и медиа значение но в данном случае это смещение по адресу
59:15
взять распылитель на две части вот здесь от 11 до 5 бит а вот здесь от 4 0 ubs
59:22
то есть вот эти 12 беспрерывно части запихали в следующий раз мы увидим как
59:29
издевательски люди относятся к этим иметь значения мысли это не immediate а
59:35
вообще адреса адресатом жутко перемен и поэтому в
59:41
частности в нашем курсе который посвящен архитектуре в вот в эти вот представления мыть будем глядеть только
59:48
одним глазом а заниматься будем с эмиром не потому что у нас курс по
59:54
программированию на сэма потому что это для человека гораздо более близкая штука чем вот это вот а когда вы посмотрите в
1:00:01
вот это вот pdf к по внимательно и вы увидите что там есть еще более страшные картины который надо один раз понять и
1:00:09
в общем не пытаться это воспроизвести руками помимо того что вот вас 4 этих
1:00:16
самых вида инструкций что умеет mems я уже не мешает я уже говорил что
1:00:23
главный принцип не добавлять в процессор операции которые выполняются долго и
1:00:30
поэтому даже даже умножение в базовый
1:00:36
комплект инструкция не входит он входит а на входе так называемые расширение разумеется мы будем им пользоваться
1:00:42
потому что так удобнее но почему так но мы с вами знаем что умножение работает примерно во столько
1:00:48
раз медленнее какого какого разрядность нашего числа a и деление кстати так что
1:00:56
фактически умножение это такая по разрядный сдвиг и прибавление сдвиг и прибавление сдвиг прибавленной вот
1:01:02
соответственно если у вас ушло trees2 разрядной это примерно 28 что ли операции на это требуется
1:01:08
понятное дело что по сравнению со сложением которые условно говоря работает один такт вот этот рис 2 такта
1:01:15
в 28 тактовое умножения это долгая операция тем не менее она всегда нужно но вынесен в отдельное расширение вы
1:01:21
можете проектировать ваш процессор и ваш компилятор и вашу математику исходя из
1:01:28
сверхбыстрых операций сложения и умножения делать сами потому что она все равно будет примерно той же скоростью
1:01:34
чего-то тут не дописана значит условные переходы а да значит в риск фильме есть отдельная
1:01:44
операция условного перехода то есть операции вида сравнить число с числом и по результату перейти и это потому что
1:01:50
она 3-х адресная и соответственно это нас освобождает от необходимости иметь регистр флагов вот это вот все сравнили
1:01:58
перешли атомарной операция допустим мы практиковались вечера вот
1:02:05
здесь не написано еще расширение рф надо вписать да ну точно f давайте посмотрим
1:02:12
по моему f&d вернись
1:02:21
дорогое
1:02:27
отдать поищем слов о ф да я был прав это расширение f надо
1:02:33
вписать сюда давайте впишем значит расширение if it a floating point
1:02:39
точно шрифтами что-то не так удивительное дело
1:02:45
куда это вписать вот расширение
1:02:53
во первых 10 полон перехода это атомарные операции
1:03:03
вот там лобовую а
1:03:09
тамарины а то марина это отличное слово командной это мариной до
1:03:15
расширение f
1:03:22
clothing point значит в чем идея опять таки почему это
1:03:30
расширение потому что работа сотен по это тоже на отдельные темы давать а
1:03:37
[музыка] вот тут сокращение поправляет что
1:03:43
давайте побывать поправим f&d расширения f&d хорошо расширение я я
1:03:53
д математический сопроцессор вот потому что флоте входит это всегда
1:04:00
довольно долгая операция
1:04:05
понятное дело что в база инструкций и стараться доказать не должны и вообще
1:04:11
вот арифметический сопроцессор устроен совершенно по-другому как обычно провели чем обычный процессор поэтому как
1:04:16
правило у него свои данные свой формат свой способ работы ты ему говоришь вот
1:04:22
тебе число преобразую пожалуйста во флоте нг point и сложить вот а потом
1:04:27
забираешь вот еще и q есть да а еще между прочим об этом будем говорить
1:04:32
когда будем говорить про сопроцессор есть еще специальные расширения о том как вычислять флоте ну прямо на интеджер
1:04:39
регистрах они тоже уже есть они еще не принят и не ратифицированы но про пазлы
1:04:45
уже лежат там эту спецификацию довольно забавная штука как уже было сказано работа с памятью это отдельной
1:04:52
инструкции тепло от интерьера или лот адрес вот
1:04:57
александр давайте мы править поговорим о нас от версии лекции ответ на вопрос такой понятное дело что
1:05:04
регистр это одни и те же но система команда а вот тут ведь и сокращению же отвечает да да все то андрей задает
1:05:13
важный вопрос будет ли разговор про связь с плиз будет только в том случае 7 кто-то в этом активно поможет я не готов
1:05:20
я точно не в теме и не готов зафиксируем time эту тему осваивать если
1:05:25
будет человек который мне расскажет в чем суть этой самой связей splice да и мы с ним вместе потыкаем в какое-то
1:05:32
работающие железо то я с удовольствием расскажу вот возможно андрей вы нам надо
1:05:37
с вами снова связаться по причине того что видите тема риск five стала более востребована возможно всего наш с вами
1:05:43
хотелки нам удастся реализовать помните у нас был разговор там про стенд так у
1:05:50
нас осталось 15 минут ну кстати не так уж много и сокращение с дорогой то же самое
1:05:56
если у меня как бы
1:06:02
либо этой другой дорогой вас где тут спрашивать а будет ли
1:06:07
демонстрация работающего железа у меня рядом со мной на рабочем столе стоит работающие железо риск воевать наша сбор
1:06:14
снится альтова я вот выглядит как обычный компьютер ну то есть я могу снять с него крышку показать вот этот
1:06:20
sayfa ивановскую плату с вот таким вот вентиляторе ком это единственное что будет ее отличать от обычного компьютера
1:06:27
честно не знаю зачем я здесь написала отдельным типам работа с памятью у у нас
1:06:33
будет разговор про режимы адресации в том числе и про работу с памятью давайте
1:06:39
лучше посмотрим что такое псевдо инструкция к сожалению картинка будет
1:06:44
вот такого размера не знаешь с этим поделать попробую сегодня после лекции побороться с этим вот
1:06:58
щас секунду у меня был способ запустить этот раз волшебным образом а
1:07:08
вот сейчас хотя бы большие буковки будут большими значит вот смотрите открываем
1:07:16
программу а давайте вы прям с нуля напишем чё-то
1:07:22
напишем lot in the jar давайте мы сейчас временно сделан еще побольше чтобы было
1:07:29
прям хорошо видно вот к сожалению не будет видно бинарного
1:07:36
кода но ничего не попишешь разберемся вот интеджер в регистр ну допустим не
1:07:42
знаю что 0 ну какой-нибудь число состричь на как я
1:07:48
уже сказал меньше чем 0 x800 nolix 754 654 и для сравнения инструкция
1:07:57
владин тоже т1 число больше чем 11 битов ну скажем 0x
1:08:05
восемь семь шесть пять четыре три два
1:08:11
нет 7 6 4 5 3 2 1 вот такое вот сохраним
1:08:17
это дело в какой-нибудь файл
1:08:23
1 вот иначе не заработает скомпилируем
1:08:31
такая вот фигня получим вот такую картинку не видно ничего давайте мы тогда сделаем
1:08:39
вот так вот я знаю что все знает что надо делать надо сделать вот так вот
1:08:44
открыть изображение в новой вкладке и вот такой вот шикарный вот значатся
1:08:51
обратите внимание тут правда раз два три раз два три 4 5 шесть 7 но даже неважно обратите внимание как 2 ассемблер ные
1:08:59
инструкции что одна из них оказалась псевдоним обе на самом деле из них оказались service
1:09:05
and инструкцию номер один лот интеджер в регистр т20 x 1 2 3 в действительно
1:09:12
оказалась добавлением это сложение числа 0x раз-два-три непосредственно
1:09:19
лежащего вот она его видно хорошо это и не дед который у нас в инструкции стоит
1:09:24
вот здесь сейчас покажу вот он этот и везет вот
1:09:37
раз-два-три сложении с регистром т2 он сжег 7 значит
1:09:43
про именование регистров мы видим все еще раз поговорим вот и регистры x0 он
1:09:50
взирал который в общем пустой из лежит сюда ну и собственно положить это все в
1:09:57
а не соврал 123 сложить сексуаль положить в их семьи время забываю что
1:10:03
destination нас в начале вот это псевдо инструкция в том смысле что никакой
1:10:08
инструкции lone ranger в действительности в instruction set не существует а существует инструкция
1:10:14
добавить не immediate лоды миди от не существует
1:10:20
отсутствует инструкция добавить immediate к числу и положить к регистру положить другой регистр мы добавляем к
1:10:27
нулю 123 покладем этого регистра 7 и получаем результат такой же как есть было инструкций ловит видите вместо него
1:10:34
админ а вот в случае когда мы хотим положить большое число
1:10:40
так не получится мы помним что размер этого immediate в инструкции типа и
1:10:47
всего 12 битов больше нельзя если мы хотим положить большой
1:10:53
инструкцию туда то было большое число то нам придется нам придется разбить это
1:11:01
число на части на кусочек в 12 бит кусочек в 20 бит и положите их туда отдельно как это происходит мы берем
1:11:09
старше 20 битов это 0x 1234 на самом деле там еще четыре гитарного просто так
1:11:17
вот это 5 ford и используем инструкцию типа
1:11:23
у она называется мой который выглядит вот так
1:11:30
нет это не дел синтаксис ни разу это как бы
1:11:36
такой синтаксис который принят в обе именно мерцают за эти затем этого самого
1:11:43
риск файла я не помню когда надо что он больше похож но нет это не тела вот инструкцию типа у вот она у которой есть
1:11:51
20 битов но обратите внимание что эти 20 битов 3112 это 20 старших битов тех сам
1:11:58
то есть фактически наш инструктаж а в этой команды так что это всеми вот это включая наша вот эта команда луи берет
1:12:06
из нашего числа 1 2 3 4 5 6 7 старшие 20 битов 1 2 3 4 ну и 0 0 1 2 3
1:12:16
4 вот они но разве 34 и кладёт их в старшей 20 битов регистра чего там x6 он
1:12:24
же т1 потом вас м в машинном коде появляется вторая
1:12:30
команда и это нам уже известны команды добавления к вот этому 1 2 3 0 1 2 3 4
1:12:38
000 тупо добавляется еще число 5 6 7 ну потому что добавление это операции
1:12:43
быстрое добавление к нулю работают быстро никакого перенос там нигде не планируется из-за этих нулей вот вот
1:12:50
такая вот интересная фигура давайте мы это еще в отладчике посмотрим хотя это будет плохо видно и перейдём уже к концу
1:12:57
нашей лекции а то время даст поджимает подвальчике посмотрим отладчик тут тоже
1:13:03
ни фига не видно хорошо вы будете мне верить на слово
1:13:09
вот вот я выполнил лоты me dance ft 064 и вот это вот
1:13:18
зелененькой здесь написано что значит я секунду
1:13:25
вот здесь написано 654 можете мне верить на слово теперь я выполню одну инструкцию и
1:13:35
зло dami ded большое число и конструкцию думу и вот опер и месяц вот она и
1:13:42
давайте посмотрим в результате в регистре d1 у
1:13:48
нас приехала число 0 76 54000 как я и обещал
1:13:57
теперь к этому числу добавится 321
1:14:04
и получится 3 2 1 вот вот примерно это
1:14:12
есть идея понятия псевдо инструкция а заодно понятие того как работают
1:14:17
инструкции который непосредственно прямо изнутри самого к деструкции записывать что-то в
1:14:23
регистр александр нет хитрость состоит в том что
1:14:28
самость инструкция луиза 0 это 412 битов то есть регистр может
1:14:34
содержать муссом но в тот момент когда мы выполняем ул и да вот здесь
1:14:42
вот здесь к нам приезжает 0 1 2 3 4 000
1:14:48
в регистр x6 дальше мы отлично с ним склады так
1:14:54
ему собственному про все поговорили еще раз повторяю только 12 битов причем один
1:14:59
из них знакомый если присмотреться вот здесь мы увидим что ему всегда начинается в начале то
1:15:08
есть мы всегда знаем что знаковый бит нашей ячейки инструкции
1:15:13
соответствует знаком убит у числа immediate именно для этого она распилена вот таким вот образом неприятно
1:15:20
нам не нужно догадываться где еще может быть знаковый бит он всегда принц первый
1:15:26
бит нашего нашей ячейки если там единичка знаешь мы можем делать сами как страшен ни глянь
1:15:31
вот ну давайте чуть более сложный пример программы на 1 который у вас должен в
1:15:39
качестве домашнего домашнего задания просто заработать эта программа сложения двух чисел мы пока что воспользуемся не
1:15:47
очень понятным нашему нашему не очень изученным нами понятен in
1:15:53
varmint кал он же системный вызов точнейший вызов внешнего окружения вот
1:16:01
ну будем считать это волшебными словами которые значит с которые
1:16:06
которые мы используем для того чтобы вызвать и момент комнаты
1:16:12
в регистр а 7 он же он же какой он жить он же x17 записать
1:16:21
номер системную вызвал в данном случае кажется 5 и это будет вот целого числа
1:16:26
что мы делаем мы в регистр a7 записываем вот а тебе сказал записываем
1:16:35
5 ватт целые числа дальше вызываем системного
1:16:41
в результате твой системного вызова регистр а0 приедет введенная нами число
1:16:48
мы его откладываем допустим в регистр т1
1:16:57
поскольку регистр a7 у нас не изменился мы снова можем вызвать есть тот же самый
1:17:03
системная можно еще одно число ввести дальше склад склад сложим а д д
1:17:10
ну скажем а 0 1 ты один то есть прибавим к
1:17:17
результату нашего ввода как мы водяного и целое число прибавим к нему еще один
1:17:24
вот напоминаю что с destination это 1 регистр всегда
1:17:31
загрузим в осей на системный вызов вывода целого числа и
1:17:39
вызовем ну и на всякий случай вызываем системный вызов останова по-моему это 10
1:17:47
в принципе марс написан так что если ваша программа закончилась то она внезапно останавливается вот это не
1:17:54
очень хорошая идея потому что у вас может в память быть еще что то но тогда и начнет выполняться поэтому хорошо в
1:18:00
конце программы всегда вызов вызова системный вызов астана вот эта программа вводит целая потом еще раз будет целое
1:18:07
предыдущие цело сохраняет вредит cd1 потом складывает только что введенное целое с
1:18:14
регистром т1 заносит результат ванной вызывает системный вызов один печать
1:18:20
этого самого а 0 вот ну и собственно вот давайте проверим так ли это считаться
1:18:26
сохранить у нас подпишем
1:18:32
add1 как-то так скомпилировать я достал программу без ошибки к сверлению вот
1:18:40
давайте мы не будем здесь пытаться вглядеться в эти циферки просто
1:18:46
запустим вот только открывается окошко ввода где довести ну скажем развитой 4
1:18:52
это первое число 57 это второе число и вот результат 2701
1:18:58
это собственно сумма выводится вот давайте я покажу что я не соврал
1:19:09
вот это был первый вот это был второй вот это был вывод
1:19:17
вот у нас закончилось время на закончила silver c я
1:19:23
сейчас буду разговаривать по домашние задания ага вопрос если список все сколов для
1:19:30
марса есть для 1 а вот он в разделе help очень удобная штука очень полезное
1:19:35
чтение help a parar салон отчасти даже заменяет чтение вот этой
1:19:41
здоровенной спецификации и там прям есть отдельно си сколз в этом си скос все
1:19:46
есть извините что я его сразу не открыл help this curse
1:19:52
print and вывод целого red and вот целого
1:19:59
экзит 10 вот 5 1 и 10 то что мы с вами использовали
1:20:07
значит вопросы насчет того насколько они для каждого кружения свои ли есть стандарт интересный
1:20:14
если мне не изменяет память спецификации нет никакого стандарта у каждого
1:20:19
окружения не своей но исторически так сложилось так пошла эволюция что вот эти все сколы которые в
1:20:27
марсе они и потом они стали в россии и потом всякие эмуляторы риск файла их
1:20:33
тоже воспроизводит их же чтобы совместимость было но в линуксе
1:20:38
конечности скоростью свои такая вот и по-своему стране
1:20:44
так еще вопросы а я пока про домашнее задание значит смотрите как вы поняли
1:20:51
очень много для того чтобы нас мы друг друга понимали на наших лекциях нужно
1:20:56
знать заранее условно говоря ту самую первую половину первый кусочек курса по артикулам которые которые у нас с вами
1:21:03
уже нет вот актуализирует и вот это все всякие значит
1:21:09
понимание того что такое регистры так далее установите и запустите раз добейтесь
1:21:15
того что на нем запускаются вот эта программа сложение двух чисел то можно просто тупо скопипастить если убрать не
1:21:21
на расстойку вот кому нужно регистрируйтесь на курс
1:21:26
там будут там нас будут ожидать это и джордж
1:21:32
там будут ожидать нас задачки [музыка] задачки по
1:21:39
заду напоминаю что регистрация джей означает регистрацию на курс не забудьте
1:21:45
указать фио группу факультет в общем сведения про себя потому что иначе будет проблем
1:21:52
с оставлением оценки так
1:21:58
пошли уже благодарности спасибо андрей за добрые слова если нету больше вопросов то наверное тогда мы с вами по
1:22:07
этой теме расстаёмся на неделю а завтра он раз первая лекция по курсу разработка
1:22:12
на питоне чеки и всего доброго до новых встреч

Поделиться: