Добавить
Уведомления

КАК процессор понимает Go, Java или C++: секреты устройства CPU

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3PAFQ6 В этом видео мы разбираемся, как процессор понимает программы, написанные на Go, Java или C++. Начнем с простого примера однотактного процессора и рассмотрим основные типы команд, из которых строится вычисление. Поговорим об Instruction Set Architecture на примере MIPS и даже посмотрим демо процессора, реализованного на Verilog, с запуском программы и разбором исходников. Затем перейдем к теме конвейерной микроархитектуры: разберем стадии конвейера на примере MIPSC, поймем, как пайплайн позволяет выполнять параллельно несколько стадий, и сравним разные подходы к параллелизму — от Very long instruction word до superscalar. Особое внимание уделим оптимизации за счет branch prediction. Также рассмотрим устройство регистров на примере x86 и принцип работы счетчика команд (Program Counter), который подсказывает процессору, какую инструкцию исполнять в данный момент. В финале поговорим о SIMD-оптимизациях, которые позволяют выполнять одни и те же операции над массивами данных значительно быстрее. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@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 - Финал

Иконка канала igoroutine
13 подписчиков
12+
15 просмотров
3 месяца назад
12+
15 просмотров
3 месяца назад

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3PAFQ6 В этом видео мы разбираемся, как процессор понимает программы, написанные на Go, Java или C++. Начнем с простого примера однотактного процессора и рассмотрим основные типы команд, из которых строится вычисление. Поговорим об Instruction Set Architecture на примере MIPS и даже посмотрим демо процессора, реализованного на Verilog, с запуском программы и разбором исходников. Затем перейдем к теме конвейерной микроархитектуры: разберем стадии конвейера на примере MIPSC, поймем, как пайплайн позволяет выполнять параллельно несколько стадий, и сравним разные подходы к параллелизму — от Very long instruction word до superscalar. Особое внимание уделим оптимизации за счет branch prediction. Также рассмотрим устройство регистров на примере x86 и принцип работы счетчика команд (Program Counter), который подсказывает процессору, какую инструкцию исполнять в данный момент. В финале поговорим о SIMD-оптимизациях, которые позволяют выполнять одни и те же операции над массивами данных значительно быстрее. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@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 - Финал

, чтобы оставлять комментарии