Материалы из видео -
Курсы по программированию -
В этом видео мы разбираемся, как процессор понимает программы, написанные на Go, Java или C++. Начнем с простого примера однотактного процессора и рассмотрим основные типы команд, из которых строится вычисление. Поговорим об Instruction Set Architecture на примере MIPS и даже посмотрим демо процессора, реализованного на Verilog, с запуском программы и разбором исходников. Затем перейдем к теме конвейерной микроархитектуры: разберем стадии конвейера на примере MIPSC, поймем, как пайплайн позволяет выполнять параллельно несколько стадий, и сравним разные подходы к параллелизму — от Very long instruction word до superscalar. Особое внимание уделим оптимизации за счет branch prediction. Также рассмотрим устройство регистров на примере x86 и принцип работы счетчика команд (Program Counter), который подсказывает процессору, какую инструкцию исполнять в данный момент. В финале поговорим о SIMD-оптимизациях, которые позволяют выполнять одни и те же операции над массивами данных значительно быстрее. Telegram:
VK:
https://vk.com/igoroutine Instagram: / igoroutine YouTube: / @igoroutine Таймкоды: 00:00 - Введение 00:17 - Пример работы однотактного процессора 01:14 - Типы команд в процессоре. Как понять что исполнять 02:28 - Instruction Set Architecture (ISA) на примере MIPS 03:53 - Демо пример процессора на Verilog 07:41 - Запуск программы на процессоре на Verilog 09:37 - Дополнительные материалы. Исходники к видео 09:48 - Конвейерная микроархитектура 11:18 - Разбор стадий конвейера на примере MIPSC 15:25 - Как пайплайн процессора выполняет параллельно несколько стадий 17:29 - Параллелизм с помощью Very long instruction word (VLIW) 18:26 - Параллелизм с помощью Superscalar 18:38 - Оптимизация Branch prediction 20:10 - Устройство регистров на примере x86 23:42 - Как понимать, какую инструкцию исполнять в данный момент? Program Counter 24:47 - SIMD оптимизации 25:42 - Финал